الكثير منا يتساءل كيف تتم إدارة المشاريع البرمجية، وهل هناك طرق أو قواعد يتم الالتزام فيها أما لا!، وهناك آخرون يتساءلون هل المشاريع بحاجة لإدارة أم أنه يكفي البدء بصب الرموز البرمجية ليخرج بعدها نظاماً متكاملاً بلا أخطاء .. !
لذا أصبح لابد من إيضاح أن المشاريع البرمجية لابد من إدارتها، وفي هذا المقال سنوضح أنواع إدارة المشاريع البرمجية، وسنركز في الأجزاء القادمة على الطريقة الأكثر استخداماً في العالم.
:Process Model
هي مجموعة من الخطوات والنشاطات النموذجية التي لابد من تطبيقها لإنجاز العمل البرمجي والنموذج هو القالب الذي يمكن أن يستخدم عدد كبير من المرات بمختلف الحياة.
يمكن أن ننجز عمل برمجي دون تطبيق هذه النماذج، ولكن هذا العمل سيكون غير اقتصادي وعشوائي ناتج عن تفكير عشوائي، كما أنه غير قادر على الاستمرار في المنافسة.
يوجد مئات من النماذج، وتكون مهمة المهندسين بعد معرفة وتعلم هذه الأنواع المختلفة ودراسة إيجابيات وسلبيات كل نموذج، أن يختار النموذج المناسب لمشروع محدد، ولا يمكن اختياره عشوائياً على الإطلاق، ويمكن القول أنه لا يوجد إجرائيات صحيحة أو خاطئة بعينها، وإنما طبيعة وظروف المشروع هو من برجح نموذج على آخر.
مثال:
لو أردنا الانتقال من منطقة البيطرة إلى كلية الهندسة المعلوماتية، ستفي سيارة BMW بهذا الغرص وتحقق انتقالنا بين المنطقتين، ولكن المبلغ الضخم الذي تم دفعه مقابل السيارة من أجل الانتقال هذه المسافة القصيرة فقط مبالغ فيه كثيراً، وكان من الممكن إيجاد وسيلة أفضل لهكذا انتقال ( دراجة، سير على الأقدام).
و بما أن الكلفة كبيرة نجد أن هذا الحل لا يوافق قواعد الأمثلية ( كلفة أقل، زمن أقل، جودة أفضل) إذن سيارة BMW ليست الحل المناسب لهذه المشكلة.
:Process models types
:Plan driven processes
الطريقة العقلانية، كل نشاطات هذا النوع يتم التخطيط لها مسبقاً والإلمام بجميع تفاصيلها قبل البدء بتنفيذها بحيث لا تخطو أية خطوة دون دراسة المخاطر، ويقاس التقدم فيه بناء على هذه الخطط، أي "التخطيط لكل شيء قبل البدء بأي شيء".
من أنواعه : النموذج الشلالي، النموذج التزايدي، والحلزوني والموحد .. وإلخ.
:Agile processes
الطريقة الرشيقة وهي المستخدمة غالباً، وفيها لا يتم التخطيط بشكل مسبق للنشاطات، وإنما يكون التخطيط تزايدي بحيث نواجه المشكلة وعندها نخطط لحلها، لذلك تكون هذه الطريقة أسهل عند التعامل مع متطلبات متغيرة لأنها قادرة على تغيير النشاطات بما يتناسب مع المتطلبات الجديدة.
من أشكال النموذج الرشيق:
Scrum, XP(extreme programming), adaptive framework .. etc
عملياً يمكن للنموذج الواحد أن يحوي نشاطات متنوعة بين النوعين، أي يمكن للنموذج أن يكون plan-driven & agile في آن واحد.
أخيراً، نتمنى أن يكون المقال نال إعجابكم وحزتم على الفائدة المرجوة منه، وفي المقال القادم سوف نبدأ بالحديث عن النموذج الرشيق بالتفصيل.