ویرگول
ورودثبت نام
ایمان حسن خانی
ایمان حسن خانی
ایمان حسن خانی
ایمان حسن خانی
خواندن ۱۱ دقیقه·۱ سال پیش

روش توسعه Kanban

روش Kanban در توسعه نرم‌افزار: یک راهنمای جامع

در چشم‌انداز پر سرعت توسعه نرم‌افزار امروزی، کارایی، سازگاری و شفافیت برای موفقیت بسیار حیاتی هستند. در میان روش‌ های مختلفی که برای دستیابی به این اهداف به‌کار می‌ روند، Kanban به‌عنوان یک چارچوب محبوب و مؤثر مطرح شده در Agile management است. Kanban که ریشه در اصول Lean دارد، بر مصور سازی کار، محدود کردن کار های در جریان (WIP working in progress) و بهبود جریان وظایف تمرکز دارد. برای استفاده از چارچوب آن، تیم شما روش بهبود مستمر (continuous improvement) را پیاده‌سازی می‌ کند، که در آن کار ها از یک Product Backlog به ستون های مختلفی در تابلو Kanban کشیده می شوند. این مقاله به اصول اصلی Kanban، مزایای آن و نحوه اعمال آن در توسعه نرم‌افزار می‌ پردازد.


روش Kanban چیست؟

یک روش مدیریت جریان کار است که در صنعت تولید، به‌ویژه در شرکت تویوتا، برای بهینه‌ سازی فرآیند های تولید به وجود آمد.

آقای Taiichi Ohno، مهندس شرکت Toyotaدر ژاپن، Kanbanرا در اواخر دهه 1940 ایجاد کرد. اوهنو متوجه شد که می‌ تواند سیستم تولید تویوتا را با ترکیب قوانین Lean بهبود بخشد: به جای ساخت محصولات جدید بر اساس تقاضای پیش‌بینی‌ شده، با توجه به چارچوب Kanban که به آن سیستم"Just-in-Time" (JIT) نیز گفته می‌ شد، محصولات عرضه شده در نتیجه تقاضای مصرف کننده، تولید و عرضه می شد. چارچوب جدید فرآیند تولید تویوتا را از یک فرآیند «Push» (محصولات به بازار تحمیل میشد) به فرآیند «Pull» (محصولات بر اساس تقاضای بازار تولید می‌ شوند) انتقال داد. این بدان معناست که تویوتا می تواند سطح موجودی کمتری داشته باشد در حالی که همچنان یک بازیگر رقابتی در بازار است.

اصطلاح "Kanban" در زبان ژاپنی به معنای "تابلو" یا "سیگنال بصری" است. با گذشت زمان، این روش برای صنایع مختلف، از جمله توسعه نرم‌افزار، که به‌عنوان یک چارچوب برای مدیریت پروژه‌های چابک (Agile) خدمت می‌کند، تطبیق داده شده است.

تیم‌های توسعه نرم‌افزار Kanban را کاملاً مکمل رویه‌ های DevOps خود یافته‌ اند. هم افزایی بین Kanban و DevOps زمان تحویل را تسریع می کند و فرهنگ بهبود مستمر و کارایی عملیاتی را ترویج می کند.

جوهره Kanban به کار، در رویکرد بصری آن نهفته است. تیم‌ ها از یک تابلو Kanban برای نمایش وظایف و مراحل آن‌ ها استفاده می‌ کنند هر وظیفه به شکل یک کارت نمایش داده می شود که بین ستون های مختلف تابلو Kanban جا به جا می‌ شود. آن را مانند قفسه های یک سوپرمارکت تصور کنید. با کاهش موجودی محصول به دلیل خرید آن توسط مصرف کنندگان، کارکنان قفسه ها را با محصولات جدید پر می کنند. قفسه‌ ها هرگز خالی نمی‌ شوند، اما محصول دائماً با اقلام جدید جایگزین می‌ شود - یک تابلوی Kanban به طور مداوم با وظایف جدید پر می‌ شود، زیرا تیم شما کار های قدیمی را تکمیل می‌ کند. این روش باعث درک و مدیریت بهتر جریان کار می‌ شود. این مصور سازی کمک می‌کند تا تیم‌ ها فوراً ببینند که چه وظایفی در اولویت هستند، گلوگاه‌ ها (bottlenecks) را شناسایی کنند و بر اساس اطلاعات بصری تصمیم‌ گیری کنند، مانند تخصیص منابع بیشتر به یک مرحله خاص یا تغییر مسیر وظایف برای بهبود جریان کار.


