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


