المعلوماتية > برمجيات

منهجية Agile في هندسة البرمجيات؛ قيم ومبادئ Agile

الجزء الأول: هنا

يشتمل بيان منهجية Agile على أربع قيم واثني عشر مبدأً (1).

القيم الأربع 

كما ذكرنا سابقًا في الجزء الأول من السلسلة، تستند منهجية Agile إلى أربع قيم رئيسة:

  1. ضرورة استجابة الأفراد وتفاعلهم مع بيئة العمل وأدواته.
  2. أهمية توثيق مراحل العمل كلها.
  3. فهم الأفراد لماهيّة المشروع.
  4. التزام الأفراد بالعقد الموقّع من الأطراف كافة.
ولكن لضمان تفاعلٍ وتعاونٍ أكبر بين أفراد الفريق والعملاء؛ حُدِّدت مبادئ ثابتة تشرح على نحو مفصَّل كيفية تعامل الأفراد فيما بينهم (1).

المبادئ الاثنا عشر

  1. الهدف الأسمى هو إرضاء العميل عن طريق التسليم المبكّر والمتواصل لبرمجيات ذات قيمة

    نظرًا إلى أنّ ما يهم العميل هو الحصول على أجزاء فعّالة وذات قيمة من البرمجية لقاء المال الذي يُدفَع للمطورين، وليس الحصول على تحديثات أو صيانة أقسام ثانية من المشروع؛ نَصَّ هذا المبدأ على أنّ الفريق المطور يجب عليه دائمًا وباستمرار تسليم جزء فعال وذي قيمة من البرمجية إلى العملاء.

  2. تغير المتطلبات مرحّبٌ به حتى في مراحل متقدمة من التطوير

    يشهد عالمنا الحالي تسارعًا غير مسبوق في تطوير المنهجيات والأساليب والطرائق المتبعة في تطوير البرمجيات، فلا يمكن لأي مطور أو عميل التقيد بالمتطلبات الحقيقية والثابتة للمشروع، فمن المرجح ظهور متطلبات للمشروع بعد البدء بتنفيذه.

    في المنهجيات التقليدية؛ تسبب التغيرات المفاجئة لمتطلبات المشروع بخسارة أموال العميل، وذلك لما يتطلبه الأمر من إعادة دراسة المشروع والبدء بتنفيذه من جديد، وهذا ما تتجنّبه منهجية Agile؛ إذ ينص هذا المبدأ على سهولة تقبل متطلبات العميل الجديدة دون الاضطرار إلى إعادة دراسة المشروع وتنفيذه.

  3. تسليم برمجيات صالحة للاستعمال على فترات منتظمة؛ من أسبوعين إلى شهرين، مع استحسان المدة الزمنية الأقصر

    يرتبط هذا المبدأ بالمبدأ الأول على نحو كبير؛ إذ ينص على ضرورة تسليم العميل لأجزاء فعّالة من المشروع، ولكن بفترات زمنية محددة وثابتة وقصيرة قدر الإمكان.

  4. يجب أن يعمل كلٌّ من المهنيين (العارفين بالمهنة) والمطورين معًا يوميًّا خلال فترة المشروع

    غالبًا ما كان المطورون يتجنّبون الاحتكاك المباشر مع العملاء أو أصحاب الشركات، فقد كان الوسطاء هم صلة الوصل بين العملاء والمطورين، ولكنّ هذه الطريقة تجعل إيصال الأفكار من العملاء إلى المطورين (وعلى نحو عكسي) أمرًا صعبَ التحقيق، لذلك نَصَّ هذا المبدأ على تشارك العملاء والمطورين للمشروع؛ مما يسهّل تناقل الأفكار فيما بينهم لتفادي الوقوع في فخ عدم فهم العملاء والمطورين للمتطلبات نتيجة تناقلها بين الوسطاء على نحو خاطئ، ودون الحاجة إلى إضاعة الوقت بين الوسطاء أو الوقوع في فخ عدم فهم متطلبات العميل على نحو صحيح.

  5. الاعتماد في بناء المشاريع على أفراد متحمسين، مع توفير البيئة المناسبة والدعم اللازم ومنحهم الثقة من أجل إنجاز العمل

    يضمن هذا المبدأ حقوق المطورين وحقوق العملاء في آن واحد؛ إذ يضمن للعملاء مشاركة مطورين ذوي حماس عالٍ يساعدهم -على نحو كبير- على تطوير مشروع ناجح، كذلك يضمن للمطورين توفير بيئة عمل مناسبة محاطة بالدعم والثقة من المشرفين والعملاء.

  6. التواصل (المباشر) وجهًا لوجه هو أكثر الطرائق فاعلية وتأثيرًا لتوصيل المعلومات إلى فريق التطوير وبين أفراده

    نتج عن تطور التكنولوجيا في عصرنا الحالي ظهور وسائل تواصل عديدة بين البشر، ولكن يبقى أهمها التخاطب وجهًا لوجه لما توفره هذه الوسيلة من كمية معلومات بين المتخاطبين من لغة الجسد وتواتر الأصوات وشدة الحديث، وهذا ما تفضله منهجية Agile؛ إذ تفضل التواصل وجهًا لوجه بين الأفراد لإمكانية نقل معلومات كثيرة بينهم لا يمكن تناقلها عن طريق الرسائل أو الهاتف.

  7. البرمجيات الصالحة للاستعمال هي المقياس الرئيس للتقدم

    يستغرق تطوير المشاريع المختلفة فترات متفاوتة بين الشركات، ولذلك نص هذا المبدأ على أنّ وحدة قياس تقدم الشركات هي عمل البرامج المُطوَّرة من قبلهم؛ إذ يُنظَر إلى عدد المشاريع المنفّذة والفعّالة، وعلى هذا الأساس يُقدّر تقدم الشركات فيما بينها.

  8. تشجع منهجية Agile التطويرَ المستدام، وينبغي للرعاة والمطورين والمستخدمين أن يكونوا قادرين على الحفاظ على وتيرة ثابتة على الدوام

    تؤدي كثرة التواصل بين الفريق المطور والعميل إلى تغير سريع ودائم في شكل المشروع عن طريق التغييرات والمتطلبات الجديدة، لذلك ينص هذا المبدأ على ضرورة مواكبة العميل والفريق للمتغيرات الجديدة؛ مما يضمن عدم مواجهة تعارضات ناتجة عن تأخير من أحد الفرق المطورة.

  9. الاهتمام المستمر بالتفوق التقني والتصميم الجيد يعزز درجة المرونة

    يشكّل التصميم الجيد للمشروع عند مرحلة الإطلاق أهمَّ العوامل بالنسبة إلى العميل، فهو يريد لمشروعه أن يظهر بأبهى حلة لتثير إعجاب المستخدمين، ولذلك تهتم منهجية Agile بمظهر المشروع من بدايته وحتى لحظة إطلاقه للمستخدمين.

  10. البساطة (فن تقليص الأعمال غير الضرورية) أساسية

    يهتم هذا المبدأ بحذف جميع العناصر غير الضرورية أو غير المستخدمة في المشروع، وذلك لتوفير المال والوقت.

  11. إنّ أفضل البنيات والمواصفات والتصميمات تنبثق من فرق العمل الذاتية التنظيم

    يهدف هذا المبدأ إلى ترسيخ فكرة أنّ الفرق ذات التنظيم الذاتي هي الفرق التي تصل إلى هدفها بفاعلية وسرعة، وذلك لما يحتاجه المشروع من تواصل الشركات والمطورين بانتظام وفعالية بعضهم مع بعض.

  12. يراجع فريق العمل على فترات منتظمة كيف يصبح أكثر فاعلية، ثم يدقق سلوكه  ويضبطه وفقًا لذلك

    يجب أن تأخذ الفرق الوقت الكافي لمراجعة طريقة عملها وتحسينها قدر المستطاع، فلا يوجد فريق يعمل على نحو مثالي، وهذا ما ينص عليه هذا المبدأ؛ إذ يمكن للفريق تحديد المشكلات، ثم اتخاذ الإجراءات اللازمة لتحسين عملية التطوير (2,3).

إنّ منهجية Agile مبنية على درجة عالية من الدقة والتعاون والاحترام المتبادل بين جميع أفراد عملية التطوير من عملاء ومديرين ومطورين وفنيين، ولكن؛ هل هذا التعاون المتبادل سوف يفي بالغرض من أجل الحصول على مشروع نهائي متكامل؟ هذا ما سنتعرف إليه في باقي أجزاء السلسلة.

المصادر:

1. Agile Manifesto for Software Development | Agile Alliance [Internet]. Agile Alliance. [cited 19 November 2020]. Available from:  هنا

2. Principles behind the Agile Manifesto [Internet]. Agilemanifesto.org. [cited 19 November 2020]. Available from: هنا

3. 12 Principles Behind the Agile Manifesto | Agile Alliance [Internet]. Agile Alliance. [cited 27 September 2020]. Available from: هنا