الأحد، 4 ديسمبر 2011

فوائد استخدام طريقة التطوير المرنة (Agile development method,5 advantages)

طريقة التطوير المرنة(agile) هي احدى استراتيجيات تطوير البرمجيات. مراحل هـذه العملية تحدث دائما في دورات تكراريه, والتي تشمل مرحلة جمع المتطلبات ومرحلة التصميم والتنفيذ ومرحلة الاختبار واخيرا مرحلة التقرير ثم التسليم. ألمستفيدين(stakeholders) والمصممين(designers) يلتقون بعد كل دورة لمناقشة ما حدث في الدورة السابقة واعادة التقييم المتطلبات وتحديد الاولويات. هـذه الخطوة تعطي شفافية اكبر بين العملاء والمبرمجين وخلالها يكون للزبون تأثير اكبر حول التصميم وضمان مواكبة المنتج للمواصفات المطلوبة. في طريقة الشلالات التقليدية (waterfall) المستفيدين(stakeholders) يشاركون فقط في بداية مرحلة جمع المتطلبات وبعدها تقوم المنظمة او الشركة المنفذة للمشروع  بتولي الامر والشروع في مرحلة التصميم. (stakeholder) او الزبون(client) فقط يرى المنتج بعد اكماله والـذي قد يتوافق او لا يتوافق مع ما يريده الزبون بالضبط. ان الاسلوب التقليدي لـهـذه الطريقة (waterfall)  وغيرها من الطرق الكلاسيكية الاخرى جعل طريقة (agile) تتفوق عليها بعدة خصائص اهمها:- في بعض الاحيان الزبون لا يعرف ما الـذي يريده بالضبط من البرنامج, ولكن في هذه الطريقة لا يجب عليهم الانتظار للبدء بالعمل الى ذلك الوقت بل يمكنهم البدء بفكره اساسية  وبما ان الزبون مشارك باستمرار في عملية التطوير  فيمكنه اضافة المتطلبات باستمرار وما يريده بالاعتماد على النموذج المطور من الدورة السابقة وامكانية تغيير الاسبقيات باستمرار وبالتالي الحصول على منتج قابل للاستخدام بفترة قصيرة نسبيا. 
  1. التقليل من خطر عدم موافقة الزبون على البرنامج:-طالما ان المستفيد من المشروع (stakeholder)  مشارك على طول الوقت وعلى علم في كل ما يدور وما يحدث خلال عملية  التطوير لـذا فان هـذه العملية(agile) تقلل من احتمالية عدم رضا الزبون على المنتج النهائي. على العكس عندما يشارك المستفيد فقط في بداية مرحلة جمع المتطلبات  فان هذا قد يؤدي بعملية التصميم الى اشياء قد لا تمت بصلة الى ما يريده الزبون بالضبط.. لـذا فان العمل معا وباستمرار يقلل من احتمالية عدم موافقة المنتج للمتطلبات  وبالتالي يكون المنتج اكثر قبولا من ناحية الزبون.
  2.  القدرة على التغيير والتكييف:-في هذه الطريقة (Agile development method), عناصر المشروع الكبيرة والتي لا يمكن الرجوع فيها  تؤجل الى المرحلة الاخيرة , حتى يتسنى اجراء العديد من التغييرات الممكنة للتأكد من السير في المشروع بشكل صحيح. التغييرات في المتطلبات يمكن اجراءها بعد نهاية كل دورة(increment cycle). المصمم لا يلتزم بنموذج واحد فقط ولكن في  كل مرحله يمكنه تغيير النموذج  السابق.(agile)سهلة التكيف مع العديد من التغيرات  كالتغييرات في متطلبات المستخدم التغييرات التي يجريها المطورين والتغيرات التي تحددها التقنية المستخدمة. أن القابلية  على تغير المتطلبات  باستمرار في هذه الطريقة  يجعل من السهل دمج التطورات السريعة والهائلة في مجال صناعة البرمجيات  في المشروع المنفذ بدلا من جعل التصميم قديم وقت دخوله للسوق. فعلى سبيل المثال عند القيام بتطوير برنامج كبير قد يستغرق تنفيذه سنين خلال عملية (waterfall)الـ  من المعروف ان هـذه العملية  تفرض تحديد المتطلبات عند الشروع بالعمل ولا تسمح اجراء اي تغييرات خلال عملية التطوير فحالما يأتي وقت تسليم البرنامج اـلـذي قد استغرق تطويره سنوات عديدة ففي تلك الاثناء لا نستبعد احتمال وجوود العديد من التقنيات  التي تجعل من البرنامج الــذي طورناه قديم نوعا ما وهـذا يؤدي بالمشروع الى الفشل.
  3. امكانية الشروع بالعمل قبل تحديد المتطلبات:-في بعض الاحيان الزبون لا يعرف ما الـذي يريده بالضبط من البرنامج, ولكن في هذه الطريقة لا يجب عليهم الانتظار للبدء بالعمل الى ذلك الوقت بل يمكنهم البدء بفكره اساسية  وبما ان الزبون مشارك باستمرار في عملية التطوير  فيمكنه اضافة المتطلبات باستمرار وما يريده بالاعتماد على النموذج المطور من الدورة السابقة وامكانية تغيير الاسبقيات باستمرار وبالتالي الحصول على منتج قابل للاستخدام بفترة قصيرة نسبيا.

  4. زيادة احتمالية وصول المشروع الى مرحلة التسويق:-كمية كبيرة من تطوير المشاريع لا تؤدي الى الوصول الى هذه المرحلة لا سباب عديدة منها عدم توافقها مع متطلبات المستخدم آو انها اصبحت قديمة او غير مفيدة. باستخدام طريقة التطوير المرنة (agile) فان امكانية وصول المنتج الى مرحلة التسويق تكون اعلى لان احتمالية نيل استحسان الزبون للمنتج اكبر لان الزبون جزء من فريق تطوير المشروع. وكـذلك  قدرة المطور على تطوير التصميمات المهمة في البداية يسمح بإمكانية استخدام النموذج المطور في الحال بالرغم من عدم وصول المشروع الى الشكل النهائي.
  5.  
    حفظ للوقت والاموال:-بما ان الزبون يشارك في عملية التطوير لـذا فان امكانية  حدوث سوء تواصل او عدم التوافقية تكون اصغر نسبيا, وبالتالي حدوث اخطاء اقل وهـذا بدورة يؤدي الى في اختصار الوقت واختصار في الاموال لان المنتج ينتهي بوقت اسرع. الزبون يمكنه رؤية النتائج بسرعة حالما ينتهي من تحديد المتطلبات. ويرى النتائج بعد كل دورة من عملية التطوير ويحدد فيما اـذا كان السوفت وير ينجز ما يريده منه بالضبط ام لا.

هناك تعليق واحد: