كل نظام يتقادم ينتهي به الأمر إلى الاجتماع نفسه: الاجتماع الذي يقول فيه أحدهم «لنُعِد كتابته من الصفر فحسب». تبدو الفكرة نظيفة، لكنها في الغالب فخ. فإعادة الكتابة الكاملة تستغرق عادةً ضعف المدة المخطط لها، وتجمّد تسليم الميزات الجديدة طوال تلك المدة، وتُطلق محمّلة بأخطاء كان النظام القديم قد حلّها منذ سنوات، لأن إصلاحات الأخطاء في النظام القديم كانت هي المواصفات نفسها.

لماذا تفشل إعادة الكتابة

  • النظام القديم لا يتوقف. بينما تعيد البناء، يواصل العمل طلب التعديلات، فتجد نفسك تصون نظامين.
  • المعرفة المخفية. عشرون عامًا من الحالات الاستثنائية تعيش داخل ذلك الكود. وإعادة الكتابة تتخلص منها، ثم تعيد اكتشافها واحدة تلو الأخرى في بيئة الإنتاج.
  • الانتقال دفعة واحدة. عطلة نهاية أسبوع واحدة للترحيل يجب أن ينجح فيها كل شيء. ونادرًا ما ينجح.

نهج «التين الخانق»: الاستبدال على شرائح

النمط الذي نستخدمه هو التين الخانق (Strangler Fig): أن تُنمّي النظام الجديد حول النظام القديم، فتوجّه قدرة واحدة في كل مرة إلى الكود الجديد، حتى لا يتبقى للنواة القديمة ما تفعله. كل شريحة تقدّم قيمة، ولا توجد لحظة انتقال حرجة على حافة الهاوية.

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

التحديث سلسلة من الانتصارات الصغيرة، لا معركة كبرى واحدة.

من واقع عملنا

في مشاريع تحديث أنظمة المؤسسات، نحدد نطاق كل شريحة بحيث تُنجز خلال ربع سنة. فيرى العمل تقدمًا كل بضعة أسابيع، وإذا تغيرت الأولويات يمكن إيقاف البرنامج مؤقتًا عند نقطة مستقرة، وهو ما لا تستطيعه أبدًا إعادة كتابة لم تكتمل.

متى تكون إعادة الكتابة هي الصواب فعلًا

الصراحة مهمة هنا: إذا كان النظام صغيرًا، والمجال بسيطًا، والتقنية ميتة فعلًا (لا بيئة تشغيل، ولا مطورين متاحين للتوظيف، ولا مورّد)، فقد تكون إعادة كتابة محدودة النطاق أرخص من بناء سقالات حوله. والمعيار هو الحجم ونطاق الأثر: أعد كتابة الوحدة، وطوّق المنصة تدريجيًا.

الخلاصة

الأنظمة القديمة أصول ذات واجهات سيئة، لا أعباء يجب نسفها. حدّثها بالطريقة التي بُنيت بها، أي تدريجيًا، وسيقدّم تحولك قيمة في كل ربع سنة بدلًا من أن يعد بها كلها في النهاية.