متى يحتاج النظام القديم إلى خطة
يصبح النظام «قديماً» حين يصير تغييره أصعب مما تحتمله الشركة، أياً كان عمره. فقد يظل البرنامج يعمل كل يوم، لكن المشكلة تظهر فيما حوله: الشخص الوحيد الذي يفهمه، والمورّد الذي لم يعد يدعم منصته، والربط الذي لا يمكن بناؤه، والتقرير الذي يستغرق أسبوعاً من العمل اليدوي.
أسباب تبرر المشروع
- منصته أو لغته البرمجية لم تعد تتلقى تحديثات أمنية
- لا يستطيع تعديله بأمان إلا شخص أو اثنان
- يعرقل إطلاق منتج، أو دخول سوق، أو الالتزام بتنظيم
- التعديلات الصغيرة تستغرق وقتاً أطول بكثير مما كانت تستغرقه
- لا يمكن ربطه بأنظمة أصبحت الشركة تعتمد عليها
أسباب لا تكفي وحدها
- شكله قديم
- تقنية جديدة رائجة
- مدير جديد يفضّل منتجاً آخر
- كُتب قبل وصول الفريق الحالي
- مورّد يعرض خصماً على بديل
كن واضحاً بشأن الأسباب التي تنطبق عليك، لأنها تحدد معنى النجاح. فمشروع إزالة خطر أمني ينتهي عند نقطة مختلفة عن مشروع تسريع التعديلات على المنتج.
قيّم النظام قبل أن تختار الطريق
تحمل الأنظمة القديمة سنوات من القرارات التي لم يدوّنها أحد: قاعدة تقريب أُضيفت بعد نزاع، وحالة خاصة لعميل واحد، ومهمة ليلية تصلح البيانات بصمت. هذه القرارات هي العمل نفسه، والخطة التي تتجاهلها تفشل يوم التشغيل.
- 01
ماذا يفعل النظام، وظيفةً بعد وظيفة؟
لماذا يهم ذلكاكتب ما يفعله، لا ما يقوله دليل استخدامه. راقب الناس وهم يستخدمونه، واقرأ مهامه المجدولة وتقاريره.
- 02
أي الوظائف ما زالت مستخدمة؟
لماذا يهم ذلككثير منها لم يعد كذلك، وكل ما تستطيع الاستغناء عنه شيء لن تحتاج إلى إعادة بنائه.
- 03
أين البيانات، وما مدى سلامتها؟
لماذا يهم ذلكبنيتها وحجمها وجودتها وتاريخها تحدد جزءاً كبيراً من تكلفة نقلها.
- 04
ما الذي يرتبط به؟
لماذا يهم ذلكالملفات التي تُوضع على خادم، ووصول أنظمة أخرى إلى قاعدة بياناته مباشرة، وجداول البيانات التي تتغذى من ملفات التصدير، كلها تُعدّ عمليات ربط.
- 05
من يعرف كيف يعمل؟
لماذا يهم ذلكيجب توثيق معرفتهم مبكراً، سواء كانوا موظفين، أو مورّداً، أو متعاقداً تقاعد.
- 06
ما حالة الشيفرة؟
لماذا يهم ذلكإمكانية بنائها واختبارها وتعديلها بأمان تحدد الطرق المتاحة أمامك.
ويجيب التدقيق التقني للشيفرة عن السؤال الأخير كتابةً، فيمنح الخطة أساساً من الوقائع.
الطرق المتاحة، من الأخف إلى الأثقل
| الطريق | ماذا يعني | يناسب حين |
|---|---|---|
| الإبقاء والاحتواء | اتركه كما هو، واعزله، وقلّل المخاطر من حوله | يعمل، ونادراً ما يتغير، وسيُستغنى عنه خلال مدة معروفة |
| التغليف | ضع أمامه واجهة حديثة لتستطيع الأنظمة الأخرى استخدامه | جوهره سليم، لكن لا شيء يستطيع الاتصال به |
| النقل | انقله إلى بنية تحتية حديثة بتغيير قليل | المشكلة في الأجهزة أو الاستضافة، لا في البرنامج |
| إعادة الهيكلة | أعد هيكلة الشيفرة وحدّثها مع الحفاظ على سلوكها | منطقه قيّم، ويمكن جعل الشيفرة قابلة للاختبار |
| الاستبدال على مراحل | ابنِ أجزاء جديدة بجانب القديمة، وانقل الوظائف إليها واحدة بعد أخرى | يجب أن يتغير النظام جذرياً، ولا يمكن أن يتوقف العمل |
| الاستبدال بمنتج جاهز | اعتمد برنامجاً جاهزاً، وكيّف إجراءاتك معه | احتياجاتك في هذا الجانب قياسية |
ومعظم الخطط الواقعية تجمع بين أكثر من طريق: وحدة يُستغنى عنها، وأخرى تُغلَّف، والجوهر يُستبدل على مراحل. وتساعدك مقارنتنا بين تحديث الأنظمة القديمة واستبدالها في الاختيار لكل جزء.
لماذا يتفوق الاستبدال على مراحل في الغالب
البديل عن المراحل أن تبني النظام البديل كاملاً، ثم تتحول إليه في يوم واحد. يبدو ذلك جذاباً على الورق، لكنه خطر في الواقع. فلا يُسلَّم شيء حتى النهاية، ويستمر النظام القديم في التغير بينما يُكتب الجديد، وتنكشف كل القواعد الخفية في اللحظة نفسها، أثناء التشغيل الفعلي.
- 01
اختر الشريحة الأولى
وظيفة مفيدة، ومنفصلة إلى حد معقول، وليست الأكثر حساسية. والغرض منها أن تثبت الطريقة، إلى جانب أن تقدم قيمة.
- 02
ضع طبقة أمام النظام
مرّر الطلبات عبر نقطة واحدة تستطيع توجيه كل طلب إلى النظام القديم أو الجديد، فيرى المستخدمون والأنظمة الأخرى نظاماً واحداً طوال الوقت.
- 03
ابنِ الشريحة وشغّلها بجانب القديم
يعمل النظامان معاً لفترة، وتقارن نتائجهما، فتكشف الفروقُ القواعدَ غير الموثقة.
- 04
حوّل تلك الشريحة مع إبقاء طريق للعودة
انقل المستخدمين إليها، وراقب عن قرب، واحتفظ بإمكانية العودة حتى تكتسب الثقة.
- 05
أوقف الجزء القديم، ثم كرّر
أزل ما استُبدل حتى لا يُستخدم عن طريق الخطأ، ثم انتقل إلى الشريحة التالية.
يجب أن تترك كل مرحلة الشركة في وضع تستطيع التعايش معه طويلاً. فالخطط تتغير، والميزانيات تتوقف، والتحديث الذي لم يكتمل يجب أن يبقى نظاماً يعمل.
خطّط للبيانات بعناية لا تقل عن البرنامج
في الاستبدال على مراحل، تعيش البيانات في مكانين. فحدّد لكل نوع من السجلات أي نظام هو المرجع في كل مرحلة، وكيف تنتقل التغييرات بين القديم والجديد، وكيف ستثبت أن شيئاً لم يضِع. ومقارنة الإجماليات والأعداد والعينات قبل كل عملية نقل وبعدها طريقة بسيطة وفعالة.
وقرّر أيضاً حجم السجلات التاريخية التي ستنقلها. فنقل كل سجل من عقود من التشغيل يكلّف جهداً، ويحمل معه أخطاء قديمة. وكثير من المؤسسات تنقل السجلات المفتوحة والحديثة، وتحفظ الباقي في أرشيف للقراءة فقط يبقى قابلاً للبحث. وتشرح صفحة نقل البيانات كيف يُنظَّم هذا العمل.
مثال تطبيقي
نظام الطلبات لدى شركة توزيع
هذا مثال افتراضي يوضح خطة على مراحل. شركة توزيع تدير الطلبات والتسعير والمخزون على نظام كتبه قبل سنوات طويلة متعاقد تقاعد منذ ذلك الحين.
- التقييمتكشف مراقبة فريق الطلبات أن 40 شاشة من أصل 110 في النظام ما زالت مستخدمة. ووحدة التسعير تضم قواعد خاصة بعملاء محددين لا توجد في أي مكان آخر.
- الطرقيُستغنى عن وحدة التقارير لصالح أداة تقارير جاهزة. ويُغلَّف المخزون بواجهة تتيح للمتجر الإلكتروني قراءته. أما إدخال الطلبات والتسعير فسيُستبدلان على مراحل.
- الشريحة الأولىيُعاد بناء إدخال الطلبات لعائلة منتجات واحدة. وطوال شهر، يسعّر النظامان كل طلب، فتكشف 3 فروق في كل 100 طلب قواعد لم يعد أحد يتذكرها.
- التحولينتقل فريق الطلبات إلى الشاشات الجديدة لتلك العائلة، وتبقى الشاشات القديمة متاحة أسبوعين، ثم تُزال.
- الاستمرارتتبعها بقية العائلات، واحدة بعد أخرى. ويأتي التسعير في النهاية، لأن قواعده تكون قد وُثّقت عبر المقارنات بحلول ذلك الوقت.
حصلت شركة التوزيع على تحسينات تعمل منذ المرحلة الأولى، ولم تواجه قط تحولاً واحداً عالي المخاطر. وكان يمكن للخطة أن تتوقف بعد أي مرحلة، تاركة نظاماً صالحاً للاستخدام.
قائمة التحقق من خطة التحديث
قائمة التحقق من خطة تحديث النظام القديم
0 من 11 منجزةماذا تفعل الآن
ابدأ قائمة الوظائف هذا الأسبوع. اجلس مع الأشخاص الذين يستخدمون النظام، واكتب ما يفعلونه فيه. فهذه القائمة ستقلّص المشروع، وتكشف القواعد الخفية، وتجعل كل تقدير لاحق أدق.
تشرح صفحة تحديث الأنظمة البرمجية القديمة كيف نخطط لهذا العمل وننفذه. صِف لنا نظامك، وسنقترح عليك ما تقيّمه أولاً.
أسئلة شائعة
أيهما أفضل: تحديث النظام أم إعادة كتابته من الصفر؟
إعادة الكتابة الكاملة أخطر الطرق، لأنها تحاول أن تعيد إنتاج سنوات من السلوك في محاولة واحدة، ولا تسلّم شيئاً حتى النهاية. وهي مبررة حين تكون التقنية خارج الدعم ولا يمكن جعل الشيفرة قابلة للاختبار. وحتى في هذه الحالة، يكون بناء البديل على مراحل بجانب النظام القديم أكثر أماناً في العادة من التحول دفعة واحدة.
كم يستغرق مشروع التحديث؟
يتوقف ذلك على حجم النظام، وعلى ما بقي مستخدماً منه، وعلى حالة الشيفرة والبيانات، وعلى عدد المراحل التي تستطيع الشركة استيعابها، لذلك سيكون أي رقم عام مضللاً. والخطة المرحلية تعطيك إجابة أفضل من رقم إجمالي: فهي تخبرك متى تبدأ الشريحة الأولى العمل، وما الذي تضيفه كل مرحلة بعدها.
هل يمكن أن يستمر العمل أثناء التحديث؟
نعم، وينبغي أن تُبنى الخطة على هذا الأساس. فالاستبدال على مراحل يُبقي النظام القديم عاملاً بينما تنتقل الوظائف واحدة بعد أخرى، مع طريق للعودة في كل خطوة. وتحتاج بعض المراحل إلى توقف قصير مخطط له لنقل البيانات، ويمكن عادةً جدولته خارج ساعات العمل.
ماذا لو لم يعد أحد يفهم النظام القديم؟
عندها تكون مرحلة الاستكشاف هي المرحلة الأولى، وتستحق ميزانية مناسبة. فالنظام نفسه هو التوثيق: شيفرته، وقاعدة بياناته، ومهامه المجدولة، وعادات من يستخدمونه. وتشغيل القديم والجديد جنباً إلى جنب ومقارنة النتائج أكثر الطرق موثوقية لكشف القواعد التي لا يستطيع أحد تفسيرها.
هل ننقل كل شيء إلى السحابة ضمن مشروع التحديث؟
لا، إلا إذا كانت الاستضافة إحدى مشكلاتك. فنقل البنية التحتية وتغيير البرمجيات قراران منفصلان، كثيراً ما يُجمعان دون سبب. يمكن تحديث النظام حيث يعمل، ويمكن نقله بتغيير قليل. أما الجمع بين الأمرين في خطوة واحدة فيضاعف ما قد يسوء، لذلك نفّذهما بالتتابع، ما لم يكن هناك مبرر واضح لغير ذلك.

