در اسکرام، کارتابل جاری تنها قسمتی از کار است، قسمتی که نشان میدهد افراد تیم در اسپرینت جاری چه کاری انجام میدهند. قسمت دیگر، مخزن محصول (Product Backlog) است، لیستی از چیزها که مالک محصول نیاز دارد تا در اسپرینتهای بعدی داشته باشد. مالک محصول میتواند مخزن محصول (Product Backlog)را ببیند اما نمیتواند به آن دست بزند. وی هر وقت بخواهد میتواند مخزن محصول (Product Backlog)را تغییر دهد اما این تغییر تا اسپرینت بعدی اعمال نخواهد شد. ![مخزن محصول در اسکرام](/images/content/5/manday_ir_com-36.png?w100 "مخزن محصول در اسکرام") وقتی اسپرینت تمام شد، تیم کدهای قابل استفاده را تحویل مالک محصول میدهد، سپس اسپرینت را تمام و مرور میکند و در نهایت با افتخار ویژگیهای A, B, C وD را به مالک محصول نشان میدهد. حال مالک محصول میتواند تصمیم بگیرد که از این ویژگیها استفاده کند یا نکند. این قسمت نهایی (استفاده از ویژگی محصول) معمولا در اسپرینت وجود ندارد در نتیجه در کارتابل جاری قابل مشاهده نیست. با داشتن این سناریو، یک بورد کانبان احتمالا شبیه به چنین چیزی خواهد بود: ![مخزن محصول در اسپرینت](/images/content/5/manday_ir_com-37.png?w100 "مخزن محصول در اسپرینت") حال تمامی گردش کار در یک بورد است، چون مواردی غیر از آنچه که یک تیم اسکرام در یک چرخه انجام میدهند هم حائز اهمیت است. در مثال بالا، ستون «مخزن» (backlog) تنها لیستی از مطلوبهاست، بدون توجه به درجه اهمیت آنها. ستون «انتخابشدهها» (Selected) شامل فعالیتهای با اولویت بالا با محدودیت کانبان 2 است، یعنی تنها ممکن است 2 فعالیت با اولویت بالا در آن واحد داشته باشیم. هر وقت که تیم آماده شد تا روی یک فعالیت جدید کار کند، فعالیت بالای لیست «انتخابشدهها» (Selected) را برمیدارد. مالک محصول میتواند در ستونهای «مخزن» و «انتخابشدهها» تغییر ایجاد نماید نه در ستونهای دیگر با توجه به محدودیت کانبان 3، ستون “Dev” (تقسیمشده به دو زیرستون) نشان میدهد چه چیزی در حال پیادهسازی است. به زبان شبکههای کامپیوتری، در کانبان محدودیت مثل «پهنای باند» و سرعت انجام عملیات مثل “ping” (یا همان سرعت پاسخگویی) است. چرا ستون “Dev” به دو زیر ستون “Ongoing” و “Done” تقسیم شده است؟ تا تیم شانس این را داشته باشد که بداند چه فعالیتی را میتواند انتخاب کند. محدودیت 3 برای “Dev” بین دو زیر ستون تقسیم میشود، چرا؟ تصور کنید 2 فعالیت در “Done” وجود دارد: ![اعمال محدودیت در یک ستون کانبان](/images/content/5/manday_ir_com-38.png?w100 "اعمال محدودیت در یک ستون کانبان") این یعنی تنها 1 فعالیت میتواند در “Ongoing” باشد. در اینصورت ممکن است ظرفیت رعایت نشود، پیادهسازهایی که امکان انتخاب فعالیت جدید را دارند، اما محدودیت کانبان به آنها شروع کار جدید را نمیدهد، این انگیزه بالایی برای تمرکز، تلاش و کمک به انجام کارها برای خالی کردن ستون “Done” و بیشنه کردن گردش کار است و تأثیر خوب و مستمری خواهد داشت (هرچه تعداد کارهای “Done” بیشتر باشد، تعداد کار کمتری اجازه وجود در قسمت “Ongoing” دارد) که کمک میکند تیم روی کار درست تمرکز داشته باشد. <p> </p> <br> **یک قسمت از گردش کار** یک قسمت از گردش کار، یک نوع از سناریوی «بهترین گردش کار» است که یک فعالیت در بورد، بدون اینکه در هیچ صفی گیر کند، به گردش در میآید. یعنی در هر لحظه یک نفر مشغول کار روی یک انجامدادنی است. بورد در این لحظه میتواند چیزی شبیه این باشد: ![قسمتی از گردش کار در کانبان](/images/content/5/manday_ir_com-39.png?w100 "قسمتی از گردش کار در کانبان") B در حال پیادهسازی شدن است، A به قسمت تولیدات منتقل شده است. هر وقت تیم برای فعالیت بعدی حاضر شد از مالک محصول درباره مهمترین فعالیت، سؤال پرسیده و جواب را سریع دریافت میکنند. اگر این سناریو ایدهآل باقی بماند ما میتوانیم از شر دو صف“Backlog” و “Selected” خلاص شده و به یک سرعت انجام عملیات مناسب دست یابیم. کوری لداس به زیبایی میگوید: > *فرآیند برنامهریزی ایدهآل باید همیشه پیادهساز را در انجام بهترین کار تجهیز کند، نه بیشتر نه کمتر* محدودیت کانبان وجود دارد تا جلوی از دست در رفتن کارها را بگیرد، بنابراین اگر گردش کار مطلوب باشد دیگر نیازی به داشتن محدودیت تعداد فعالیت در حال انجام نداریم. <p> </p> <br> **یک روز در سرزمین کانبان** ![مراحل گردش کار1](/images/content/5/manday_ir_com-40.png?w100 "مراحل گردش کار1") ![مراحل گردش کار2](/images/content/5/manday_ir_com-41.png?w100 "مراحل گردش کار2") ![مراحل گردش کار3](/images/content/5/manday_ir_com-42.png?w100 "مراحل گردش کار3") ![مراحل گردش کار4](/images/content/5/manday_ir_com-43.png?w100 "مراحل گردش کار4") ![مراحل گردش کار5](/images/content/5/manday_ir_com-44.png?w100 "مراحل گردش کار5") ![مراحل گردش کار6](/images/content/5/manday_ir_com-45.png?w100 "مراحل گردش کار6") ![مراحل گردش کار7](/images/content/5/manday_ir_com-46.png?w100 "مراحل گردش کار7") ![مراحل گردش کار8](/images/content/5/manday_ir_com-47.png?w100 "مراحل گردش کار8") ![مراحل گردش کار9](/images/content/5/manday_ir_com-48.png?w100 "مراحل گردش کار9") ![مراحل گردش کار10](/images/content/5/manday_ir_com-49.png?w100 "مراحل گردش کار10") ![مراحل گردش کار11](/images/content/5/manday_ir_com-50.png?w100 "مراحل گردش کار11") ![مراحل گردش کار12](/images/content/5/manday_ir_com-51.png?w100 "مراحل گردش کار12") <p> </p> <br> **آیا بورد کانبان باید حتما شبیه به این باشد؟** خیر، بورد بالا تنها یک مثال بود. تنها چیزی که کانبان تجویز میکند این است که گردش کار باید قابل مشاهده و نمایش باشد، بعلاوه اینکه محدودیت تعداد فعالیت در حال انجام باید وجود داشته باشد. هدف این است که یک گردش کار روان در سیستم داشته باشیم و سرعت زمان انجام عملیات را بهینه شود، بنابراین نیاز است بطور مرتب سوالاتی از این قبیل پرسیده شود: - چه ستونهایی باید وجود داشته باشد؟ هر ستون بیانگر یک مرحله از گردش کار است، یا یک صف (بافر) بین دو مرحله از حالتهای گردش کار. ساده شروع کنید و ستونهای لازم را اضافه نمایید. - محدودیت کانبان باید چقدر باشد؟ وقتی محدودیت کانبان برای ستون شما بوحود آمد و هیچ کاری برای انجام دادن نداشتید، در جستجوی یک گلوگاه (که انجامدادنیهایی که در سمت راست بورد هستند) باشید و کمک کنید تا آن گلوگاه از بین برود. اگر گلوگاهی وجود نداشت نشانه آن است که محدودیت کانبان کم است، چرا که دلیل داشتن محدودیت این است که ما ریسک متوقف شدن در گلوگاهها را کم کنیم. اگر متوجه شدید تعدادی از انجامدادنیها مدت طولانی دست نخورده باقی مانده است این نشاندهنده آن است که محدودیت کانبان خیلی بالا است. - محدودیت کانبان خیلی پایین => افراد بیکار => تولید بد - محدودیت کانبان خیلی بالا => افراد بیکار => سرعت انجام عملیات پایین <p> </p> <br> ###محدودیت کانبان چقدر سفت و سخت است؟ بعضی از تیمها به آن مثل یک قانون خیلی سفت و سخت نگاه میکنند (تیم هرگز از آن محدوده تجاوز نمیکند). بعضی از تیمها به آن به عنوان یک راهنما یا راهانداز بحثها نگاه میکنند. )زیر پا گذاشتن محدودیت کانبان مجاز است، اما باید بر اساس یک تصمیم مشخص و با دلیل صورت گیرد) پس یکبار دیگر، این به خود شما برمیگردد. قبلا اشاره کرده بودیم که کانبان خیلی تجویزی نیست، اینطور نیست؟ <p> </p> <br> ###خلاصهای از مقایسه اسکرام و کانبان - هر دو روشهایی مبتنی بر چابک (Agile) و ناب (Lean) هستند. - هر دو از روش pull scheduling استفاده میکنند. - هر دو تعداد فعالیت در حال انجام را محدود میکنند. - هر دو از شفافیت برای ایجاد بهبود در فرآیندها استفاده میکنند. - هر دو بر تحویل نرمافزار قابل اعتماد به صورت سریع و مکرر تمرکز دارند. - هر دو مبتنی بر تیمهایی با قابلیت خودسازمانده عمل میکنند. - در هر دو نیاز به شکستن کارها به فعالیتهای خردتر است. - در هر دو، برنامه منتشرسازی نرمافزار به صورت مداوم و بر اساس تجربه در حال بهینهشدن است. <table style="border-collapse: collapse; width: 100%; height: 262px;" border="1"> <tbody> <tr style="height: 18px;"> <th style="width: 50%; height: 18px;">کانبان</th> <th style="width: 50%; height: 18px;">اسکرام</th> </tr> <tr style="height: 100px;"> <td style="width: 50%; height: 100px;"> <p>اسپرینت اختیاری ست.</p> میتواند آهنگ جداگانهای برای برنامهریزی، صدور و بهبود فرآیندها داشته باشد. میتواند بجای پیروی از اسپرینت، به صورت Event-Driven عمل کند.</td> <td style="width: 50%; height: 100px;">اسپرینت تجویز شده است.</td> </tr> <tr style="height: 18px;"> <td style="width: 50%; height: 18px;">تعهد (در قبال تعداد مشخصی از یک کار) اختیاری است.</td> <td style="width: 50%; height: 18px;">تیم در قبال یک مقدار مشخصی از کار در هر بازه متعهد میشود.</td> </tr> <tr style="height: 18px;"> <td style="width: 50%; height: 18px;">استفاده از سرعت انجام عملیات (Lead Time) برای اندازهگیری برنامهریزی و بهبود فرآیندها.</td> <td style="width: 50%; height: 18px;">استفاده از معیار Velocity(سرعت) برای اندازهگیری برنامهریزی و بهبود فرآیندها.</td> </tr> <tr style="height: 18px;"> <td style="width: 50%; height: 18px;">تیمهای چند وظیفهای اختیاری است.</td> <td style="width: 50%; height: 18px;">تیمهای چند وظیفهای تجویز شده است.</td> </tr> <tr style="height: 18px;"> <td style="width: 50%; height: 18px;">هیچ محدودیتی در قبال اندازه انجامدادنیها تجویز نشده است.</td> <td style="width: 50%; height: 18px;">انجامدادنیها باید خرد شوند تا امکان تکمیل آنها در یک اسپرینت مهیا شود.</td> </tr> <tr style="height: 18px;"> <td style="width: 50%; height: 18px;">هیچ نمودار خاصی تجویز نشده است.</td> <td style="width: 50%; height: 18px;">نمودار burndown تجویز شده است.</td> </tr> <tr style="height: 18px;"> <td style="width: 50%; height: 18px;"> <p>اعمال محدودیت مستقیم روی تعداد فعالیت در</p> حال انجام (به ازای هر حالت در فرآیند گردش کار(</td> <td style="width: 50%; height: 18px;"> <p>اعمال محدودیت مستقیم روی تعداد فعالیت</p> در حال انجام (به ازای هر اسپرینت(</td> </tr> <tr style="height: 18px;"> <td style="width: 50%; height: 18px;">تخمینزدن اختیاری است.</td> <td style="width: 50%; height: 18px;">تخمینزدن تجویز شده است.</td> </tr> <tr> <td style="width: 50%;"> <p>هر وقت که ظرفیت وجود داشته باشد میتوان انجامدادنی جدیدی را اضافه نمود.</p> </td> <td style="width: 50%;"> <p>نمیتوان انجامدادنی جدیدی را به یک چرخه در</p> حال انجام اضافه نمود.</td> </tr> <tr style="height: 18px;"> <td style="width: 50%; height: 18px;">بورد کانبان ممکن است توسط چند فرد یا تیم به اشتراک گذاشته شود.</td> <td style="width: 50%; height: 18px;">مخزن فعالیتها توسط یک تیم مشخص مدیریت میشود.</td> </tr> <tr> <td style="width: 50%;">هیچ نقش مشخصی تجویز نشده است.</td> <td style="width: 50%;">3 نقش تجویز شده است (PO/SM/Team)</td> </tr> <tr> <td style="width: 50%;">بورد کانبان تجویز شده است.</td> <td style="width: 50%;">بورد اسکرام بین هر اسپرینت تغییر میکند.</td> </tr> <tr> <td style="width: 50%;">اولویتبندی اختیاری است.</td> <td style="width: 50%;">مخزن فعالیتهای اولویتبندی شده تجویز شده است.</td> </tr> </tbody> </table>