کارت های Kanban چیست؟

کارت های Kanban نیروی محرکه سیستم Kanban هستند که هر کارت نشان دهنده یک کار یا آیتم کار فردی است که یک نمای کلی واضح و مختصر از کار را ارائه می دهد. این کارت ها معمولاً شامل جزئیات ضروری مانند عنوان وظیفه، شرح، تاریخ، ذینعان (stakeholders) کلیدی و انجام دهنده آن یا بهتر است بگوییم مالک محصول است. رنگ ها اغلب به انواع مختلف کار اختصاص داده می شوند، بنابراین اعضای تیم می توانند به سرعت شرایط و وضعیت کار را درک کنند.


4 اصل اساسی در Kanban:

شماره - 1: Start with what you do now: می توانید Kanban را برای هر جریان کاری یا فرآیند فعلی اعمال کنید. برخلاف فرآیند های تعریف‌ شده‌تر در مدیریت چابک مانند اسکرام، Kanban به اندازه‌ ای انعطاف‌پذیر است که بتواند در رویه‌ های اصلی تیم شما کار کند.

شماره - 2: Agree to pursue incremental, evolutionary change: تغییرات بزرگ می تواند برای تیم شما اختلال ایجاد کند و اگر سعی کنید همه چیز را به یکباره تغییر دهید، ممکن است سیستم جدید شما کار نکند. کانبان این را می داند، به همین دلیل است که چارچوب کانبان بر بهبود مستمر(continuous improvement) و تغییرات تدریجی تمرکز می کند. به جای اینکه همه چیز را به یکباره تغییر دهید، با پیگیری تغییرات تدریجی (incremental) شروع کنید تا فرآیند های تیم خود را در طول زمان متحول کنید.

شماره - 3: Respect the current process, roles, and responsibilities: برخلاف سایر روش‌ های Lean، اما Kanban هیچ نقش تیمی داخلی ندارد، بنابراین در ساختار و فرآیند فعلی تیم شما کار می‌ کند. علاوه بر این، فرآیند فعلی شما ممکن است دارای عناصر بسیار خوبی باشد که اگر بخواهید سیستم کاری خود را در یک روز به طور کامل اصلاح کنید، از بین می رود.

شماره - 4: Encourage acts of leadership at all levels: با رویکرد بهبود مستمر، روش Kanban تشخیص می‌ دهد که تغییر می‌ تواند از هر جایی به وجود بیاید – نه لزوما از بالا به پایین (Top-Down). با Kanban، اعضای تیم تشویق می‌ شوند تا وارد عمل شوند، راه‌ های جدیدی را برای تکمیل فرآیند ها طرح ریزی کنند، و ابتکارات کاری جدیدی را به سیستم اضافه کنند.


Kanban Best Practices

کانبان توسط مجموعه‌ ای از شیوه ها هدایت می‌ شود که به تیم‌ ها کمک می‌ کند بر بهبود مستمر و مدیریت مؤثر وظایف تمرکز کنند:

1. مصور سازی جریان کار: یک تابلو Kanban ابزار اصلی است که معمولاً به ستون‌ هایی تقسیم می‌ شود که مراحل مختلف کار را نشان می‌ دهند (مانند "Backlog"، "To Do"، "In progress"، "Testing" و "Done"). مصور سازی وظایف به تیم‌ ها کمک می‌ کند گلوگاه‌ ها (bottlenecks) و ناکارآمدی‌ ها را ببینند.

  • مثال: اگر در ستون "Testing" در مقایسه با "To Do" وظایف زیادی وجود داشته باشد، نشان دهنده گلوگاه است که نیاز به بازبینی دارد.

2. محدود کردن کار های در جریان: محدودیت‌ های Work In Progress یا محدودیت‌های WIP، حداکثر تعداد کارت‌ هایی هستند که می‌ توانند در هر لحظه در یک ستون نمایش داده شوند، اینکار تضمین می‌ کند که تیم‌ ها بر تکمیل کار تمرکز کنند نه چند وظیفه‌ای (multitasking)، که می‌ تواند منجر به ناکارآمدی شود.

  • نکته مهم: ابزارهای دیجیتال Kanban مانند Jira به شما امکان می دهند محدودیت های WIP را تنظیم کنید و در صورت گذر از محدودیت ها به تیم هشدار می‌دهد.

