منهجية Agile في هندسة البرمجيات؛ إطار العمل Scrum
المعلوماتية >>>> برمجيات
الجزء الثاني: هنا (الباحثون السوريون - منهجية Agile في هندسة البرمجيات؛ أهم أُطُر عمل Agile (syr-res.com))
الجزء الثالث: هنا (الباحثون السوريون - منهجية Agile في هندسة البرمجيات؛ أهم أُطُر عمل Agile (syr-res.com))
يُعدّ التنسيق المتواصل والفعال بين أعضاء أي فريق -بصرف النظر عن ماهية الفريق- أحد أهم أسباب نجاح العمل وتنفيذ المشاريع الكبيرة بدقة وفاعلية، وهذا ما يعتمده إطار العمل Scrum لإدارة مهام الفرق التطويرية المتمثلة في تطوير البرمجيات وتحسينها.
في هذا المقال سوف نتعرف أكثر إلى آلية عمل هذا الإطار واستكشاف السبب الكامن وراء عدّ هذا الإطار أحد أهم الأُطُر المستخدمة في عملية تطوير البرمجيات (1,2).
ورد ذكر مصطلح Scrum أولَ مرة في مجال الرياضة، وتحديدًا رياضة الرغبي Rugby؛ إذ كان هذا المصطلح كثير البعد عن حقل تطوير البرمجيات، ولكن ما الرابط الخفي بين هذه الرياضة وتطوير البرمجيات (1,2)؟
كانت Scrum في رياضة Rugby عبارة عن إستراتيجية قوامها الأساسي هو إعادة الكرة إلى الخطوط الخلفية وتناقلها فيما بين اللاعبين بهدف إعادة ترتيب الصفوف والبدء بهجمة منظمة جديدة (1-3)، وهذا ما يحدث تمامًا في إطار العمل Scrum؛ إذ يسعى فريق العمل إلى تطوير المشروع عن طريق إعادة المشروع إلى الخطوط التنظيمية (بالاجتماعات اليومية مثلًا) ومناقشة خطوات المشروع المُنفّذة وترتيب الأوراق من أجل إكمال المشروع بطريقة فعالة وهادفة (2).
يُتَّبع مبدأ التطوير التكراري في إطار Scrum؛ إذ يعتمد تطوير مشاريع Agile جملةً من المفهومات (محطات القطار السريع في خارطة القطار السريع في Agile (4)) التي تُتبع بسياق معين ثابت وموحّد من أجل إتمام عملية التطوير على نحو موحّد للمشاريع كلها.
المفهوم الأول الذي يٌتبع في عملية التطوير هو تحديد فترة زمنية معينة من أجل تطوير قسم من المشروع أو تحقيق هدف معين للمشروع، فيتّفق جميع أعضاء الفريق المطور والزبائن على مدة هذه الفترة بحيث عند انتهاء هذه الفترة يجب على الفريق ترك هذا القسم والبدء بقسم جديد مع فترة زمنية معينة، مع ضمان العودة إلى تطوير الأقسام غير المنتهية بعد اكتمال باقي الأقسام، ويُعرَف هذا المفهوم بالمربع الزمني (Timebox (1,2,4.
بعد تحديد المهلة الزمنية، يأتي المفهوم الأكثر استخدامًا في Agile عمومًا وفي إطار Scrum خصوصًا؛ ألا وهو الاجتماعات اليومية أو الدورية التي يفرضها هذا الإطار على مستخدميه، تُعقد هذه الاجتماعات دوريًّا بين أعضاء الفريق بحيث يقود هذا الاجتماع الـ Scrum master؛ وهو الشخص المسؤول عن مراقبة سير تطور المشروع عن طريق هذه الاجتماعات. يُعدّ الهدف من هذه الاجتماعات هو معرفة حالة أقسام المشروع المطورة على يد فريق التطوير وتحديد وظيفة كل عضو من الفريق على حدى. يسعى كل عضو من فريق التطوير إلى تحديد وضع القسم المُطَوّر من قبله وذلك عن طريق الإجابة عن ثلاثة أسئلة:
عند إجابة المطورين على هذه الأسئلة يكون الـ Scrum master قد كوّن فكرة عن وضع المشروع الحالي، ويمكن نقل هذه الصورة مباشرةً إلى الزبون لمتابعة سير العمل بنفسه أيضًا.
بعد الانتهاء من الاجتماع توضع جميع الأقسام التي نوقشت في الاجتماع على لوحة مقسّمة إلى ثلاثة أقسام (للإنجاز ToDo- يُنجز Doing- أُنجز Done)، بحيث إما تُنقل أقسام من خانة للإنجاز إلى خانة يُنجز، أو يعاد من خانة يُنجز إلى خانة للإنجاز في حال انتهاء الفترة الزمنية المحددة لإنجاز هذا القسم.
وعند توضُّع جميع الأقسام تحت خانة أُنجز يكون قد وصل الفريق المطور إلى نهاية المشروع، فيكون قد عمل على تطوير جميع أقسام المشروع بمشاركة جميع أعضاء الفريق والزبون أيضًا (1,2,4).
وبهذا يمكننا القول إنّ إطار Scrum يركّز على إدارة عملية تطوير البرمجيات على نحو كبير، وكما رأينا في المقال السابق؛ إن إطار XP صُمّم للعمل ضمن فرق صغيرة مؤلفة من عشرة أعضاء أو أقل، كذلك الأمر في إطار Scrum؛ فهو فعال في إدارة المشاريع الصغيرة والكبيرة أيضًا، وهذا ما جعله أحد أهم الأطر المستخدمة في عملية تطوير البرمجيات في عصرنا الحالي (1).
المصادر:
2. Livermore Jeffrey. Factors that Significantly Impact the Implementation of an Agile SoftwareDevelopment Methodology. Journal of Software [Internet]. 2008;3(4). Available from: هنا
3. World Rugby Laws - World Rugby's Law Education Web Site: Law 18: Touch, quick throw and lineout [Internet]. Laws.worldrugby.org. [cited 31 October 2020]. Available from: هنا
4. Subway Map to Agile Practices | Agile Alliance [Internet]. Agile Alliance. Available from: هنا