دورة حياة تطوير البرمجيات
٦ مراحل · الأدوار في لمحة
- مالك المنتج
- مدير المشروع
- محلل الأعمال
- المدير التقني
- مهندس الأنظمة
- مصمم UX/UI
- مطور الواجهة الأمامية
- مطور الخلفية
- مهندس الحلول
- مهندس جودة
- مختبِر
- DevOps
- مدير قاعدة البيانات
- DevOps
- المستخدمون
- المختبِرون
- الدعم الفني
01 — التحليل
ترجمة التوقعات الغامضة لأصحاب المصلحة إلى متطلبات دقيقة وموثّقة. تحديد ما يجب أن ينجزه النظام — وليس كيفية إنجازه.
- الرؤية — الصورة الكبرى وأهداف المشروع
- المتطلبات الوظيفية — الإجراءات التي سينفذها النظام
- المتطلبات غير الوظيفية — مقاييس الأداء، الأمان، وقابلية التوسع
- القيود — الحدود النظامية والقيود الصارمة
- الافتراضات — المجاهيل المقبولة للبدء
- هل الرؤية واضحة وموحدة لدى كافة أصحاب المصلحة؟
- هل المتطلبات قابلة للقياس والاختبار بدقة؟
- هل تُوثّق القيود بشكل صريح؟
- هل تم التحقق من صحة الافتراضات المصاغة؟
- هل يمكن قياس المتطلبات غير الوظيفية موضوعياً؟
02 — التصميم
تحويل المتطلبات الوظيفية إلى هياكل برمجية. تحديد نطاق المشكلة، رسم حدود النظام، نمذجة حالات الاستخدام، وتحديد التقسيم المعماري.
- نطاق المشكلة — رسم الحدود الدقيقة للنظام
- حالات الاستخدام المحورية — المسارات الأساسية لتحقيق غاية النظام
- حالات استخدام النظام — جميع التفاعلات الممكنة للمستخدمين مع النظام
- الأطراف الفاعلة — من وما يتفاعل مع النظام (Actors)
- التقسيم المعماري — الطبقات الوظيفية، الوحدات البرمجية، وواجهات الاتصال
- هل رُسمت حدود نطاق النظام بوضوح لتجنب التزحف (Scope Creep)؟
- هل حُدِّدت جميع الأطراف الفاعلة (البشرية والبرمجية)؟
- هل تغطي حالات الاستخدام كافة أهداف المستخدمين؟
- هل البنية المعمارية قابلة للتوسع لاستيعاب المتطلبات المستقبلية؟
- هل عُرِّفت الواجهات الخارجية (APIs) بدقة؟
03 — التطوير
تنفيذ البنية المعتمدة. حيث يبدأ فريقا الواجهة الأمامية والخلفية ببناء النظام استناداً إلى المواصفات، ونماذج البيانات، ومخططات سير العمل.
- الكيانات (نموذج البيانات) — تصميم الهياكل البيانية
- مخططات التدفق — برمجة وتشكيل مسارات المنطق التشغيلي للتطبيق
- الكود الزائف (Pseudocode) — صياغة المنطق برمجياً قبل كتابته
- مخططات التسلسل — تنظيم التدرج الزمني لتفاعلات الكائنات
- الواجهة الأمامية والخلفية — واجهات المستخدم، الـ APIs، منطق الأعمال، وقواعد البيانات
- هل يتطابق الكود المكتوب مع البنية المعمارية المعتمدة؟
- هل تُطبّق المعايير القياسية عبر المراجعة الدورية للكود (Code Review)؟
- هل عُولجت حالات الحافة (Edge Cases) والقيم الفارغة؟
- هل نسبة تغطية اختبارات الوحدة كافية؟
- هل اُعتمدت صياغة الكود الزائف قبل الشروع الفعلي في البرمجة؟
04 — الاختبار
الفحص المنهجي للتأكد من استجابة النظام لكل المتطلبات، واكتشاف العيوب ومعالجتها قبل وصول النظام للمستخدمين الفعليين في بيئة الإنتاج.
- اختبار الوحدة (Unit Testing) — ضمان صحة عمل المكونات فرادى
- اختبار التكامل (Integration Testing) — التثبت من عمل الوحدات المدمجة معاً
- اختبار النظام (System Testing) — دورات تدفق كاملة من البداية للنهاية
- اختبار القبول (UAT) — التقييم والمصادقة من قبل المستخدم النهائي
- اختبار الأداء (Performance Testing) — فحص أحمال النظام، الإجهاد، وقابلية التوسع
- هل تغطي سيناريوهات الاختبار كافة حالات الاستخدام فعلياً؟
- هل تم فحص وتأكيد المتطلبات غير الوظيفية؟
- هل بالإمكان تتبع حالات الاختبار وربطها بالمتطلبات الأساسية؟
- هل اختبارات الانحدار (Regression Tests) مؤتمتة بالكامل؟
- هل صادق مالك المنتج رسمياً على اختبار القبول (UAT)؟
05 — النشر والإطلاق
ترحيل النظام المُختبَر إلى بيئة الإنتاج، والذي يقتضي تهيئة البنية التحتية، تنفيذ الترحيلات، تفعيل أدوات المراقبة، وتطبيق خطة الإطلاق.
- تهيئة البيئة — تجهيز الخوادم، ضبط الإعدادات، وتأمين المفاتيح السرية
- ترحيل قاعدة البيانات — تطبيق المخططات (Schema) وحقن البيانات الأولية
- مسار التوصيل المستمر (CI/CD) — أتمتة عمليات بناء ونشر الإصدارات
- اختبار الدخان (Smoke Testing) — التأكد السريع للصحة التشغيلية عقب النشر
- خطة التراجع (Rollback Plan) — منهجية الرجوع للإصدار السابق عند الفشل
- هل خُطِّطت استراتيجية التراجع بوضوح وموثوقية؟
- هل لوحات المراقبة وتنبيهات الأخطاء مُفعّلة وتعمل بكفاءة؟
- هل أُبلغت الأطراف المعنية بنطاق توقيت النشر المتوقع؟
- هل أُحكم تأمين المفاتيح السرية (Secrets) ومرتكزات الإعداد؟
- هل عملية ترحيل البيانات قابلة للعكس بأمان؟
06 — الصيانة والتطوير
المراقبة المستمرة لصحة النظام، التجاوب مع مقترحات المستخدمين، ترقيع الثغرات الإنتاجية، وتغذية الدروس المستقاة للدورة التطويرية القادمة.
- صيانة تقويمية — إصلاح أخطاء بيئة الإنتاج المُبلّغ عنها وتشخيصها
- صيانة تكيّفية — المواءمة وتأقلم النظام مع المتغيرات البيئية الجديدة
- صيانة تحسينية — رفع مستوى الأداء وترقية الكفاءة وسرعة الاستجابة
- صيانة وقائية — إعادة الهيكلة والتنقيح، وتقليص الديون التقنية
- هل ترصد أنظمة المراقبة المشاكل الحقيقية مبكراً وبصورة استباقية؟
- هل تُحوّل ملاحظات المستخدمين دورياً إلى قائمة الأعمال المتراكمة (Backlog)؟
- هل تخضع عمليات تدارك الأخطاء العاجلة (Hotfixes) لمسار جودة صحيح؟
- متى سيتم الشروع في الدورة التطويرية (SDLC) التالية؟
سير عمل التحليل والتصميم
- الرؤية
- المتطلبات الوظيفية
- المتطلبات غير الوظيفية
- القيود
- الافتراضات
- تعريف حدود النظام
- تحديد الكيانات الأساسية
- رسم العلاقات
- تحديد حدود النطاق
- حالات الاستخدام المحورية
- حالات استخدام النظام
- قائمة جميع الأطراف الفاعلة
- مخططات النشاط
- تحليل البنية
- تعريف المكونات
- ربط الواجهات
- اختيار الأنماط
- إعداد البنية التحتية
- خط CI/CD
- ضبط البيئة
- خطة الإطلاق
نظام تدفق القرارات
→ العودة إلى التحليل. إعادة إشراك أصحاب المصلحة. توضيح الرؤية والتوقعات الوظيفية قبل أي عمل تصميمي.
→ مراجعة التصميم. تفكيك أعمق. التحقق من البنية مقابل المتطلبات مرة أخرى قبل استئناف التطوير.
→ العودة إلى التصميم. إضافة الأطراف الفاعلة أو التدفقات أو الحالات الحدية المفقودة. إعادة النمذجة قبل كتابة أي كود.
→ العودة إلى التطوير. إصلاح السبب الجذري — وليس العرَض. إعادة تشغيل مجموعة اختبارات الانحدار الكاملة قبل إعادة التقديم.
→ تنفيذ خطة التراجع. التحقيق في السبب الجذري. الإصلاح في التطوير ← إعادة الاختبار ← إعادة النشر بثقة.
→ المتابعة إلى المرحلة التالية. توثيق القرارات والمبررات. إخطار أصحاب المصلحة وتحديث تتبع التقدم.