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

