لا تخلو محاضرة عن التحديث من الرسم نفسه: شجرة تين تلتفّ ببطء حول شجرة قديمة حتى تختفي القديمة تماماً. صورة معبّرة، لكنها تُخفي معظم العمل.
استبدلنا بهذه الطريقة أحد عشر نظاماً كبيراً منذ عام 2019، منها نواة المدفوعات في أحد البنوك ومحرّك توجيه الشحنات لدى إحدى شركات النقل. وإليك ما تمنّينا لو أخبرنا به أحد في المرة الأولى.
الصعوبة في نقطة الوصل، لا في الكود الجديد
بناء خدمة جديدة هو الجزء السهل. أما الصعب فهو نقطة الوصل: الموضع الذي يمكن منه توجيه حركة البيانات إلى النظام القديم أو الجديد أو إليهما معاً. وإن لم يكن للنظام القديم مدخل نظيف، فعليك أن تبنيه أولاً، وكثيراً ما يستغرق ذلك وقتاً أطول من الشريحة الأولى نفسها.
- ضع طبقة توجيه أمام النظام القديم قبل أن تستبدل أي شيء.
- اتخذ قرار التوجيه لكل عميل أو مركز توزيع أو حساب على حدة، لا على مبدأ «الكل أو لا شيء».
- سجّل كل قرار، حتى تتمكن من تفسير المسار الذي سلكته أي معاملة.
شغّل النظامين معاً وقارن كل شيء
الثقة تأتي من وضع الظل. تعالج الخدمة الجديدة نسخة من حركة البيانات الحية، وتقارن مهمة مطابقة نتائجها بنتائج النظام القديم. في Ruwaq Bank لم ننقل أي مسار إلى النظام الجديد إلا بعد أن تطابقت نتائجه 30 يوماً متتالية.
مهمة المقارنة هي أهم كود ستكتبه، وهي أول ما تتخلى عنه الفرق حين يضيق الوقت.
اختر الشريحة الأولى لتتعلّم منها، لا لتتباهى بها
ينبغي أن تكون الشريحة الأولى ذات قيمة، لكن الأهم أن تعلّمك كيف تعمل نقطة الوصل والنشر والمقارنة. والجزء الكثيف الاستخدام، المفهوم جيداً، السهل التراجع عنه، يتفوّق في كل مرة على أكثر أجزاء النظام إيلاماً.
حدّد مبكراً متى يُعدّ العمل منتهياً
كثيراً ما تكون العشرة في المئة الأخيرة من النظام القديم مهامّ دفعية وتقارير وعمليات تكامل غريبة لا يتذكرها أحد. اتفق منذ البداية على مصير كل منها، بما في ذلك إيقاف بعضها، وإلا بقي النظام القديم حياً لسنوات في زاوية ما.
إن كنت تفكّر في إعادة كتابة نظامك، يسعدنا أن نناقش الأمر معك. وعادةً ما تحسم مراجعة للبنية المعمارية مدتها أسبوعان هذا السؤال.