منهجيات التطوير

ماهي منهجيات التطوير ؟
هي أطر عمل تحدد
- ترتيب المراحل
- توقيت الاختبارات
- طريقة التواصل مع العميل
- آلية التعامل مع التغييرات
المنهجيات الأكثر شهرة هما الشلال (waterfall) والرشيقة (Agile)
منهجية الشلال waterfall:
أقدم وأبسط منهجية تشبه الشلال تسقط الماء من مرحلة إلى التي تليها ولا يمكن العودة إلى الأعلى
مراحل waterfall بالتسلسل
- تحليل المتطلبات
- التصميم
- التطوير
- الاختبار
- الصيانة
متى نستخدم waterfall؟
| مناسب جداً | غير مناسب أبداً |
| مشاريع صغيرة وواضحة المعالم | مشاريع كبيرة أو غير واضحة |
| متطلبات ثابتة لا تتغير | متطلبات تتغير باستمرار |
| عميل يعرف بالضبط ما يريد | عميل يقول “سأعرف عندما أراه” |
| مشاريع حساسة للأمان (أنظمة طبية، طيران) | تطبيقات مبتكرة أو تجريبية |
| عقود حكومية تتطلب توثيقاً صارماً | شركات ناشئة (Startups) |
مميزات waterfall
- بسيطة وسهلة الفهم
- توثيق كامل في كل مرحلة
- سهولة تقدير الوقت و التكلفة مسبقاً
- مناسبة للفرق الصغيرة او الغير خبيرة
عيوب waterfall
- لا يمكن الرجوع لمرحلة سابقة
- العميل يرى المنتج في النهاية
- اكتشاف الاخطاء متأخر جداً
- أي تغيير في المتطلبات يعني الكارثة
المنهجية الرشيقة Agile
ليست منهجية واحدة بل فلسفة أطلق عليها اسم “البيان الرشيق”
وتضم عدة أطر مثل (agile , manifesto ) وعام 2001 scrum ,kanban
المبدأ الأساسي :
العمل في دورات قصيرة (1-4اسابيع) تسمى sprints أو Iterations
القيم الأربعة ل Agile
1- الأفراد والتفاعلات أكثر من العمليات و الأدوات
2- برمجيات تعمل أكثر من توثيق شامل
3- التعاون مع العميل أكثر من التفاوض على العقود
4- الاستجابة للتغيير أكثر من اتباع خطة ثابتة
متى نستخدم Agile ؟
| مناسب جداً | غير مناسب |
| متطلبات غير واضحة أو متغيرة | عقود ثابتة السعر والتسليم |
| عميل يريد المشاركة المستمرة | عميل لا يريد أن يسمع عن المشروع إلا في النهاية |
| مشاريع مبتكرة (تطبيقات جوال، مواقع) | أنظمة حرجة لا تحتمل أي خطأ (طب، طيران) |
| شركات ناشئة (Startups) | فرق كبيرة جداً موزعة جغرافياً |
مميزات Agile
- العميل يرى تقدماً واضحاً كل (1-4اسابيع)
- تغيير المتطلبات مرحب به وليس مشكلة
- اكتشاف الاخطاء مبكراً
- المنتج النهائي أقرب لما يريده العميل فعلاً
عيوب Agile
- صعوبة تقدير الوقت والتكلفة النهائية مسبقاً
- تحتاج التزاماً كبيراً من العميل (اجتماعات اسبوعية)
- التوثيق غالباً أقل من waterfall
- قد تسبب (زحف المتطلبات) إضافة ميزات غير محدودة
مقارنة مباشرة Waterfall VS Agile
| المعيار | Waterfall | Agile |
| التخطيط | مرة واحدة في البداية | مستمر قبل كل دورة |
| مرونة التغيير | شبه مستحيل | مرحب به في أي وقت |
| رؤية العميل للمنتج | في النهاية فقط | كل 1-4 أسابيع |
| توثيق | شامل ومفصل | بسيط وكافٍ فقط |
| حجم الفريق | أي حجم | صغير إلى متوسط (أقل من 10 عادة) |
| وقت التسليم | محدد بدقة مسبقاً | مرن (قد يتغير) |
| اختبار | بعد الانتهاء من التطوير | مستمر خلال كل دورة |
| الديون التقنية | تتراكم ثم تنفجر | يتم التعامل معها تدريجياً |