صيانة وتطوير البرمجيات، بما في ذلك المشاريع التي كتبها فريق آخر
صيانة وتطوير البرمجيات هي العمل الذي يُبقي المنتج حياً بعد الإطلاق: إصلاح الأخطاء، والتحديث لإصدارات المنصات الجديدة، ومراقبة الأعطال، والحفاظ على الأمان، وتطوير الوظائف. تتولى JEEKSSHIRE 24 صيانة منتجاتها الخاصة، وتتسلم مشاريع العملاء أيضاً، بما فيها الشيفرة التي كتبتها فرق أخرى. نبدأ بقراءة الشيفرة وفهم ما يحدث فعلاً، ثم نقترح خطة واضحة.
ماذا تشمل خدمة صيانة البرمجيات
الصيانة ليست مناوبة احتياطية، بل عمل منتظم على المنتج. يتوقف نطاقها على المشروع، لكنها تشمل عادة:
- إصلاح الأخطاء التي يبلّغ عنها المستخدمون أو الموظفون أو تنبيهات المراقبة؛
- المراقبة: تنبيهات الأعطال والسجلات والنسخ الاحتياطية والتحقق من إمكانية الاستعادة منها؛
- تحديث المكتبات المعتمَدة وسدّ الثغرات المكتشفة؛
- التكيّف مع الإصدارات الجديدة من iOS وAndroid وmacOS وWindows والمتصفحات؛
- التطوير: وظائف وشاشات وتكاملات وتقارير جديدة؛
- إعداد النسخ ونشر التحديثات في متاجر التطبيقات؛
- تحديث وصف بنية المنتج وطريقة إصداره باستمرار.
من يحتاج إلى دعم التطبيقات وتطويرها
يأتينا معظم العملاء في واحدة من أربع حالات:
- المنتج يعمل، لكن الفريق الذي بناه رحل أو انشغل بغيره؛
- التطبيق يعمل، لكن كل تحديث يُفسد شيئاً ولا أحد يعرف السبب؛
- المنتج يحتاج إلى النمو: وظائف أو لغات أو منصات أو تكاملات جديدة؛
- غيّر نظام التشغيل أو متجر التطبيقات أو مزوّد الدفع قواعده، وصار التحديث ضرورياً.
إذا كان المنتج لا يزال فكرة، فابدأ من صفحة تطوير البرمجيات حسب الطلب أو تطوير MVP، فالتخطيط للصيانة منذ الإصدار الأول أسهل من إضافتها لاحقاً.
كيف نتسلم المشروع للصيانة
- فهم المهمة. نعرف ما الذي يؤلم الآن، ومن يستخدم المنتج، وما الذي يُعدّ عطلاً.
- تسليم الصلاحيات. المستودع والخوادم وحسابات المتاجر وخدمات الدفع والبريد: نعدّ قائمة بها ونتأكد أنها ملك لك فعلاً.
- تدقيق الشيفرة والبنية التحتية. نقرأ الشيفرة ونبني المشروع من الصفر ونراجع المكتبات والنسخ الاحتياطية وطريقة الإصدار.
- خطة العمل. نرتب ما وجدناه: ما يُصلَح أولاً، وما يُعاد كتابته، وما يُترك كما هو.
- المراقبة. نُعدّ تنبيهات الأعطال والنسخ الاحتياطية لتعرف بالمشكلة منّا لا من عملائك.
- العمل المنتظم. تسير الطلبات والأولويات والإصدارات وفق ترتيب متفق عليه، ولا يصدر أي إصدار إلا بعد نجاح جميع الفحوص.
ما الذي يحصل عليه العميل
- منتج يتلقى التحديثات ولا يتخلف عن إصدارات المنصات الجديدة؛
- الشيفرة المصدرية وحقوقها تبقى لك، وكذلك الحسابات والصلاحيات؛
- وصف محدّث لبنية المنتج وطريقة إصداره؛
- تنبيهات أعطال ونسخ احتياطية مُعدّة؛
- سجل واضح للتغييرات: ماذا أُنجز ولماذا وفي أي إصدار؛
- فريق واحد للصيانة والتطوير دون إحالة العمل إلى جهات أخرى.
ما الذي يجب فحصه وأي المستندات تُطلب عند تسليم المشروع، يشرحه دليل استلام المشروع البرمجي.
مثالنا: كيف نصون منتجاتنا الخاصة
لدى JEEKSSHIRE 24 أكثر من عشرة منتجات خاصة تعمل فعلاً، ويتولى صيانتها الفريق نفسه الذي كتبها. لذلك نعرف الصيانة من الداخل، لا من نص العقد فقط.
Wallet محفظة لدفع ثمن الخدمات الرقمية الدولية على Mac وWindows وفي المتصفح، بأربع لغات منها العربية. يحتاج مسار الدفع فيها إلى تحديثات دقيقة: تُنفَّذ الطلبات عبر طابور بحالات واضحة واسترداد تلقائي، وتُحسب المبالغ على الخادم.
Legal محرر مستندات بالذكاء الاصطناعي، له نسخ لـ Mac وWindows وواجهة بـ 184 لغة. يمر كل تحديث بالبناء والفحص والاختبارات قبل النشر، وتصدر نسخ سطح المكتب إلى جانب نسخة الويب.
ونتولى بأنفسنا أيضاً موقع JEEKSSHIRE 24: تُبنى نسخه اللغوية الأربع بمولّد من مصدر واحد، فيصل أي تعديل إلى جميع اللغات دون نقل يدوي.
أنواع الصيانة: تصحيحية وتكيفية وتحسينية ووقائية
يقسم أهل الصناعة الصيانة عادة إلى أربعة أنواع، وهي تساعد على الاتفاق على الأولويات وعلى ما يُعدّ عاجلاً.
| ماذا نفعل | مثال | |
|---|---|---|
| تصحيحية | نزيل الأخطاء في عمل المنتج | الدفع يتم لكن حالة الطلب لا تتغير |
| تكيفية | نكيّف المنتج مع تغيّر بيئته | إصدار iOS جديد، قواعد متجر جديدة، تغيير مزوّد الدفع |
| تحسينية | نطوّر الوظائف بطلب المستخدمين والعمل | تقرير أو دور أو لغة واجهة جديدة |
| وقائية | نقلل خطر الأعطال المستقبلية | تحديث المكتبات وتبسيط الشيفرة واختبارات للمواضع الهشة |
إذا ورثت المشروع من فريق آخر: تدقيق الشيفرة والتسليم
نقل المشروع إلى مطوّر جديد أمر طبيعي، ونحن نتسلم شيفرة الفرق الأخرى. الخطوة الأولى هي التدقيق: نبني المشروع من الصفر وفق التعليمات المتوفرة، ونراجع البنية والمكتبات وطريقة حفظ الأسرار وفحوص ما قبل الإصدار والنسخ الاحتياطية.
- قائمة بالمخاطر مع شرح ما قد يترتب على كل منها؛
- ما يُصلَح فوراً، وما يمكن تأجيله، وما يُترك كما هو؛
- الصلاحيات والمستندات الناقصة التي ينبغي طلبها من الفريق السابق؛
- خطة الإصدارات الأولى من جهتنا.
نبحث عن جذر المشكلة بدلاً من ترقيع أعراضها، فلا تتراكم الحلول المؤقتة في الشيفرة، وتنخفض تكلفة الصيانة مع الوقت بدلاً من أن ترتفع.
تحديث البرمجيات القديمة والانتقال إلى إصدارات المنصات الجديدة
نادراً ما تحتاج البرمجيات القديمة إلى إعادة كتابة كاملة. الأغلب أن نغيّر النظام جزءاً بعد جزء: نعزل الأجزاء الأكثر هشاشة، ونحدّث المكتبات والمنصات، ونضيف الاختبارات والفحوص، ثم ننقل الوظائف إلى المسار الجديد واحدة تلو الأخرى دون إيقاف العمل.
ويشمل ذلك نقل التطبيق إلى إصدار iOS أو Android جديد، وتوقيع نسخ سطح المكتب وتوثيقها، وإضافة لغات منها التخطيط من اليمين إلى اليسار. لمنتجات سطح المكتب راجع برمجة تطبيقات سطح المكتب، وللويب راجع تطوير تطبيقات الويب. وإذا كنت مترددًا بين تحديث النظام أو استبداله بخدمة جاهزة، فاقرأ برنامج جاهز أم تطوير حسب الطلب. ولمناقشة مشروعك استخدم نموذج الطلب.
الأسئلة الشائعة
ماذا تشمل صيانة البرمجيات؟
إصلاح الأخطاء، ومراقبة الأعطال والنسخ الاحتياطية، وتحديث المكتبات وسد الثغرات، والتكيف مع إصدارات المنصات الجديدة، وتطوير الوظائف. ويُثبَّت النطاق الدقيق لمنتجك في العقد.
هل تتسلمون مشروعاً بناه فريق آخر؟
نعم. نبدأ بالتدقيق: نقرأ الشيفرة ونبني المشروع من الصفر ونفهم ما يحدث فعلاً. ثم نقترح خطة توضح ما يُصلَح أولاً وما يُترك كما هو.
ماذا يقدّم لي تدقيق الشيفرة؟
قائمة بالمخاطر مع شرحها، وتقييماً للبنية والمكتبات والأمان، وقائمة بالصلاحيات والمستندات الناقصة، وخطة للعمل الأول. بعد التدقيق تفهم حالة منتجك وتتخذ قراراتك عن معرفة.
كيف تعمل الاستجابة للأعطال واتفاقية مستوى الخدمة؟
نُعدّ تنبيهات الأعطال لنعرف بالمشكلة قبل عملائك. ويُتفق على زمن الاستجابة وطريقة التعامل مع الطلبات العاجلة ويُثبَّت ذلك في العقد قبل بدء الصيانة.
كيف يتم الانتقال إلى إصدار iOS أو Android جديد؟
نختبر المنتج على الإصدار الجديد من النظام، ونحدّث المكتبات وأدوات البناء، ونصلح ما نجده، ثم ننشر التحديث عبر الفحوص المعتادة والنشر في المتجر.
كم تكلف صيانة البرمجيات؟
يعتمد السعر على حجم المنتج ومستوى الصيانة المطلوب، لذلك لا توجد قائمة أسعار. بعد التعرف على المشروع نقترح نموذج التعاون وتقديراً للعمل.
كيف تتعاملون مع الأمان والمكتبات؟
نحدّث المكتبات بانتظام، ونتابع الثغرات، ونحفظ الأسرار خارج الشيفرة، ونتحقق من كل حقل وارد. هذا شرط لكل تعديل، لا مرحلة منفصلة.