معظم الشركات تدير عملية حرجة على ملف مشترك يفهمه شخص واحد، ولا يجرؤ أحد على تغييره، ولا يمكن تدقيقه. نبني النظام الذي يتسلّم هذه العملية — بصلاحيات وسجل وتقارير تصمد بعد رحيل ذلك الشخص.
كل منشأة جادّة ينتهي بها الأمر إلى عملية لا يغطّيها أي منتج تمامًا. فتعيش في جدول بيانات بأعمدة مخفية وقواعد بالألوان، أو في نظام لُوي عن شكله حتى صار نصف الفريق يحتفظ بنسخته الخاصة على أي حال.
الضرر نادرًا ما يكون دراماتيكيًا. إنه ضريبة بطيئة: أرقام تختلف بين الأقسام، وتغيير لا يستطيع أحد تتبّعه، وموافقة حدثت في رسالة دردشة، وعملية كاملة تتوقف حين يكون شخص واحد في إجازة.
البرمجيات المخصصة تستحق ثمنها تحديدًا حين تكون العملية ملكك فعلًا وحاملة لوزن حقيقي. وحين لا تكون كذلك، سنقول لك اشترِ جاهزًا — نفضّل قول ذلك في أول مكالمة على أن نفوترك ثمن اكتشافه.
كل بند هنا شيء بنيناه وما زلنا نشغّله بأنفسنا — لا خدمة قرأنا عنها فقط.
من يرى ويعدّل ويوافق على ماذا — مفروضة على الخادم في كل طلب. واجهة تخفي زرًّا ليست تحكمًا في الوصول.
من غيّر ماذا ومتى، و— حيث تكون القيمة القديمة مهمة — ما كانت قبل ذلك. السؤال المهم يصل بعد شهور، ولا يجيب عنه إلا نظام سجّله وقتها.
الحالات والتسليمات منمذجة صراحةً — الدرس ينتقل من مجدول إلى مباشر إلى منتهٍ، والتسليم من مُسلَّم إلى مُصحَّح، والتسجيل من منقطع إلى قيد الإنهاء إلى جاهز — فتعيش العملية في النظام بدل ذاكرة الأشخاص.
أرقام تُحسب مرة واحدة من مصدر البيانات، فلا يصل قسمان إلى مجموعين مختلفين للشهر نفسه.
بوابات الدفع، وواتساب، وبريد المعاملات، والتخزين الكائني، والإشعارات الفورية — التكاملات التي نشغّلها في الإنتاج بأنفسنا. النظام الذي لا يستطيع تبادل البيانات يصير جزيرة أخرى خلال سنة.
إدخال جداول بياناتك الحالية إلى النظام جزء من البناء لا لاحقة له: ننمذج الجدول الذي تحتفظ به فعلًا، ونحمّله، ونطابق المجاميع مقابل ما تتوقعه أنت قبل أن يتحوّل أحد.
تشفير الأعمدة المالية وأعمدة بيانات الاعتماد عند التخزين — رموز الدفع، ومفاتيح التحقق الثنائي، ورموز الواجهات البرمجية، وأرقام الهواتف المخزَّنة — مع مفاتيح سرية خارج الكود، وحسابات قاعدة بيانات بأقل صلاحية، وسكربت تدوير يعيد ختم كل عمود مشفَّر.
مشفّرة، وخارج الخادم، وتلقائية — ومُستعادة فعلًا لإثبات أنها تعمل. النسخة التي لم تُختبر اعتقاد لا حماية.
الترتيب نفسه في كل مشروع، أيًّا كانت التقنية المستخدمة.
نجلس مع من يؤدّون العمل ونرسم ما يحدث فعلًا، بما في ذلك الحيل الالتفافية. العملية الموثّقة والعملية الحقيقية نادرًا ما تتطابقان، والحقيقية هي المتطلّب.
الجزء الأكثر إيلامًا أولًا، يعمل بالتوازي مع الطريقة القديمة حتى تُوثَق به. التحوّل الشامل دفعة واحدة هو ما يُفشل هذه المشاريع.
مرة لمن يستخدمونه يوميًا — مدرَّبين على العملية كما صارت، وعلى ما يفعلونه حين يخالفهم النظام. ومرة لمن سيديره: النشر والنسخ الاحتياطي ودليل التشغيل، في حساباتك لا حساباتنا.
الأسئلة التي تُطرح فعلًا في أول مكالمة.
غالبًا يكون أرخص، وسنقولها. المعيار الذي نطبّقه: إن كانت عمليتك غير اعتيادية فعلًا ومركزية في طريقة كسبك للمال، فالمخصص يسدّد ثمنه. وإن كانت عملًا عاديًا في ترتيب غير عادي، فمنتج قائم مع تكامل صغير هو الشراء الأفضل دائمًا تقريبًا.
الكود ملكك وتستطيع توظيف أي أحد، بما في ذلك فريقك — وهذا هو المقصود من حزمة تقنية مملّة وموثّقة. نحن متاحون للاستمرار، لكن لا شيء في طريقة بنائنا يجعل استبدالنا صعبًا.
الأعمدة المالية وأعمدة بيانات الاعتماد مشفّرة عند التخزين مع سكربت تدوير يعيد ختمها كلها؛ والمفاتيح السرية خارج المستودع؛ وحسابات قاعدة البيانات محدودة بما تحتاجه فقط؛ وكل محاولة وصول مرفوضة مسجّلة؛ ونسخ احتياطية مشفّرة خارج الخادم تُستعاد لإثبات أنها تعمل. هذه ممارسات تعمل على منتجنا نحن، لا قائمة كُتبت لهذه الصفحة.
نعم. مستودع مشترك، ومراجعة مشتركة، وجهد مقصود لترك مطوّركم قادرًا على حمل النظام لا معتمدًا علينا.
أخبرنا ما هي، ومن يلمسها، وما الذي يعطب فيها. يصلك نطاق مكتوب — بما فيه إجابة صادقة إن كان الشراء الجاهز أنسب لك.
كل مشروع يبدأ بمكالمة لتحديد النطاق ثم تقدير مكتوب، قبل كتابة أي سطر برمجي. ولا نطلب عقدًا مسبقًا لمجرد الحديث.