يعتبر كل من ال Scrum وال Kanban من أشهر الطرق المبنية عن عقلية ال Agile التي تطبق في عالم تطوير البرمجيات.
إذا كنت جديد على عالم الأجايل، أنصحك بالإطلاع على مقال من التقليدية إلى الرشاقة (Agile) وقد قمت بكتابة مدونة تشرح السكروم (Scrum) وكذلك تدوينة عن ال كانبان Kanban أنصح بالإطلاع عليهم قبل الدخول في هذه التدوينة.
وخلال عملي في هندسة البرمجيات، وتدريبي للعديد من الشركات في مجال Agile، كنت دائما أنصح أنه في حال تعدد المشاريع والمهام المختلفة باتباع الكانبان وذلك بسبب عدم الحاجة إلى عقد الكثير من الاجتماعات، امكانية التغيير المستمر وإضافة المهام بسهولة، لا حاجة للكثير من التوقعات، هي عملية مستمرة في الانتاج.
وعلى النقيض تماما، فإنه في حالة الحاجة إلى التركيز والتطوير في منتج معين فإن السكروم هي حل جيد، نظرا لأنه.
لماذا توجهت إلى السكرومبان (Scrumban)
وعلى الرغم بأننا كنا اعتمدنا نظام تطوير السكروم (Scrum) كطريقة لإدارة البرمجيات، والاكس بي (XP) كممارسات هندسية في البرمجة، نظرا لأننا نركز في التطوير على منتجات محددة (https://loqta.ps) و (https://araboost.com)
إلا أننا كنا دائما نواجه تحديات كبيرة في السكروم (Scrum) بسبب الحاجة إلى عقد الكثير من المراجعات، الإجتماعات، ,والنقطة التي كانت تستهلك وقت هي ال Estimation أو تقدير أوقات المهام.
ومن هنا كنا نتسأل ما اذا كان بالإمكان وجود طريقة تخلط بين ما يميز السكروم من التركيز وطريقة الإدارة والممارسات وكذلك سرعة وسهولة التعامل مثل الكانبان، من هنا وجدنا السكرومبان.
السكرومبان (Scrumban) هو سكروم (Scrum) وكانبان (Kanban)
السكرومبان (Scrumban) هي طريقة تجمع أفضل ما يملكه السكروم (Scrum) من إدارة وممارسات تنظم عملية إنتاج العمليات وكذلك الكانبان (Kanban) في سهولة وسرعة التغييرات ضمن وقت التطوير والتدفق. ويمكن سرد أهم ما قامت السكرومبان بتضمينه من كل طريقة، على النحو التالي
العناصر التي تم تضمينها في (Scrumban) من ال (Scrum)
- التخطيط لل Iterations و Sprints: يتم بناء على فترات منتظمة حسب الطلب مصطحبة مع المراجعات واعادة الترتيب.
- تحديد ما سيتم سحبه من مهام داخل الركضة أو الدورة الواحدة معتمد على توقع فترة الإنجاز والتعقيد.
- الاولوية حسب الطلب، يتم تزويد الفرق بأفضل ما يمكن العمل عليه حاليا حسب حاجة العمل.
- التأكد من تحليل المهام وقصص المستخدم قبل بدء العمل عليها (Ready State).
- يستخدم (Ready) لتنظيم العملية بين المطلوب وما سيتم العمل عليه.
العناصر التي تم تضمينها في (Scrumban) من ال (Kanban)
- نظام سحب للمهام وتدفق مستمر معتمد على سعة الفريق.
- المهام تحت العمل يتم تحديدها على حسب سعة الفريق بحيث لا يتم إضافة عناصر تحت العمل أكثر من سعة الفريق إلا في الحالات الخاصة.
- لا يوجد أدوار محددة تماما مثل سكروم (Scrum).
- الاعتماد على دورة (Cycle) الإنجاز المعرفة في كانبان (Kanban) وليس على ال burn down chart الخاص بالسكروم (Scrum).
- وقت أقل في التخطيط.
وربما لو وضعنا جدول مقارنات سيكون من الواضح الفرق بين كل من السكرومبان والسكروم، السكرومبان والكانبان
الفرق بين الكانبان (Kanban) و السكرومبان (Scrumban)
المقارنة | Kanban | Scrumban |
الأدوار | غير محدد | الفريق + الأدوار المطلوبة |
إجتماع سكروم اليومي | لا يوجد | موجود، ويكون لهدف التأكد من العمل من العمل على المتطلبات وتقليل الوقت في فهم المشاكل |
إجتماع المراجعات | لا يوجد | يوجد حسب الطلب، ويكون لهدف التعلم ومشاركة الدروس لتطويرات القادمة |
تدفع المهام | مستمر | مستمر مثل الكانبان ولكن بحد معين، بحيث يتم تنظيم التدفق حسب سعة الفريق |
الفرق بين السكروم (Scrum) و السكرومبان (Scrumban)
المقارنة | Scrum | Scrumban |
المعلقات و الرسومات الظاهرة | – البورد – Backlog – Burn downs | – البورد |
المناسك | – اجتماع سكروم اليومي – اجتماع مراجعة الركضة – اجتماع تخطيط الركضة | – اجتماع سكروم اليومي يتم فيه كل شيء تقريبا |
Iterations | الركضات (Sprints) | لا (تدفق مستمر) |
Estimation التقدير الزمني | موجود | لا (تقسيم متساوي تقريبا) |
الفريق | شخص متعدد الإمكانات | يمكن تحديد دور وتخصصيه |
الأدوار | – Product Owner – Scrum Master – الفريق | الفريق + الأدوار المطلوبة |
عمل الفريق | التعاون لإنجاز المهام | العمل لتحقيق الهدف |
WIP الإنجاز | يعتمد على مخرجات الركضة | يعتمد على حالة التدفق |
التغييرات | يجب الإنتظار للركضة التالية، أو الإجتماع مع الأطراف لإمكانية إضافةالمهام داخل الركضة | يتم مباشرة (Todo) |
Product Backlog | قائمة من قصص المستخدم (stories) مرتبة حسب الاولوية ومقدرة زمنيا | يتم إضافتها مباشرة |
الإنتقال من سكروم (Scrum) إلى سكرومبان (Scrumban)
يمكن الإنتقال من السكروم إلى السكرومبان من خلال الخطوات التالية:
- إجعل العمل ظاهر للعيان أو (Visulaized): ويعني ذلك يفضل إستخدام بورد (Board) حقيقية وظاهرة للفريق بشكل واضح.
- حدد المهام تحت العمل: في تصميم البورد حدد المهام تحت العمل بحيث لا تسمح لأحد من الفريق لإضافة أكثر من مهمة في نفس الوقت، إلا في الحالات الإضطرارية، بمعنى إن كان عدد الفريق 4 فيمكنك تعيين مساحة عمود تحت العمل إلى 5 بحيث تسمح لأحدهم إضافة مهمة واحدة جانبية في حال إضطر لذلك.
- أضف أعمدة أكثر: في السكرومبان هناك أعمدة إنتقال بسبب أن جميع التغييرات تتم حسب الطلب وسريعا، فهناك عمود خاص بالمهام التي سيتم العمل عليها، وهناك عمود للمهام الجاهزة للعمل والمرتبة حسب الأولوية، وهناك عمود تحت العمل، وهناك عمود جاهزة للاختبار، وهناك عمود تحت الإختبار .. وهكذا بمعنى دائما ما يوجد عمود إنتقالي “جاهز” بين مرحلة وأخرى.
- إبدأ بالترتيب: وهو متعلق بالترتيب الخاص الذي يتم تضمينه في عمود جاهز، قبل البدء على التطوير بمعنى، وهذا الترتيب مهم بأن يكون حسب الأولوية.
- توقف عن تقدير الزمن: في السكرومبان الأمر يعتمد على التدفق وسرعة الإنتقال بين المهام، وليس هناك إجتماعات مخصصة لتحديد الوقت، يمكن إضافة عنصر الوقت للتسهيل في خلال تعريف المهمة ولكنه ليس إلزامي أو يتم ضمن آلية محددة مثل سكروم.
- فعل التخطيط حسب الحاجة: هناك وقت يتم إنجاز فيه جميع المهام المحددة، وفي خلال تصميمك للبورد يتم تحديد فاصل بين المهام التي تم التخطيط لها وبين أي مهام جديده، بحيث إن تم الإنتهاء من المهام، يتم الإجتماع للمهام الجديده حتى يتم تجهيزها ووضعها في عمود “جاهز”.
متى يفضل السكرومبان (Scrumban)
السكرومبان (Scrumban) هو حل مثالي للفرق التي تريد الإحتفاظ بطريقة تنظيم السكروم (Scrum) وفي نفس الوقت تريد مرونة على صعيد أساس التدفق أو work flow. كما أنه حل للفرق التي تعمل بنظام ال (Scrum) وتريد الإنتقال إلى (Kanban)
بالأسفل البودكاست الخاص بالتدوينة
دمتم بود،
إلى تدوينة أخرى