منهجية Agile في هندسة البرمجيات؛ أهم أُطُر عمل Agile
المعلوماتية >>>> برمجيات
الجزء الثاني: هنا
يُعدّ نمو الإنترنت وتطور التكنولوجيا أحد أهم الأسباب التي ساهمت في اضمحلال طرائق تطوير البرمجيات التقليدية (كمنهجية WaterFall) وتغييرها واستبدالها بمنهجية Agile على نطاق واسع؛ هذه المنهجية التي وجدت في تطور التكنولوجيا وتطور الفكر البرمجي أرضًا خصبة لنشر أفكار جديدة بين مجتمع مطوّري البرمجيات، كذلك ساهم تنوع الأفكار البرمجية وتعددها في تطور تطبيقات منهجية Agile وتنوعها؛ مما أدى إلى تطوير سريع وكبير لعدد أُطُر هذه المنهجية (1).
كانت الفكرة وراء تطوير أطر العمل في منهجية Agile هي تحسين عملية تطوير البرمجيات بإزالة الحواجز والعقبات الناتجة عن تغييرات متطلبات العمل التي يمكن أن تطرأ في أثناء عملية التطوير (1,2).
طُوّر عددٌ كبير من أطر العمل في منهجية Agile -مثل scrum، وXP، وCrystal وغيرها- لمساعدة المطورين على مَهمّاتهم اليومية ضمن خطة العمل والتطوير.
كل إطار من هذه الأطر له خطوات معينة تخدم عملية تطوير البرمجيات على نحو مختلف، ويمكن رؤية هذه الخطوات -أو كما تسمى المحطات- عن طريق خريطة محطات القطار السريع لممارسات Agile أو (3) Subway Map to Agile.
Image: https://www.agilealliance.org/agile101/subway-map-to-agile-practices/
خريطة محطات القطار السريع لممارسات Agile
تُظهِر هذه الخريطة طريقة عمل كل إطار عمل عن طريق تمثيل كل منهم بمسار يشبه مسار القطار السريع؛ كل خطوة ضمن خطة عمل الإطار هي عبارة عن محطة توقف يجب على المطوّرين الوقوف عندها وتنفيذها مع مراعاة تسلسل هذه المحطات وترتيبها. كذلك نلاحظ أنّ كثيرًا من الأطر تشترك بعدد من المحطات فيما بينها، وهذا يدل على تقارب مفهومات عمل الأطر بعضها مع بعض، ولكن باختلاف الهدف الرئيس لكل إطار (1,2,3).
أُطُر عمل منهجية Agile
نظرًا إلى العدد الكبير للأطر المُطوّرة في هذه المنهجية؛ سوف نتعرف في هذا المقال إلى أكثر الأطر استخدامًا في تطوير البرمجيات.
إطار عمل (Extreme Programming (XP
طوّر هذا الإطار Kent Beck -أحد المطورين في شركة Chrysler Comprehensive Compensation System- في أثناء عمله على مشروع تطوير يضم 15 مطورًا، وقد كان الهدف من تطوير هذا الإطار إشراكَ صاحب المشروع (العميل) في عملية التطوير جنبًا إلى جنب مع أفراد فريق التطوير؛ مما يؤدي إلى تغيير دور العميل التقليدي من مجرد مراقب خارجي للمشروع إلى فرد فعال من أفراد فريق التطوير.
يُقسَم المشروع في البداية إلى مجموعة من المَهمات يتولى كل فرد أو مجموعة من الفريق تطويرها على نحو منفصل عن باقي الأفراد، وتسمّى عملية تولي الأفراد مهمة ما بـ "التسجيل على المهمة"، ويكون ذلك بالاجتماع اليومي لأفراد الفريق،
يُناقَش في هذا الاجتماع جميع المَهمّات الموكلة للأفراد، وتحدد المَهمّات المنتهية والمَهمات قيد التنفيذ أيضًا. لا يجب أن تتجاوز مدة هذا الاجتماع ربعَ ساعة يوميًّا، وفي نهاية كل مهمة يختبرها أفرادٌ مختصون ضمن الفريق، وبعد تخطّيها مرحلة الاختبار تكون المهمة جاهزة لدمجها مع باقي المشروع (1,2).
يشرح المخطط الآتي عملية تطوير البرمجيات ضمن هذا الإطار وما المراحل التي تمر بها المهمات كلها حتى اكتمال المشروع (2).
Image: https://www.vttresearch.com/sites/default/files/pdf/publications/2002/P478.pdf
دورة حياة المشروع في إطار العمل XP
إطار (Feature Driven Development (FDD
هو أحد أطر منهجية Agile المُصمّم لاستخدامات معينة، طُوّر هذا الإطار في أحد البنوك في سنغافورة في أثناء عملية تطوير مشروع فيه.
عادةً لا يُستخدَم إطار FDD بالكامل في عملية التطوير؛ إنّما لأجزاء المشروع التي ترتكز على مرحلتي التصميم والبناء فقط، وتتكون عملية التطوير ضمن إطار FDD من خمس خطوات سهلة لا تتطلب تدريبًا مكثفًا لاستخدامها.
إنّ تطوير أنموذج شامل للمشروع، وتطوير قائمة بمتطلبات المشروع، وتحديد الأولويات في خطة التنفيذ هي الخطوات الثلاث الأولى التي يجب اتخاذها في وقت مبكر من عملية التطوير، وبعد هذه الخطوات الثلاث تبدأ عملية التطوير تكراريًّا؛ إذ ينتج عن كل تكرار تطوير قسم معين من المشروع، وبذلك عند تطوير الأقسام وإصدارها يُعاد ترتيب قائمة المتطلبات حسب الأولويات الجديدة حتى يتمكن فريق التطوير من التركيز على المتطلبات ذات الأولوية القصوى للعميل (1,2).
Image: https://www.vttresearch.com/sites/default/files/pdf/publications/2002/P478.pdf
الخطوات المتّبعة ضمن إطار FDD
إطار Kanban
يُعدّ إطار Kanban أحد أهم أُطر منهجية Agile المستخدمة في تطوير البرمجيات في الآونة الأخيرة، وذلك لما يقدّمه من سهولة استخدام وتطبيق أفكار تطوير البرمجيات على نحو بصري سهل.
يهدف إطار Kanban إلى ترتيب جميع أقسام المشروع الواجب تطويرها على شكل قصاصات ورقية ضمن لوحة -تُسمّى Kanban board- مقسّمة إلى عدة أعمدة وأقسام تصف المراحل التي يمر بها أي قسم ضمن عملية التطوير (4).
نرى في هذه الصورة أنّ مراحل تطوير المشروع تنقسم إلى عدة أطوار: طور التخطيط، وطور التطوير، وطور الاختبار، وطور النشر، وطور الانتهاء.
عند انتهاء أية مهمة من مرحلة ما، تُنقل القصاصة الورقية الخاصة بها إلى العمود المجاور؛ أي يُنقَل القسم إلى مرحلة التطوير التالية، وهكذا عند وجود الأقسام كلها في عمود المُنجز (Done) يكون فريق التطوير قد أنهى تطوير المشروع على أكمل وجه (4) .
Image: https://www.pinterest.com/pin/523543525413324697/
الخطوات المتبعة ضمن إطار Kanban
إحدى أهم ميزات هذا الإطار هي سهولة تتبُّع عملية التطوير؛ إذ إنّ إلقاء نظرة واحدة على اللوحة تكفي لمعرفة مراحل تطوير جميع أقسام المشروع.
تهدف مساعي المطورين في الآونة الأخيرة إلى دمج إطاري Kanban وScrum، وذلك لما يقدمه إطار Kanban من سهولة في التعامل وما يقدمه إطار Scrum من فعالية وقوة في متابعة سير عملية التطوير (2,4).
ولكن؛ ما إطار عمل Scrum؟ ولماذا يتّمتع بهذا القدر من الأهمية والقوة في عالم تطوير البرمجيات؟
هذا ما سنتكلم عنه في مقالنا التالي من سلسلة منهجية Agile في تطوير البرمجيات.
المصادر:
1. Livermore Jeffrey. Factors that Significantly Impact the Implementation of an Agile Software Development Methodology. Journal of Software [Internet]. 2008;3(4). Available from: هنا
2. Abrahamsson Pekka, Salo Outi, Ronkainen Jussi & Warsta Juhani. Agile software development methods. Review and analysis. Espoo 2002. VTT Publications 478. 107 p. Available from: هنا
3. Subway Map to Agile Practices | Agile Alliance [Internet]. Agile Alliance. Available from: هنا
4. MAHNIC V. Improving Software Development through Combination of Scrum and Kanban. [Internet]. 2013 [cited 17 November 2020];31(4). Available from: هنا