3. مدیریت جریان: نظارت مداوم بر جریان کار کمک می‌ کند تا تأخیرها یا گلوگاه‌ ها شناسایی و رفع شوند و پیشرفت مداوم تضمین شود. اینکار همچنین باعث کاهش Lead Time می شود (مدت زمان صرف شده بین شروع یک کار و انتقال آن به ستون "Done" در تابلو کانبان)

  • متریک: از زمان چرخه (Cycle Time) (زمان صرف شده برای تکمیل یک کار) برای اندازه گیری کارایی استفاده کنید.

4. شفاف‌سازی سیاست‌ های فرآیند: از آنجایی که کار ها در کانبان خیلی سریع پیش می روند، مطمئن شوید که تیم شما قرارداد و قوانینی را ایجاد کرده و به آنان پایبند است. این سیاست ها و قرارداد‌ ها باید شما را راهنمایی کند که تیم شما چگونه روش کانبان را پیاده‌سازی می‌ کند.

5. اجرای چرخه‌های بازخورد: در Kanban، شما باید از دو گروه مجزا بازخورد جمع آوری کنید:

  • مشتریان: بازخورد و user story ها را از مشتریان در مورد کیفیت و اثربخشی محصولی که تیم شما تولید کرده است، جمع آوری کنید. آیا تولید آن کار درستی بود؟ آیا مشکلاتی وجود داشت؟ اگر مشکلاتی وجود داشت (مانند اشکال در کد یا نقص در یک محصول)، جریان Kanban خود را دوباره بررسی کنید و زمان بیشتری را برای بررسی و ارزیابی اضافه کنید.
  • تیم: به طور مکرر با تیم خود در مورد روند اجرای فریم ورک Kanban صحبت کنید. آنها در مورد خروجی خود چه احساسی دارند؟ در اینجا شما فرصت دیگری برای تشویق اعمال رهبری در همه سطوح (اصل 4) و بهبود سیاست های فرآیند تیم خود دارید.

بازخورد بخشی جدایی ناپذیر از بهبود مستمر و چارچوب کانبان است.

6. بهبود همکاری بین اعضا و تکامل: تیم‌ها تشویق می‌ شوند ذهنیتی از بهبود مستمر داشته باشند و با رو به رویی با تغییرات و یادگیری از نتایج پیشرفت کنند.

  • بطور مثال: تیمی که محدودیت WIPخود را از 5 به 3 کاهش دهد، شاید شاهد بهبود 20 درصدی در زمان تکمیل کار شود.

روش Kanban در مقابل Scrum: تفاوت‌های کلیدی

در حالی که هر دو Kanban و Scrum نوعی توسعه نرم افزار به شکل چابک (Agile) هستن، در رویکرد خود تفاوت‌ های قابل توجهی دارند:

  • ساختار: Scrum بر اساس اسپرینت‌ های با طول ثابت (معمولاً ۲-۴ هفته) عمل می‌ کند، در حالی که Kanban هیچ بازه زمانی از پیش تعیین‌ شده‌ای ندارد و بر تحویل مداوم تمرکز دارد.
  • نقش‌ ها: Scrum نقش‌ های خاصی مانند Scrum Master، Product Owner و Development team دارد. در مقابل، Kanban هیچ نقشی تعیین نمی‌ کند و می‌ تواند در ساختار های تیم موجود ادغام شود.
  • مدیریت کار: Scrum از بک‌لاگ اسپرینت استفاده می‌ کند و وظایف را در ابتدای هر اسپرینت اولویت‌ بندی می‌کند. Kanban به طور مداوم وظایف را از بک‌لاگ بر اساس ظرفیت بیرون می‌کشد.

مزایای Kanban در توسعه نرم‌افزار

1. انعطاف‌پذیری: عدم وجود نقش‌ ها یا بازه‌ های زمانی سخت در Kanban آن را برای اندازه‌ های مختلف تیم و جریان‌ های کاری قابل تطبیق می‌ کند. برای تیم‌ هایی که نیاز به یک رویکرد پویا دارند یا پروژه‌ هایی که تغییرات زیادی دارند، Kanban می‌تواند گزینه‌ ای ایده‌ آل باشد.

2. شفافیت بیشتر جریان کار: مصورسازی وظایف در یک تابلو کانبان به ذینفعان (stakeholders) کمک می‌کند تا پیشرفت پروژه و چالش‌ها را درک کنند در نتیجه این شفافیت به بهبود مدیریت پروژه نیز کمک می کند.

3. تحویل سریع‌تر: محدود کردن WIP و مدیریت جریان، گلوگاه‌ها را کاهش می‌ دهد و تکمیل وظایف را سرعت می‌بخشد. این ویژگی به‌ ویژه در توسعه نرم‌افزار هایی که تحویل سریع ویژگی‌ها به بازار بسیار اهمیت دارد، ارزشمند است.

