الدرس 6: بيان Agile و Scrum
Agile هو نهج تطوير خفيف الوزن يعتمد على الأشخاص (لا على الخطة)، وُلد من بيان Agile الذي نُشر عام 2001. في هذا الدرس، الذي يفتتح وحدة Agile، نتعرف على القيم الأربع وعلى روح المبادئ الاثني عشر للبيان، ونفهم ما هي المنهجية التكرارية والتراكمية (iterative and incremental)، ونغوص في Scrum: الأدوار (R&R)،
باختصار: Agile يفضّل الأشخاص، والبرمجيات العاملة، والتعاون مع العميل، والاستجابة للتغيير. و Scrum هو إطار عمل لتطبيقه — فريق ينظّم نفسه بنفسه، يعمل في دورات قصيرة (sprints)، ويجتمع 15 دقيقة يوميًا، ويعرض في نهاية كل دورة برمجيات عاملة ويتحسّن.
- بيان Agile
- وثيقة نُشرت عام 2001 على يد 17 مؤلفًا (من بينهم Kent Beck و Martin Fowler) عبر Agile Alliance؛ تنص على أربع قيم واثني عشر مبدأ لتطوير برمجيات خفيف الوزن يعتمد على الأشخاص (لا على الخطة).
- القيم الأربع
- الأفراد والتفاعلات على العمليات والأدوات؛ والبرمجيات العاملة على التوثيق الشامل؛ والتعاون مع العميل على التفاوض على العقود؛ والاستجابة للتغيير على اتباع خطة. الطرف الأيمن ذو قيمة — لكن الطرف الأيسر مفضّل.
- تكراري وتراكمي
- تطوير في دورات قصيرة ومتكررة (من أسابيع إلى أشهر، مع تفضيل الأقصر)، حيث تضيف كل دورة (iteration) جزءًا عاملًا ومتراكمًا إلى المنتج النهائي. هذا هو أسلوب التطوير في Scrum.
- Scrum
- إطار عمل لتطوير Agile تكراري وتراكمي، يقوم على فريق ينظّم نفسه بنفسه، ويتيح التكيّف السريع مع التغيير؛ اسمه مأخوذ من رياضة الرغبي — إذ يتقدّم الفريق كله 'كوحدة واحدة، يمرّرون الكرة فيما بينهم ذهابًا وإيابًا'.
- أدوار Scrum (R&R)
- Scrum Master (يوجّه الفريق في قواعد Scrum ويزيل العوائق)؛ Product Owner (المسؤول رسميًا نيابة عن أصحاب المصلحة ويرتّب أولويات Product Backlog)؛ الفريق (ينظّم نفسه بنفسه لتحقيق أهداف الـ sprint)؛ والعميل؛ والإدارة (القرارات النهائية).
- Sprint
- تكرار واحد في دورة تطوير Scrum — بمدة ثابتة محدّدة مسبقًا تصل إلى 30 يومًا تقويميًا (وعمليًا غالبًا 1-4 أسابيع)، ينتهي ببرمجيات مُختبَرة بالكامل وعاملة بالكامل للعرض التوضيحي.
- Product Backlog
- القائمة الحالية المرتّبة حسب الأولوية لكل العمل المتبقي إنجازه في المنتج؛ ومنها تُختار العناصر لـ Sprint Backlog في كل sprint. و Product Owner هو المسؤول عن ترتيب أولوياتها.
- Daily Scrum
- اجتماع حالة يومي قصير، محدّد بـ 15 دقيقة، في المكان والزمان نفسيهما؛ يجيب كل عضو عن ثلاثة أسئلة (ماذا أُنجز منذ الأمس؟ ما المخطّط لليوم؟ وهل من عوائق؟). وتُحلّ العوائق خارج الاجتماع.