ما هي Agile؟

مكتمل

استخدمنا مصطلح agile في الوحدة السابقة لوصف أحد العناصر الأساسية لثقافة DevOps، ما يمثل القدرة على الاستجابة السريعة لتعليقات العملاء واحتياجاتهم. ظهر هذا المصطلح أيضا عدة مرات في الوحدة التي تصف الارتباط بين DevOps ودورة حياة التطبيق. ومع ذلك، هناك أيضا معنى آخر أكثر تحديدا Agile (بالتنسيق بأحرف كبيرة)، والذي يصف نهجا لتطوير البرامج وإدارة المشاريع. يرتبط هذا النهج عادة بممارسات DevOps. في نموذج السيناريو لدينا، من شأن الانتقال من نهج الشلال التقليدي إلى Agile أن يساعد المؤسسة على تحقيق مجموعة من مزايا DevOps. في هذه الوحدة، استكشف الخصائص الأساسية ل Agile وفحص ارتباطها ب DevOps.

رسم تخطيطي يعرض دورة حول لوحة كانبان.

مبادئ وقيم Agile

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

  • الأفراد والتفاعلات عبر العمليات والأدوات.
  • برامج العمل على وثائق شاملة.
  • تعاون العملاء على التفاوض على العقد.
  • الاستجابة للتغيير عبر اتباع خطة.

أساليب وممارسات Agile

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

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

ما هو Scrum؟

Scrum هو إطار عمل تستخدمه الفرق لإدارة العمل وحل المشكلات بشكل تعاوني باختصار (عادة ما يتراوح طوله بين أسبوع وأربعة أسابيع) ويسمى الدورات المتكررة. لتسهيل التعاون والتقدم، يتم تنظيم الدورات المتكررة استنادا إلى الأحداث والبيانات الاصطناعية والأدوار.

  • الأحداث، ويشار إليها عادة بالاحتفالات، وتشمل الاجتماعات التي تعقد يوميا (Scrum اليومي، تقتصر عادة على 15 دقيقة، والمعروفة أيضا باسم الاستعداد اليومي) وفي بداية ونهاية كل دورة متكررة (تخطيط الدورة المتكررة، ومراجعة الدورة المتكررة، والرجعية المتكررة).
  • Artifacts تحديد قائمة ذات أولوية من الميزات والتحسينات والإصلاحات التي يجب تطويرها. قد تغطي هذه البيانات الاصطناعية امتداد مشروع أو دورة متكررة (تراكم المنتج أو تراكم الدورات المتكررة، على التوالي)، أو قد تساعد اجتماعات Scrum اليومية (لوحات المهام ومخططات توقف الدورة المتكررة). توفر لوحة المهام طريقة مرئية لتتبع تقدم كل عنصر تراكم. يعرض عناصر تراكم مقسمة إلى المهام المطلوبة لإكمالها. يتم وضع المهام في أعمدة منفصلة (تسمى للقيام، قيد التقدم، تم) استنادا إلى حالتها. يعمل مخطط توقف الدورة المتكررة كمؤشر مرئي حول ما إذا كان الفريق على المسار الصحيح لإكمال العمل المعين له بنهاية الدورة المتكررة. ويتكون من رسم بياني يعرض الإجمالي اليومي للعمل المتبقي، الذي يظهر عادة بالساعات.
  • تتضمن الأدوار مالك المنتج وScrum الرئيسي وفريق Scrum، ولكل منها مسؤوليات محددة بوضوح. يمثل مالك المنتج أصحاب المصلحة في المشروع وهو مسؤول عن تحديد تراكم المنتج وصيانته وتحديد أولوياته. يشرف رئيس Scrum على عملية Scrum، ويبحث عن مجالات للتحسينات، وحل أي مشكلات حظر، وضمان اتباع مبادئ Scrum. فريق Scrum مسؤول عن بناء المنتج، مع ملكية مكوناته الهندسية والجودة.

رسم تخطيطي يظهر دورة حياة Agile Scrum.

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

ما هو كانبان؟

رسم تخطيطي يعرض تمثيل لوحة Kanban بأعمدة متعددة.

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

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

رسم تخطيطي يعرض لوحة Kanban بثلاثة أعمدة بما في ذلك المهام والمهمات والمنجزة.

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

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

رسم تخطيطي يظهر لوحة كانبان مع أشخاص يسحبون العمل من تراكم العمل.

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

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

مكون آخر شائع الاستخدام من Kanban هو رسم تخطيطي للتدفق التراكمي (CFD). إنه مخطط يوضح عدد العناصر في كل حالة بمرور الوقت، عادة عبر عدة أسابيع. وهو يشبه مخطط سلسلة زمنية مكدسة، مع المحور الأفقي الذي يمثل المخطط الزمني والمحور العمودي الذي يمثل العدد التراكمي لعناصر العمل. يتم عرض كل حالة كمنطقة ملونة مختلفة، ما يسهل تحديد الاتجاهات في معالجة العناصر المتراكمة. عادة ما تشير الزيادة في حجم منطقة ملونة واحدة أو أكثر إلى وجود مشكلة في سير العمل، مثل الازدحام أو عدم الكفاءة.

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

ما هي الاختلافات بين Scrum وكانبان؟

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

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