4. تقویت همکاری تیمی: تمرکز بر ارتباط بصری، درک مشترک و هم‌راستایی بین اعضای تیم را تقویت می‌کند. همه اعضای تیم می‌ توانند با نگاهی به تابلو، وضعیت پروژه را درک کرده و در صورت نیاز برای رفع موانع یا کمک به یکدیگر همکاری کنند. این شفافیت و درک مشترک، باعث می‌ شود تیم به‌ صورت هماهنگ‌ تر عمل کرده و بهره‌ وری افزایش یابد.

5. بهبود مستمر: تیم‌ ها به‌طور منظم عملکرد و فرآیند های خود را بازبینی می‌ کنند تا بهبود های لازم را شناسایی و اعمال کنند. جلسات بازخورد و بررسی (retrospectives)، به تیم کمک می‌ کند مشکلات را به‌ موقع شناسایی کرده و راه‌حل‌ هایی برای بهبود ارائه دهند. این چرخه‌ی بهبود مستمر باعث می‌ شود که تیم در طول زمان بهتر و کارآمدتر عمل کند.


چالش‌های Kanban

علیرغم مزایای آن، Kanban بدون چالش نیست:

  • بارگذاری بیش از حد در تابلو: یکی از مشکلات اصلی در استفاده از Kanban، عدم تعیین مناسب محدودیت‌ های کار در جریان (WIP: Work In Progress) است. در صورتی که محدودیت مشخصی برای تعداد وظایف قابل انجام در یک زمان وجود نداشته باشد، تیم‌ ها ممکن است بیش از توان واقعی یا کمتر از آن کار کنند. این مسئله می‌تواند به کاهش کیفیت کار، افزایش زمان انجام وظایف و حتی فرسودگی اعضای تیم منجر شود. علاوه بر این، نبود شفافیت در تخصیص منابع باعث می‌شود تابلوی Kanban به جای کمک به بهره‌وری، به ابزاری پیچیده و غیرمؤثر تبدیل شود.
  • مقاومت در برابر تغییر: تغییر به یک سیستم Kanban، به‌ ویژه در تیم‌ هایی که به شیوه‌ های سنتی یا سیستم‌ های دیگر عادت دارند، ممکن است با مقاومت روبرو شود. اعضای تیم ممکن است احساس کنند که این تغییرات نیازمند یادگیری مهارت‌ های جدید یا تغییر در عادت‌ های کاری آن‌ ها است. این نگرانی‌ ها می‌تواند باعث کاهش انگیزه و تأخیر در پذیرش سیستم جدید شود. برای غلبه بر این چالش، نیاز به آموزش، شفاف‌ سازی اهداف و ایجاد فرهنگ همکاری و پذیرش تغییر وجود دارد.
  • کمبود بازه‌های زمانی: Kanban برخلاف برخی دیگر از روش‌ های مدیریت پروژه (مانند اسکرام)، بازه‌ های زمانی مشخصی (مانند اسپرینت) ندارد. در حالی که این انعطاف‌ پذیری مزیتی محسوب می‌ شود، اگر تیم‌ ها نظم و انضباط کافی نداشته باشند، ممکن است به تأخیر در انجام وظایف یا کاهش اولویت‌ بندی صحیح منجر شود. نبود یک چارچوب زمانی می‌ تواند باعث شود وظایف برای مدت طولانی در جریان باقی بمانند و پیشرفت کلی پروژه کند شود. برای جلوگیری از این مشکل، تیم‌ها باید فرایندهای نظارت منظم و جلسات بازنگری دوره‌ ای را اجرا کنند.

نتیجه‌ گیری

روش Kanban یک چارچوب قدرتمند برای مدیریت جریان‌ های کاری در توسعه نرم‌افزار است. رویکرد بصری، انعطاف‌پذیری و تأکید بر بهبود مستمر آن را به انتخابی عالی برای تیم‌ هایی تبدیل می‌ کند که به دنبال افزایش بهره‌ وری و سازگاری هستند. با اجرای مؤثر Kanban و پرداختن به چالش‌های آن، تیم‌های توسعه نرم‌افزار می‌توانند محصولات باکیفیت‌ تری را به شکلی کارآمدتر ارائه دهند و در عین حال فرهنگ همکاری و نوآوری را تقویت کنند.

توسعه نرم‌افزارkanban
۱
۰
ایمان حسن خانی
ایمان حسن خانی
شاید از این پست‌ها خوشتان بیاید