05.12.2021 7 min read

ما هي منهجية Agile؟ كيف تعمل، أفضل الممارسات، الأدوات

بواسطة Valens

دليل شامل لمنهجية Agile، يغطي مبادئها الأساسية، وإطاري عمل Scrum وKanban، وأفضل الممارسات، والأدوات الشائعة المستخدَمة في تطوير البرمجيات الحديث.

Agile Methodology

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

كيف تعمل

تعمل من خلال الاعتراف أولًا بأن طريقة "الشلال" (waterfall) القديمة لتطوير البرمجيات تترك الكثير مما هو مرغوب فيه. عملية "خطط، صمّم، ابنِ، اختبر، سلّم" تعمل بشكل جيد لصناعة السيارات أو المباني لكن ليس بنفس الجودة لإنشاء أنظمة برمجية. في بيئة أعمال حيث تكون الأجهزة والطلب والمنافسة كلها متغيرات سريعة التغيّر، تعمل Agile من خلال السير على الخط الفاصل الدقيق بين العملية الزائدة وغير الكافية.

نظرة عامة على منهجية Agile

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

  • أسرع، أصغر. اعتمد تطوير البرمجيات التقليدي على مراحل مثل تحديد المتطلبات والتخطيط والتصميم والبناء والاختبار والتسليم. أما منهجية Agile، على النقيض، فتسعى لنشر أول زيادة (increment) خلال أسبوعين والبرنامج بأكمله خلال بضعة أشهر.
  • التواصل. تعمل فرق Agile داخل الشركة معًا يوميًا في كل مرحلة من المشروع من خلال اجتماعات وجهًا لوجه. يضمن هذا التعاون والتواصل بقاء العملية على المسار الصحيح حتى مع تغيّر الظروف.
  • الملاحظات. بدلًا من الانتظار حتى مرحلة التسليم لقياس النجاح، تتتبع الفرق التي تستخدم منهجية Agile نجاح وسرعة عملية التطوير بانتظام. تُقاس السرعة (velocity) بعد تسليم كل زيادة.
  • الثقة. فرق وموظفو Agile ذاتيو التنظيم. بدلًا من اتباع بيان قواعد من الإدارة يهدف لإنتاج النتيجة المرغوبة، يفهمون الأهداف ويبتكرون مسارهم الخاص للوصول إليها.
  • التعديل. يضبط المشاركون ويعدّلون العملية باستمرار، متبعين مبدأ KIS أو "أبقِها بسيطة" (Keep It Simple).

أمثلة على منهجية Agile

الأمثلة الأكثر شيوعًا وانتشارًا هي Scrum وeXtreme Programming (XP) وFeature Driven Development (FDD) وDynamic Systems Development Method (DSDM) وAdaptive Software Development (ASD) وCrystal وLean Software Development (LSD). تختار الفرق عادة طريقة أو طريقتين. المنهجيتان الأكثر استخدامًا هما Scrum وXP، اللتان تتكاملان بشكل جيد.

Scrum نظام عملي يتكون من خطوات ومكونات بسيطة مترابطة:

  • يضع مالك المنتج قائمة أمنيات مرتبة حسب الأولوية تُعرف باسم product backlog.
  • يأخذ فريق scrum جزءًا صغيرًا من أعلى قائمة الأمنيات يُسمى sprint backlog ويخطط لتنفيذه.
  • يُكمل الفريق مهمة sprint backlog الخاصة به في sprint (فترة من 2-4 أسابيع). يقيّمون التقدم في اجتماع يُسمى daily scrum.
  • يبقي ScrumMaster الفريق مركّزًا على الهدف.
  • في نهاية الـ sprint، يكون العمل جاهزًا للشحن أو العرض. يُنهي الفريق الـ sprint بمراجعة، ثم يبدأ sprint جديدًا.

إليك مثالًا على كيفية عمل Scrum: يجتمع Bill مع عميلة لمناقشة احتياجات شركتها. تلك الاحتياجات هي product backlog. يختار Bill أهم المهام للعمل عليها في الأسبوعين التاليين. يجتمع فريقه في daily scrum لتحديد هدف العمل لليوم التالي ومعالجة العقبات. في نهاية الـ sprint، يسلّم Bill العمل، ويراجع backlog، ويضع الهدف للـ sprint التالي. تتكرر الدورة حتى يكتمل البرنامج.

agile scrum process

eXtreme Programming. غالبًا ما تُستخدَم مع scrum، وXP مثال على كيف يمكن لـ Agile أن تعزز رضا العملاء. بدلًا من تسليم كل ما قد يريده العميل يومًا ما في المستقبل البعيد، تمنحه ما يحتاجه الآن، بسرعة. تتمحور XP حول الإصدارات المتكررة ودورات التطوير القصيرة. تستخدم مراجعة الكود، والبرمجة الثنائية (pair programming)، واختبار الوحدة، والتواصل المتكرر مع العميل.

إليك مثالًا على كيفية عمل XP: يبني Bill قائمة من متطلبات العميل من خلال جعل العميل يروي "قصص المستخدم" التي تحدد الميزات. من هذه، يبني خطة إصدار البرنامج. سيُسلَّم البرنامج على شكل تكرارات، مع تسليم واحد كل بضعة أسابيع. يعمل الفريق في أزواج من المبرمجين، باستخدام اجتماعات يومية لتذليل العقبات. يقدّم العميل ملاحظات على شكل مزيد من قصص المستخدم. تتكرر الدورة حتى يُسلَّم البرنامج.

فوائد منهجية Agile

ترتبط فوائد Agile مباشرة بعقليتها الأسرع والأخف والأكثر تفاعلًا. باختصار، تسلّم العملية ما يريده العميل، عندما يريده. هناك وقت أقل بكثير يُهدَر في التطوير في الاتجاه الخاطئ، والنظام بأكمله أسرع في الاستجابة للتغييرات.

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

أفضل الممارسات

قائمة أفضل الممارسات طويلة ومفصَّلة، مع عشرات الأدوات للاختيار من بينها. حددنا قائمة قصيرة بالفوائد الرئيسية أدناه.

  • حدّد الأولويات. product backlog هو قائمة من المهام المرتبة حسب الأولوية يحتفظ بها مالك المنتج.
  • حافظ على دورات إصدار صغيرة. يجب إصدار المنتج على شكل زيادات كل 2-4 أسابيع، مع تقديم أصحاب المصلحة ملاحظاتهم قبل المتابعة.
  • استخدم البرمجة الثنائية (pair programming). يعمل مبرمجان جنبًا إلى جنب على حاسوب واحد. تنتج هذه التقنية فعليًا نفس درجة الإنتاجية للبرمجة المنفصلة لكن بجودة أعلى.
  • أعد الهيكلة (Refactor). أعد العمل على الكود بانتظام لتحقيق نفس النتيجة بكفاءة ووضوح أكبر.
  • استخدم التطوير المدفوع بالاختبار (TDD). اكتب كود اختبار الوحدة أولًا لإبقاء المشروع في مساره طوال الوقت. ينتج التطوير المدفوع بالاختبار كأفضل ممارسة في Agile أيضًا تفاعلًا أكبر للموظفين، إذ يحوّل الاختبار من عمل روتيني ممل إلى تحدٍّ برمجي.

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

قراءات إضافية عرض الكل
الخطوة التالية

طبّق هذه الأفكار على منتجك

يساعد استوديو فالنس الفرق ذات المخاطر العالية على تحويل الوضوح الهندسي إلى تسليم منتج معياري.