در بخش اول این مقاله به این که چرا تیمها اسکرامبان را انتخاب میکنند پرداخته شد. در ادامه و بخش دوم این مقاله جزئیات بیشتری در خصوص کانبان ارائه میگردد.
کانبان روشی برای بهبود فرایند است که توسط تیمها و سازمانهای چابک بهکارگرفته میشود. تیم استفاده کننده از کانبان، با درک فرایند فعلی خود شروع میکند- گامهایی که تیم را از ایده به سوی تحویل نرمافزار قابل استفاده هدایت میکنند- و در طول زمان بهبودهایی تکاملی روی آن ایجاد میکند.
روش کانبان اولین بار توسط دیوید جی اندرسون برای توسعه نرمافزار تدوین شد، این روش مبتنی بر ایدهها و تجربههایی است که او در کوربیس (Corbis) و مایکروسافت استفاده کرده و در کتاب خود با عنوان «کانبان» توضیح داده است. اندرسون، شرح خلاصهای از کانبان را در پیشگفتار کتاب «کانبان و اسکرام: استفاده بیشینه از هر دو» نوشته کنیبرگ (Kniberg) و اسکارین (Skarin) اینگونه بیان میکند:
«آنچه که در مورد کانبان متوجه شدهایم این است که کانبان رویکردی برای مدیریت تغییر است. کانبان، فرایند یا چرخه عمر توسعه نرمافزار یا مدیریت پروژه نیست. بلکه رویکردی برای مواجه با تغییر در چرخه عمر توسعه نرمافزار فعلی یا متدولوژی مدیریت پروژه است. قاعده کانبان این است که با کاری که هم اکنون در حال انجام آن هستید شروع کنید. فرایند فعلی خود را با نگاشت جریان ارزش (Mapping the value stream) درک کنید و سپس در مورد سقفهای WIP (کار در حال انجام) هر مرحله از فرایند توافق کنید. در نهایت هنگام تولید سیگنالهای کانبان، با کشیدن یک کار، گردش کار را درون سیستم به راه بیاندازید».
توضیحات اندرسون در مورد کانبان شامل چهار عنصر مهم است:
هر چهار عنصر کانبان، به اسکرامبان مرتبط است.
وقتی اندرسون بیان میکند که با کاری شروع کنید که تیم هم اکنون در حال انجام آن است، به یک اصل اساسی در بهبود فرایند اشاره میکند: اگر با روش فعلی تیم برای ساخت نرمافزار شروع کنید، تلاش برای بهبود شیوه کار موثرتر خواهد بود. شاید بدیهی به نظر برسد، اما بسیاری از تلاشها برای بهبود، به دلیل رعایت نکردن همین اصل شکست خوردهاند. (و این شکستها مدتها قبل از آنکه اصطلاح «چابک» پذیرفته شود، برای چندین دهه ادامه داشتند). بسیاری از تلاشهای بهبود فرایند که منجر به شکست میشدند، از یک مدیر یا مشاور شروع میشد که به تیم میگفت هر چیزی که اکنون انجام میدهید را دور بریزید، و تجربههای فعلی را با انواع جدید، ناآشنا و آزمون نشده جایگزین کنید.
تلاشهای کانبان- و در نتیجه، تلاشهای اسکرامبان- با کاری که تیم هم اکنون در حال انجام آن است شروع میشود. تیم به روشها، تجربهها، و ایدههای فعلی خود اهمیت میدهد و با هم کار میکنند تا محصول را با استفاده از تغییرات کوچک و تدریجی که مبتنی بر آزمایش و داده هستند، تکامل دهند. مشابه سایر روشهای بهبود فرایند، کانبان زمانی به بهترین شکل کار میکند که در نقشها، مسئولیتها یا عناوین تغییر چشمگیری ایجاد نکنیم.
اولین گام برای بهبود یک فرایند، درک آن است. اندرسون در توضیحات خود در مورد کانبان که قبلا بیان شد، اشاره میکند که میتوانید فرایند فعلی خود را توسط نگاشت جریان ارزش درک کنید. همانطور که شکل 2 نشان میدهد، یک راه معمول برای انجام این کار ایجاد «نقشه جریان ارزش» است، یا نمایش تصویریِ جریان کاملی که یک ویژگی یا قلمکاری خاص از مرحله مفهوم تا تحویل دنبال میکند.
اعضای تیم پیادهسازی کانبان با دنبال کردن گامهای مربوط به یک ویژگی واقعی در داخل فرایند، با اندازهگیری زمان واقعی انجام کار توسط اعضای تیم در هر گام از گردشکار و زمان انتظار در صف برای گام بعدی، نقشههای جریان ارزش را ایجاد میکنند. درک فرایند فعلی، بخش عمدهای از فرایند اکتشاف است: گامهایی که قلمهای کاری در واقعیت طی میکنند اغلب از شیوهای که در مستندات توضیح داده شده یا اعضای تیم تصور میکنند، متفاوت است.
برای تیم اسکرامی که به دنبال پذیرش اسکرامبان است، نگاشت جریان ارزش معمولا شامل رویدادهای شناختهشدهای از اسکرام است: انتظار در «بکلاگ محصول» تا وقتی که ویژگی در «اسپرینت» گنجانده شود؛ تحلیل شدن در طول جلسه «برنامهریزی اسپرینت (Sprint Planning)»؛ انتظار در «بکلاگ اسپرینت»؛ و انجام کار روی آن توسط تیم.
اما شروع جریان ارزش از بکلاگ اسپرینت نیست، و پایان آن هم زمانیکه ویژگی در «بازنگری اسپرینت (Sprint Review)» نمایش داده میشود یا در «بازاندیشی (Retrospective)» مورد بحث قرار میگیرد نمیباشد. جریان ارزش باید همچنین فعالیتهای «مالک محصول» و ذینفعان، همانند گفتگو با کاربران یا بازنگری مدیران تیمهای محصول، را دربرگیرد. این جریان باید ویژگی را تا محیط عملیاتی دنبال کند؛ برای مثال، شاید اسکریپتهایی برای استقرار وجود داشته باشند، و شاید نیاز باشد ویژگی مورد نظر تا زمانِ انتشار برنامهریزی شده بعدی، منتظر بماند.
دو ایده اصلی کانبان، «تصویرسازی گردش کار (Workflow Visualization)» و «محدود کردن WIP» است. گردش کار معمولا با استفاده از «تابلو کانبان (Kanban Board)» تصویرسازی میشود، که وضعیتهای فرایند را به صورت ستونهای عمودی نشان میدهد. قلمهای کاری درون این ستونها با تیکتها (در تابلو الکترونیکی) یا برگههای یادداشت یا کارتهای فهرستنویسی (Index Carts) (در تابلو فیزیکی) نشان داده میشوند، همانگونه که شکل 3 نشان میدهد در سراسر تابلو از چپ به راست «جریان» دارند. هر یک از ستونهای روی تابلو گام متفاوتی را در فرایند نشان میدهند که هر قلم کاری باید از آن عبور کند. این ستونها به گامهای واقعی در فرایند اشاره میکنند، و معمولا مطابق با وضعیتهایی از فرایند هستند که طی نگاشت جریان ارزش کشف شدهاند.
هنگامیکه در یک سیستم حجم کار بیش از ظرفیت باشد، کار در سراسر آن بسیار کند جریان مییابد. یک مبنای نظری تحت عنوان «نظریه محدودیتها (Theory Of Constraints)» برای این موضوع وجود دارد، که میگوید هر گردش کار دارای اضافه بار، حداقل یک محدودیت دارد. یکی از اهداف کانبان این است که زمان بروز اضافه بار در گردش کار را شناسایی کند و برای بررسی محدودیتهایی که ریشه اصلی این اضافه بارها هستند تعدیل انجام دهد. برای تیمهایی که اسکرامبان را انتخاب میکنند تصویرسازی گردش کار، مشخص کردن اضافه بارها، و افزودن سقفهای WIP، گامهای حیاتی هستند.
در تصویر تابلو کانبان در شکل 3، تیم میفهمد که قلمهای کاری در ستون بازبینی توسط مدیر در حال تلنبار شدن هستند. عدد 10 نوشته شده در بالای ستون «بازبینی مدیر» سقف WIP است: به این معنا که تیم و مدیرانش توافق کردهاند که بیش از 10 قلمکاری نمیتواند در ستون بازبینی مدیر قرار گیرد.
این نشاندهنده تصمیم تیم برای اجرای آزمایشی در تلاش برای رفع اضافهبار فرایند است: آنها مدیران خود را متقاعد کردهاند تا بپذیرند که به محض تلنبار شدن 10 قلم کاری در ستون در انتظار بازبینی، قلمهای بیشتری اجازه ورود به این گام را ندارند و تیم باید روی وظیفههای دیگری تمرکز کند تا زمانیکه حداقل یک قلمکاری بازبینی شده و به گام آماده برای انتشار منتقل شود. تیم برای آگاهی از موفقیتآمیز بودن آزمایش میتواند میانگین «مدت انجام کار (Lead time)»- یا فاصله زمانی بین ورود یک قلم به گردش کار و خروج از آن را بسنجد تا متوجه شود که آیا سقف WIP، فرایند کلی را بهبود میدهد یا خیر. این نمونهای از آزمایش تکاملی برای بیشینه کردن جریان است، زیرا میانگین مدت انجام کار کوتاهتر به این معنی است که در هر لحظه کار بیشتری در سراسر سیستم در جریان است.
ایده «سیستم کششی» با سیستم کانبان اولیه آغاز شد، «سیستم تولید تویوتا» یا (TPS) Toyota Production System، یک فرایند تولید است که در دهههای 1950 و 1960 در تویوتا توسعه یافت. مهندسان تویوتا دریافتند که حتی اگر تقریباً تمام قطعات مورد نیاز برای مونتاژ خودرو در انبار موجود باشد، کمبود فقط چند قطعه میتواند کل خط مونتاژ را متوقف کند. سیستم تولیدی که در آن انبار تعیین میکرد چه قطعاتی به خط مونتاژ ارسال شود، علت اصلی بسیاری از تأخیرها بود. مهندسان دریافتند که میتوانند با حرکت به سمت یک سیستم «بهموقع (Just-In-Time)» که در آن، انبار در هر لحظه فقط چند قطعه محدود را صرفا زمانیکه کارگرها به آنها نیاز دارند به خط مونتاژ ارسال میکند، خودروها را بسیار سریعتر تحویل میدهند.
کارگرها از «کارتهای کانبان»– کارتهای کوچکی که روی آنها اسامی قطعات نوشته شده– برای سیگنال دادن اینکه چه قطعاتی کار را کُند میکنند، و چه قطعاتی باید بهسرعت جایگزین شوند استفاده میکنند («کانبان» در زبان ژاپن به معنی «تابلو اعلانات» یا «تابلو راهنما» است).
به عبارت دیگر، تویوتا از سیستمی که انبار در آن، همه قطعات را بهطور یکجا به درون خط تولید «فشار» میداد به سیستمی که کارگران قطعات را برحسب نیاز به درون خط «میکشیدند» حرکت کرد، و آنها دریافتند که این کار بسیار اثربخشتر است. اگرچه معمولا توسعهدهندههای نرمافزار دوست ندارند با کارگران خط مونتاژ مقایسه شوند (و دلیل خوبی هم دارد)، اما پیادهسازی سیستم کششی میتواند کار توسعه نرمافزار را اثربخشتر، موثرتر و خوشایندتر کند.
اغلب برای درک ماهیت سیستم کششی، سادهتر آن است که آن را با سیستم فشاری مقایسه کنیم. یک نمونه از سیستم فشاری در اسکرام، تیمی است که در شروع اسپرینت با شکستن بکلاگ اسپرینت به وظیفهها و تخصیص آنها به اعضای تیم، برنامهریزی اسپرینت را انجام میدهد. اکنون هر عضو تیم «فهرستی» از وظیفهها دارد که به بکلاگ شخصیاش فشار داده میشود.
اما تیم اسکرام میتواند با ایجاد یک سیستم «خودسازمانده» این وضعیت را به سیستم کششی تبدیل کند یعنی بهجای تخصیص وظیفهها به اعضای تیم در شروع اسپرینت، وظیفهها تخصیص نیافته باقی بمانند. در عوض هر عضو تیم وظیفه بعدی خود را تنها پس از اتمام وظیفههای فعلی خود انتخاب میکند، یعنی به طور چشمگیری «وظیفه را تنها برحسب تقاضا میکشد». این موضوع به تیم انعطافپذیری بیشتری میدهد: اگر یکی از اعضای تیم زودتر آزاد شود میتواند در صورت داشتن مهارت لازم، آن وظیفه را به خود تخصیص دهد. تیمی که به این ترتیب خودسازمانده میشود معمولا همه تصمیمها را در اسکرام روزانه بازنگری میکند تا مطمئن شود همه اعضا با معنیدار بودن تخصیص کار به خود (Self-assignment) در پروژه موافق هستند.
منتظر قسمتهای بعدی این مقاله باشید.
مترجم: وحیده بانیگل
ویراستار: مهدیه قدسی نژاد
منبع: کتاب اسکرامبان چیست؟