ما هو كانبان (Kanban)؟ فهم منهجية أجايل المرنة وتطبيقها الفعال في فرق تطوير البرمجيات
مقدمة إلى كانبان: من الصناعة إلى البرمجيات
نشأت منهجية Kanban في صناعة السيارات اليابانية خلال النصف الأول من القرن العشرين. استلهمت شركة تويوتا (Toyota) هذه المنهجية من طريقة عمل محلات السوبر ماركت في تخزين رفوفها بناءً على الطلب الفعلي، وكان هدف تويوتا هو تقليل المخزون وتحسين تدفق العمل عبر نظام الإنتاج بأكمله. في كتابه "Kanban: Successful Evolutionary Change for Your Technology Business"، وصف ديفيد أندرسون (David Anderson) كيف يمكن تطبيق مبادئ Kanban على تطوير البرمجيات. هذه المبادئ الأساسية هي:
- ابدأ بما تفعله الآن.
- وافق على السعي نحو تغيير تدريجي وتطوري.
- احترم العملية الحالية، الأدوار، المسؤوليات، والمسميات الوظيفية.
كانبان في سياق تطوير البرمجيات المرن (Agile)
ماذا يعني ذلك لتطوير البرمجيات المرن (Agile)؟ غالبًا ما يربط الحضور في الدورات التدريبية مفهوم Agile بمصطلحات مثل "العمل في Sprints"، أو "وجود مالك للمنتج (Product Owner)"، أو "إدارة قصص المستخدم (User Stories) في قائمة المهام المتراكمة (Backlog)". هذا التأثير يأتي من إطار العمل المرن الأكثر شيوعًا اليوم، وهو Scrum. يأتي Scrum بأدواره وأحداثه ومخرجاته المحددة مسبقًا، ويتطلب منك اتباع القواعد المحددة في دليل Scrum Guide إذا كنت ترغب في تسمية ما تفعله Scrum.
لكن Kanban مختلف. يبدأ Kanban بالعملية التي تتبعها شركتك حاليًا. الفكرة هي تصور الخطوات على لوحة Kanban. يمكن أن تشمل هذه الخطوات كل ما تفعله، من الفكرة الأولية وحتى التسليم النهائي. تصبح كل خطوة عنوانًا لعمود على اللوحة.
تجسيد العمل على لوحة كانبان (Kanban Board)
لتتبع عملك اليومي، من الأفضل تقسيمه إلى عناصر صغيرة. قد تكون هذه العناصر قصص مستخدم (User Stories) يمكن تنفيذها في يومين على الأكثر. اكتب كل عنصر على ملاحظة لاصقة (stickie note) وعلقها على اللوحة. يمكنك استخدام الترتيب الرأسي على اللوحة لتحديد الأولويات. تتحرك البطاقات من اليسار إلى اليمين، ويقوم الأشخاص الذين يؤدون العمل بسحب العناصر التي تم الانتهاء منها في خطوة العملية السابقة، وذلك عندما تكون لديهم القدرة على القيام بذلك. على سبيل المثال، يسحب المطورون في المثال بطاقة "Upload Image" إلى عمود "Dev" عندما تكون لديهم القدرة على تنفيذها.

تحقيق التغيير التدريجي والتطوري
هل قمت بإنشاء لوحة Kanban تعرض عمليتك؟ هذا بداية رائعة لجعل عملك مرئيًا! ولكن لتحقيق أقصى استفادة من Kanban، تحتاج إلى القيام ببعض الأمور الإضافية. يجب عليك:
- الحد من العمل قيد التنفيذ (
Work-in-Process) وقوائم الانتظار. - مراقبة وتحسين تدفق العمل.
- التعاون بفعالية.
الحد من العمل قيد التنفيذ (WiP) وقوائم الانتظار
يعني تحديد العمل قيد التنفيذ (Work-in-Process) أنك تحدد حدًا أقصى لعدد العناصر التي تعمل عليها في وقت واحد. يُطلق على هذا اسم "حد العمل قيد التنفيذ"، أو اختصارًا "WiP limit". إليك لوحة Kanban مع حد WiP لبعض خطوات العملية:

يمكن للمطورين العمل على 5 عناصر في وقت واحد كحد أقصى. إذا كان عمودهم يحتوي على 5 عناصر، فلا يُسمح لهم بسحب المزيد من العناصر. لهذا الأمر نتيجتان:
- تشجيع على الإنهاء بدلاً من البدء: يشجع هذا على إنهاء العمل الحالي بدلاً من البدء في المزيد من المهام. فالعمل الذي بدأ ولم يُنجز يحمل مخاطر. كيف سيكون رضا عملائك عندما لا تتمكن من إصدار برنامجك كما هو مخطط له، لأنك بدأت العمل على الكثير من الأفكار الرائعة ولكنك لم تكملها؟
- إظهار الاختناقات: عندما تبدأ خطوة معينة في العملية عملًا لا يمكنها إكماله، سيشعر الناس بذلك على الفور، لأن خطوة العملية التالية لن تكون قادرة على سحب العناصر.
بالإضافة إلى تحديد العمل قيد التنفيذ، يجب عليك أيضًا تحديد أحجام قوائم الانتظار. في اللوحة أعلاه، تظهر هذه القوائم كخطوط منقطة بين الأعمدة. تعمل بنفس طريقة تحديد العمل قيد التنفيذ. باختصار، الشعار هو: "توقف عن البدء، ابدأ بالإنهاء"، بهدف الانتقال من المفهوم إلى التسليم في أقل وقت ممكن.
مراقبة وتحسين تدفق العمل
قد يكون ملاحظة الاختناق مؤلمًا في البداية، لكن على الأقل ستعرف أين تكمن المشاكل الرئيسية في عمليتك. يشجعك Kanban على تحسين التدفق عن طريق إزالة الاختناقات. يتيح لك التدفق المتسق التسليم بشكل أكثر موثوقية، وهذا أمر جيد لجميع الأطراف المعنية، بما في ذلك المطورين.
لمراقبة التدفق، تسجل الوقت الذي تدخل فيه البطاقة خطوة معينة في العملية، والوقت الذي تكمل فيه هذه الخطوة. بهذه الطريقة تعرف مقدار الوقت الذي تستغرقه البطاقة في كل خطوة، وفي كل قائمة انتظار بين الخطوات. بناءً على هذه البيانات، يمكنك إعداد مقاييس تساعدك على تحسين التدفق. تشمل المقاييس الشائعة:
- وقت الدورة (
Cycle time): هو الوقت الذي تستغرقه البطاقة من اللحظة التي يبدأ فيها الفريق العمل عليها (أيDev) حتى التسليم (أيRelease). يمكن أن يساعد تحسين هذا المقياس في تحسين وقت وصول منتجك إلى السوق (time to market). - الإنتاجية (
Throughput): هو عدد البطاقات التي تمر عبر النظام في فترة زمنية معينة. يمكن أن يساعد تحسين هذا المقياس في تحسين أداء مؤسستك في التسليم.
تُعد مخططات التدفق التراكمي (Cumulative Flow Chart) طريقة شائعة للحصول على نظرة عامة حول عدد البطاقات الموجودة في كل خطوة من خطوات العملية بمرور الوقت. من الناحية المثالية، يبقى عدد البطاقات في كل خطوة باستثناء الأخيرة ثابتًا تقريبًا بمرور الوقت، بينما يجب أن يزداد عدد البطاقات التي تم إصدارها. عندما ينحرف المخطط عن هذا النمط، فقد يكون لديك اختناق.

التعاون الفعال لتحقيق أقصى استفادة
تُعد مقاييس Kanban أداة قوية لتحليل وتحسين ما تفعله. لكنها لا قيمة لها بدون الأشخاص الذين يقومون بالعمل. يجب أن يكون كل من يشارك في خطوات العملية منفتحًا على الشفافية التي يخلقها Kanban. يجب أن يعمل الناس معًا بشكل بناء لإزالة الاختناقات، بدلاً من إلقاء اللوم على الأفراد.
راجع الوضع الحالي بانتظام: هل توجد أي اختناقات؟ هل هناك الكثير أو القليل جدًا من العمل المتاح لخطوة معينة في العملية؟ هل الإنتاجية كافية؟ هل توجد مصادر أخرى للاستياء؟ ما الذي يحتاج إلى تحسين؟ اتفق على تجارب تُجرب تغييرات صغيرة على النظام، ثم قم بتنفيذ هذه التغييرات. لاحقًا، راقب ما إذا كانت التجارب قد نجحت كما هو متوقع. لتتمكن من تنفيذ التغييرات، غالبًا ما يكون دعم الإدارة أمرًا حاسمًا.
متى نستخدم كانبان (Kanban)؟
تتميز منهجية Kanban بمرونة عالية. يمكن استخدامها بالاشتراك مع Scrum، وهو ما يُعرف باسم Scrumban. يمكن استخدامها خارج نطاق تطوير المنتجات؛ يمكنك حتى استخدامها لتخطيط رحلة أو تنظيم ما تفعله في وقت فراغك.
لقد وجدتها مفيدة بشكل خاص عندما يكون العمل في دورات Scrum Sprints غير ممكن أو صعب. على سبيل المثال، في حالتين حيث تكون إحدى الشركتين عميلاً والأخرى موردًا، ويكون التسليم (hand-off) لا مفر منه. مثال آخر هو عندما تعمل على منتج يتضمن كلاً من البرمجيات والأجهزة، وتشارك فيه تخصصات هندسية متعددة. يمكن أيضًا استخدام Kanban داخل شركتك عندما يعمل قسم التطوير بطريقة مرنة (agile)، ولكن بقية الشركة لا تفعل ذلك. يمكن استخدامها لتسهيل التعاون بين التخطيط الاستراتيجي وتطوير البرمجيات.
لا تعتقد أنه لمجرد أنك تواجه صعوبة في تطبيق Scrum، فلا توجد طريقة لتصبح أكثر مرونة. يبدأ Kanban بما تفعله الآن، وإذا أخذته على محمل الجد، فسيساعدك على التحسين خطوة بخطوة.
الخلاصة التقنية
تُعد منهجية Kanban أداة قوية ومرنة لتحسين تدفق العمل وإدارة المشاريع، خاصة في سياقات تطوير البرمجيات. بخلاف أطر العمل الأكثر صرامة مثل Scrum، تتميز Kanban بقدرتها على التكيف مع العمليات الحالية، مما يقلل من مقاومة التغيير. من خلال تصور العمل، وتحديد حدود للعمل قيد التنفيذ (WiP limits)، ومراقبة المقاييس الرئيسية مثل وقت الدورة (Cycle time) والإنتاجية (Throughput)، تمكّن Kanban الفرق من تحديد الاختناقات ومعالجتها بشكل منهجي. إن تركيزها على التحسين التدريجي والتعاون الفعال يعزز ثقافة الإنهاء بدلاً من البدء، مما يؤدي إلى تسليم أكثر موثوقية وكفاءة. سواء كنت تسعى لتحسين عملية تطوير برمجيات معقدة أو مجرد تنظيم مهامك اليومية، تقدم Kanban مسارًا واضحًا نحو الكفاءة المستدامة.