[TOC] ###اسکرام چه قوانینی تجویز میکند؟ اسکرام 3 قاعده تجویز میکند: - مالک محصول: مشخصات محصول را تعیین و اولوتبندی میکند. - تیم اسکرام: محصول را پیادهسازی میکند. - اسکرام مستر: مشکلات را برطرفکرده و هدایت فرآیندها را بعهده دارد. کانبان به هیچ عنوان هیچ قاعدهای را تجویز نمیکند. این به این معنی نیست که شما نمیتوانید و یا نباید هیچ نقشی مانند مالک محصول در کانبان داشته باشید. این یعنی شما مجبور نیستید. در هر دو روش اسکرام و کانبان شما مختارید تا هر قاعده جدیدی را اضافه کنید. اما به هنگام اضافه کردن قواعد جدید باید به این نکته توجه داشته باشید که این مؤلفه جدید ارزشی را اضافه نماید و با دیگر مؤلفههای فرآیندهای دیگر تداخلی ایجاد نکند. آیا مطمئنید که نیاز به آن قاعده جدید در مدیریت پروژه دارید؟ در یک پروژه بزرگ شاید این ایده خوبی باشد، شاید کمکی باشد برای همگامسازی چندین تیم اسکرام و مالک محصول با یکدیگر. اما در یک پروژه کوچک این قضیه ممکن است منجر به هدر رفتن و یا بدتر از آن منجر به مدیریت جزء و ریزبهینهسازی شود. «کمتر بیشتر (بهتر) است» محور فکری اسکرام و کانبان است. به همین دلیل وقتی که شک دارید از کمتر شروع کنید. در ادامه قصد داریم تا از عنوان «مالک محصول» به عنوان کسی که فارغ از فرآیندی که استفاده میشود، اولویتبندیهای تیم را تعیین میکند استفاده کنیم. <p> </p> <br> ###کانبان چه قوانینی تجویز میکند؟ در اسکرام، مخزن محصول (backlog) مشخص میکند چه فعالیتهایی باید در اسپرینت جاری انجام شود. معمولا این قضیه به صورت کارتهایی که روی دیوار چسبانده شدهاند نشان داده میشود. به این دیوار، بورد اسکرام یا بورد کار هم گفته میشود. (میتوان کارتها را روی بورد چسباند). پس تفاوت بین بورد اسکرام و بورد کانبان چیست؟ اجازه بدهید با یک پروژه ساده و واضح، به مقایسه این دو بپردازیم: ![تفاوت بورد اسکرام و بورد کانبان](/images/content/3/manday_ir_com-08.png?w100 "تفاوت بورد اسکرام و بورد کانبان") در هر دو روش ما در حال پیگیری تعدادی فعالیت هستیم که در چرخه کار در حال حرکت هستند. ما سه مرحله را انتخاب کرده ایم: در انتظار انجام، درحال انجام و انجام شده. شما میتوانید وضعیتها و مراحل دلخواه خود را داشته باشید. بعضی از تیمها مراحلی مثل یکپارچهسازی، تست، منتشر ساختن و غیره را هم دارند. *البته عبارت کمتر بیشتر (بهتر) است را فراموش نکنید.* پس تفاوت بین این دو بورد ساده در چیست؟ بله، تفاوت در عدد 2 کوچک موجود در ستون میانی بورد کانبان است. کل قضیه همین است آن 2 یعنی «در هر لحظه بیشتر از 2 فعالیت، نمیتواند در آن ستون وجود داشته باشد.» در اسکرام هیچگونه محدودیتی در قرار دادن تمامی انجامدادنیها در ستون در حال انجام وجود ندارد. هرچند که یک محدوده مشخصی وجود دارد، چرا که خود اسپرینت دارای بازه مشخص و ثابتی است. در این مورد خاصی که میبینیم، محدودیت 4 وجود دارد چرا که مجموعا 4 فعالیت در این بازه، در بورد اسکرام وجود دارد. بنابراین اسکرام محدودیت تعداد کارهای در حال انجام را بطور غیرمستقیم و کانبان به صورت مستقیم اعمال میکند. نهایتا اکثر تیمهای اسکرام یاد گرفتهاند که داشتن تعداد خیلی زیادی انجامدادنی در یک ستون ایده بدی است و این فرهنگ در تیمهای اسکرام جا افتاده که تلاش کنند قبل از اضافه کردن انجامدادنی جدید، انجامدادنیهای قبلی را تمام کنند. حتی بعضی از تیمها تصمیم میگیرند، بطور مشخص تعداد کارهای مجاز در قسمت در حال انجام را محدود کنند و ...دینگ دینگ! بورد اسکرام تبدیل به بورد کانبان شد! بنابراین اسکرام و کانبان هر دو تعداد فعالیتهای در حال انجام را در هر صورت محدود میکنند اما به روشی متفاوت. تیم اسکرام معمولا سرعت را اندازهگیری میکند یعنی: چه تعداد انجامدادنی (یا واحدی معادل آن شبیه به (story point در هر اسپرینت به اتمام رسیده است. وقتی که تیم به میزان سرعت خود در انجام فعالیتها آگاه شد، محدودیتی برای تعداد انجامدادنیهای هر حالت و یا راهنمایی برای تعیین سقف تعداد فعالیت در حال انجام هر حالت قرار میدهد. یک تیم که سرعت متوسط 10 دارد معمولا بیشتر از 10 فعالیت (یاstory point ) در یک اسپرینت قرار نمیدهد. پس در اسکرام، تعداد فعالیت در حال انجام محدود به واحد زمان است. در کانبان این محدودیت مختص به یک وضعیت(ستون) گردش کار است. در مثال بالا، مربوط به کانبان، بدون توجه به دیگر محدودیتها، نهایتا در هر لحظه باید 2 فعالیت در حال انجام باشد. شما باید انتخاب کنید که چه محدودیتی در هر یک از ستونهای گردش کار حاکم باشد. اما ایده کلی این است که تمامی ستونهای گردش کار را به یک شکل محدود کرده، در زودترین زمان ممکن شروع کرده و در دیرترین زمان ممکن در راستای زنجیره اهداف تمام کنید. بنابراین در این مثال، ما باید محدودیتی هم برای ستون «در انتظار انجام» قرار دهیم. بمحض اینکه این محدودیت را اعمال کردیم میتوانیم اندازهگیریهایمان را شروع کنیم و زمان پیشروی خود راتخمین بزنیم. زمان پیشروی عبارتست از متوسط زمانی که لازم است تا یک فعالیت تمام ستونهای یک بورد را طی کند. داشتن زمان پیشروی به ما اجازه میدهد تا بتوانیم توافقات سطح سرویس (service-level agreements) متعدد و برنامهای حقیقی برای منتشر ساختنهایمان (release planning) داشته باشیم. در صورتی که اندازه انجامدادنیها بسیار متغیر باشد، میتوان سقف محدوده تعداد فعالیت در حال انجام را در قالب story point یا هر واحد دیگری انتخاب نمود. بعضی از تیمها زمانی را صرف شکستن و خردکردن انجامدادنیها، جهت همسانسازی آنها میکنند تا از بوجود آمدن مشکلی که مطرح شد جلوگیری کنند و زمان صرف شده جهت تخمین زدن را هم کاهش دهند. (گاهی حتی تخمین زدن را هم میتوان کار اضافه حساب کرد). وقتی انجامدادنیها هماندازه باشند، ساخت سیستم روان آسانتر خواهد بود. <p> </p> <br> ###هر دو روشهایی مبتنی بر تجربه هستند. ![معیارهای سنجش](/images/content/3/manday_ir_com-09.png?w100 "معیارهای سنجش") تصور کنید دکمههایی بر روی این معیارهای سنجش وجود داشت و شما میتوانستید فرآیندها را با چرخاندن آن دکمهها به دلخواه تنظیم کنید. برای مثال اگر انتخاب شما «ظرفیت بالا، زمان پیشران کم، کیفیت خوب و قابلیت پیشبینی بالا» باشد، میتوانید دکمهها را به ترتیب روی 10، 1، 10 و 10 تنظیم نمایید. شاید از نظر شما این خیلی عالی باشد ولی متاسفانه در واقعیت همچنین شرایطی امکانپذیر نیست. ![تنظیم شاخصهای کانبان](/images/content/3/manday_ir_com-10.png?w100 "تنظیم شاخصهای کانبان") در اسکرام و کانبان از شما انتظار میرود تا با فرآیند به صورت عملی کار کرده و آن را با محیط خود سازگار کنید، در نتیجه هر دو روشهایی تجربی هستند. در حقیقت، شما باید عملی تجربه کنید. نه اسکرام، نه کانبان هیچکدام تمامی جوابها را برای شما فراهم نمیکنند. آنها فقط تعداد محدودی محدودیت برای شما تنظیم میکنند تا خودتان بتوانید فرآیند را ارتقا بخشید. - اسکرام میگوید شما باید تیمهای چند وظیفهای (متخصص) داشته باشید. پس چه کسی باید در کدام تیم باشد؟ نمیدانم، خودت تجربه کن. - اسکرام میگوید تیم انتخاب میکند چقدر فعالیت در هر اسپرینت برای انجام وجود داشته باشد. خب، چند فعالیت باید داخل هر اسپرینت قرار دهند؟ نمیدانم، خودت تجربه کن. - کانبان میگوید باید برای تعداد فعالیت در حال انجام هر ستون سقف و محدوده تعیین کرد. خب، این محدودیت باید چقدر باشد؟ نمیدانم، خودتان تجربه کنید. همان طور که قبلا هم اشاره شد، کانبان در مقایسه با اسکرام تعداد کمتری محدودیت اعمال میکند. این به این معناست که شما تعداد بیشتری پارامتر جهت فکر کردن به آنها دارید و تعداد بیشتری دکمه جهت تنظیم کردن. این قضیه بسته به کاربرد آن، هم میتواند نقطه ضعف باشد و هم قوت. وقتی شما پنجره تنظیمات یک نرمافزار را باز میکنید، آیا داشتن 3 پارامتر را به داشتن 100 پارامتر ترجیح میدهید؟ احتمالا بین این دو عدد را میپسندید. بسته به اینکه چقدر نیاز دارید تا پارامترها را تغییر دهید و چقدر شناخت از نرمافزار دارید این قضیه متفاوت خواهد بود. با این اوصاف بهتر است سقف تعداد فعالیت در حال انجام هر مرحله کم شود، با توجه به نظریهای که قبلا مطرح شد این قضیه باید فرآیند را بهبود بخشد. در نتیجه دیگر پارامترها مثل ظرفیت، سرعت پیشران، کیفیت و قابل حدس بودن تغییر خواهند کرد. میتوان از خروجیهای بدست آمده این نتیجه را گرفت که در صورت اعمال تغییرات بیشتر، ارتقا فرآیند به صورت دائمی حاصل میشود. اسمهای زیادی برای این راهکار وجود داردKaizen : (بهبود دائمی در روش های Lean)، بازرسی و تطبیق (در اسکرام)، کنترل فرآیند تجربی، یا روش علمی. حیاتیترین مؤلفه در آن, حلقه بازخور است. یک چیز را تغییر بده ---> ببین چگونه عمل میکند ---> از آن یادبگیر ---> یک چیز را دوباره تغییر بده. بصورت اجمالی شما معمولا نیاز به حلقههای بازخور کوچکی در کمترین تعداد ممکن دارید تا بتوانید فرآیند را سریع تطبیق دهید. در اسکرام، پایه حلقه بازخور براساس اسپرینت است. هرچند که موارد دیگری نیز هستند مخصوصا اگر به صورت روش XP (eXtreme programming) ترکیب شود: ![حلقه بازخور](/images/content/3/manday_ir_com-11.png?w100 "حلقه بازخور") اگر به درستی کار شود، اسکرام + XP تعداد زیادی حلقههای بازخور بسیار ارزشمند ارائه میدهند. حلقه بازخور داخلی، برنامهنویسی دونفره، یک حلقه بازخور ثانیهای است. خطاها ظرف چند ثانیه پیدا و رفع میشوند این همان دایره بازخور با عنوان «آیا ما داریم موارد را درست میسازیم؟ «است. حلقه بازخور بیرونی در شکل (اسپرینت) دایره بازخور هفتگی را مهیا میکند. این همان « آیا ما داریم موارد را درست میسازیم؟ «است. کانبان چگونه است؟ قبل از هر چیز، چه از کانبان استفاده میکنید و چه استفاده نمیکنید، شما میتوانید (و شاید هم باید) تمامی آن حلقههای بازخور اشاره شده در بالا را در فرآیند خود لحاظ نمایید. در عوض چیزی که کانبان به شما میدهد تعداد کمی معیارهای سنجش بسیار کاربردی است: - **میانگین زمانی انجام عملیات. ** زمانی که یک انجامدادنی به مرحله «انجامشده» رسید. سرعت زمان انجام عملیات را بروز نمایید. - **گلوگاهها. ** یک نشانه (از وجود مشکل) این است که ستون شماره الف پر از فعالیتهای مختلف است، درحالیکه ستون شماره الف+ 1 خالیست. همیشه مواظب «حبابهای خالی» بورد خود باشید. نکته خوب درباره معیارهای سنجش لحظهای این است که شما میتوانید اندازه بازههای حلقههای بازخور را بر اساس اینکه هرچند وقت یکبار دلتان میخواهد آنها را تحلیل کرده و تغییراتی اعمال نمایید، خودتان انتخاب کنید. حلقه بازخور خیلی طولانی یعنی فرآیند بهبود شما کند خواهد بود. حلقه بازخور خیلی کوتاه هم یعنی ممکن است شما به اندازه کافی وقت نداشته باشید تا تغییرات خود را پایدار نمایید، که این مسئله ممکن است باعث مشکل شود. در حقیقت، اندازه بازه حلقه بازخور یکی از مواردیست که شما میتوانید خودتان آن را تجربه کنید... یک نوع حلقه فرا بازخور. **مثال: تجربه ی محدودکردن تعداد فعالیت در حال انجام هر مرحله در کانبان** یکی از نکات غیرمشخص در کانبان محدودیت تعداد فعالیت در حال انجام در هر ستون است. چطور میتوان از انجام درست آن اطمینان پیدا کرد؟ فرض کنید که ما 4 نفر در تیم داریم و تصمیم گرفتیم تا با محدودیت تعداد فعالیت در حال انجام 1 کار در هر مرحله، کار را شروع کنیم. هرزمان که یک انجامدادنی را شروع میکنیم، تا زمانی که انجام نشده نمیتوانیم انجامدادنی دیگری را شروع کنیم. ![محدودکردن تعداد فعالیت در حال انجام هر مرحله در کانبان](/images/content/3/manday_ir_com-12.png?w100 "محدودکردن تعداد فعالیت در حال انجام هر مرحله در کانبان") پس معمولا خیلی امکانپذیر نیست که همه افراد همزمان بر روی یک فعالیت کار کنند. (در این مثال ما اینگونه است) بنابراین شاهد افرادی خواهیم بود که بدون کار هستند. اگر این مورد فقط یکبار اتفاق افتاد مشکلی نیست، اما اگر به صورت مکرر اتفاق بیفتد، نتیجه این میشود که میانگین زمان انجام فعالیت افزایش خواهد یافت. اساسا، تعیین عدد 1 برای سقف تعداد فعالیت در حال انجام به این معناست که فعالیتها از مرحله» در حال انجام» (Ongoing) به سرعت عبور میکنند و در عوض تعداد زیادی فعالیت در مرحله» در انتظار انجام» (To Do) به مدت زیادی باقی خواهند ماند و به همین دلیل زمان انجام فعالیت بیش از اندازه طولانی خواهد شد. بنابراین اگر تعیین محدوده سقف 1 در هر مرحله زیاد است، چطور است که آن را به عدد 8 افزایش دهیم؟ ![تعیین سقف محدودیت برای فعالیتهای در حال انجام](/images/content/3/manday_ir_com-13.png?w100 "تعیین سقف محدودیت برای فعالیتهای در حال انجام") این کار برای مدتی بهتر جواب میدهد. هرچند کارکردن به صورت دو نفره بطور میانگین سرعت انجام کار را بالا میبرد. بنابراین ما با یک تیم 4 نفره، 2 فعالیت در حال انجام در هر لحظه خواهیم داشت. تعیین عدد 8 برای سقف محدودیت تنها یک سقف حداکثری است و داشتن تعداد فعالیتهایی کمتر از آن مشکلی خاصی ندارد. با این حال تصور کنید ما در قسمت یکپارچهسازی سرور به مشکل برخوردهایم و برای همین هم نمیتوانیم هیچ فعالیتی را به اتمام برسانیم (تعریف ما از اتمام کار شامل یکپارچهسازی هم بود). این قبیل مشکلات گاهی اتفاق میافتد. این طور نیست؟ ![مشکل عدم یکپارچهسازی](/images/content/3/manday_ir_com-14.png?w100 "مشکل عدم یکپارچهسازی") از آنجایی که نمیتوانیم فعالیتهای D و E را کامل کنیم، فعالیت F را شروع مینماییم. این فعالیت را هم نمیتوانیم یکپارچه کنیم برای همین فعالیت G را هم شروع میکنیم. بعد از مدتی سقف محدودیتهای ما پر میشود—8 فعالیت در حال انجام ![پر شدن سقف محدودیت فعالیتهای در حال اجرا](/images/content/3/manday_ir_com-015.png?w100 "پر شدن سقف محدودیت فعالیتهای در حال اجرا") در این لحظه نمیتوانیم تعداد بیشتری فعالیت آغاز کنیم. بهتراست که مشکل خطرناک یکپارچهسازی سرور را برطرف کنیم! سقف محدود تعداد فعالیت در حال انجام ما را وادار میکند تا بجای تلنبار کردن مقدار زیادی از کارهای انجام نشده، گلوگاهها را ترمیم کنیم. این خوب است. اما اگر ما سقف محدود خود را 4 تعیین کرده بودیم بسیار زودتر میتوانستیم به مشکل موجود عکسالعمل نشان دهیم و در نتیجه متوسط زمان انجام عملیات بهتری داشته باشیم. بنابراین این مسئله توازنی است. ما متوسط زمان انجام عملیات را اندازه میگیریم و سقف محدوده خود را بهینه میکنیم تا این متوسط زمان انجام عملیات نیز بهینه شود: ![بهینه کردن سقف محدودیت فعالیتهای در حال انجام](/images/content/3/manday_ir_com-15.png?w100 "بهینه کردن سقف محدودیت فعالیتهای در حال انجام") بعد از مدتی ممکن است متوجه شویم که فعالیتهای «در انتظار انجام» تلنبار شدهاند. شاید بهتر باشد برای آنجا هم سقف محدودیت تعیین کنیم. اصلا برای چه به ستون «در انتظار انجام» نیاز است؟ اگر مشتری در هر لحظه حاضر بود و میتوانست هر وقت که تیم پرسید، جواب دهد چه کار باید انجام دهند، آن موقع به ستون «در انتظار انجام» نیازی نبود. اما مشتری همواره در دسترس نیست پس ستون «در انتظار انجام» برای تیم به منزله مخزن کوچکی از کارها برای انجام دادن است. *تجربه کردن. یا همانطور که متخصصین اسکرام میگویند، تفتیش کن و سازگار کن!* <p> </p> <br> ###اسکرام اسپرینت را تجویز میکند. اسکرام بر پایه بازههای زمانی تکراری (timeboxed iterations) استوار است. میتوان اندازه هریک از این اسپرینتها را تعیین نمود اما ایده کلی این است که اندازه این اسپرینتها در طول کل پروژه ثابت باشد و در نتیجه هماهنگی کلی ایجاد شود. - **شروع یک اسپرینت:** یک اسپرینت به این صورت شروع میشود که تیم اسکرام تعدادی از انجامدادنیهای خاص را که فکر میکند میتواند در این اسپرینت تمام کند و مالک اولویت بالایی به آنها داده، از محصولات ناتمام انتخاب میکند. - **در طول بازه هر اسپرینت:** تیم اسکرام بر روی تمامکردن انجامدادنیهای انتخابی تمرکز میکند. طول بازه ثابت است. - **پایان یک اسپرینت:** تیم اسکرام کد پیادهسازی کارکردی را به ذینفعان مرتبط نشان میدهد که در حالت ایدهآل این کدها باید قابل استفاده باشند (تست شده و آماده استقرار). سپس اعضای تیم باهم درباره چگونگی بهبود فرآیند طی شده بحث خواهند کرد. پس تکرارهای اسکرام یک تک اسپرینت هستند که شامل سه فعالیت متفاوتند: برنامهریزی، ارتقا و بهبود فرآیند و (در حالت ایدهآل) منتشر ساختن نسخه. در کانبان اسپرینت تکراری تجویز نشده است. زمان برنامهریزی، ارتقای فرآیندها و انتشار نسخه انتخابی است، همچنین انجام فعالیتها در زمانی خاص انتخابی است. (منتشر کردن نسخه در هر دوشنبه) و یا انجام در صورت تقاضا (منتشرسازی وقتی که چیزی ارزشمند برای انتشار وجود دارد(. **تیم شماره 1 (تک هم آهنگ)** «ما تکرارهای اسکرام را انجام میدهیم» ![تک هم آهنگ](/images/content/3/manday_ir_com-16.png?w100 "تک هم آهنگ") **تیم شماره 2 (3 همآهنگ)** ما سه همآهنگ مختلف داریم. ما هر هفته هر آنچه که آماده باشد را منتشر میکنیم. هر دو هفته یکبار جلسه برنامهریزی داریم و اولویتها و برنامه منتشرسازی را بروز میکنیم. هر چهار هفته یکبار جلسه رفع خطا داریم تا فرآیندها را بهبود دهیم. ![3 همآهنگ](/images/content/3/manday_ir_com-17.png?w100 "3 همآهنگ") **تیم شماره 3 (عمدتا اتفاقمحور - Event Driven )** ما هنگامی که با کمبود نیرو برای انجام کارها مواجه میشویم جلسهای بر پا میکنیم. هنگامی که حداقل ویژگیهای قابل ارائه که امکان بازاریابی برای آنها وجود دارد آماده میشود جلسه ساختن برپا میکنیم. زمانی که برای بار دوم به یک مشکل برمیخوریم جلسه فوری چرخه کیفی برپا میکنیم. همچنین ما جلسه مرور گذشته را هر چهار هفته یکبار داریم. ![عمدتا اتفاقمحور - Event Driven](/images/content/3/manday_ir_com-18.png?w100 "عمدتا اتفاقمحور - Event Driven") <p> </p> <br> ###اسکرام در مقابل تغییر در یک اسپرینت مقاومت میکند. اجازه بدهید تصور کنیم بورد اسکرام ما شبیه به شکل زیر است: ![بورد اسکرام](/images/content/3/manday_ir_com-19.png?w100 "بورد اسکرام") اگر یک نفر بخواهد که یک انجامدادنی جدید (E) را به بورد اضافه کند چه؟ اصول تیم اسکرام چیزی شبیه به این خواهد گفت: «نه، متاسفیم، ما متعهدیم تا فعالیتهای A+B+C+D را در این اسپرینت به اتمام برسانیم. اما میتوانید فعالیت E را به مخزن فعالیتها اضافه کنید. اگر مالک محصول برای این فعالیت اولویت بالایی قائل باشد ما آن را به اسپرینت بعدی منتقل خواهیم کرد.» اسپرینتها با طول بازه زمانی مناسب و صحیح این امکان را به تیم میدهد تا به اندازه کافی بر روی اتمام یک فعالیت تمرکز نموده، در حالی که امکان مدیریت و اولویتبندی برای مالک محصول به صورت دورهای همچنان باقی است. حال ببینیم تیم کانبان چه پاسخی میدهد؟ ![محدودیت در بورد اسکرام](/images/content/3/manday_ir_com-20.png?w100 "محدودیت در بورد اسکرام") کانبان احتمالا میگوید: «اجازه داری انجامدادنی E را به ستون (در انتظار انجام) اضافه نمایی.» اما محدودیت آن ستون 2 است، بنابراین شما نیاز دارید تا فعالیت C و یا D را در این مورد حذف کنید. ما در حال حاضر روی A و B مشغول کار هستیم، اما به محض اینکه ظرفیتمان اجازه دهد یک انجامدادنی از ستون «در انتظار انجام» برمیداریم (تا روی آن کار کنیم). بنابراین سرعت پاسخگویی )چه مقدار زمان لازم است تا به تغییر ایجاد شده در اولویتبندی پاسخ داده شود) در کانبان معادل میزان زمانی است که نیاز است تا ظرفیت خالی شود، بر اساس مفهوم کلی «یک انجامدادنی بیرون بیاید، یک انجامدادنی وارد خواهد شد.» (و بر پایه محدودیت حداکثر فعالیت در حال انجام) در اسکرام، سرعت پاسخ نصف میانگین اندازه بازه اسپرینت است. در اسکرام، مالک محصول نمیتواند به بورد اسکرام دست بزند چون تیم تعهد داده است در این تکرار، فقط روی یک سری از فعالیتها کار کند. در کانبان باید خودتان برای خودتان قوانینی را وضع کنید و مشخص نمایید چه کسی میتواند چه چیزی را روی بورد تغییر دهد. معمولا به مالک محصول ستونی شبیه به «در انتظار انجام»، «آماده»، «مخزن» و یا «پیشنهاد شده» در سمت چپ داده میشود تا بتواند هر وقت که خواست در آنجا تغییر ایجاد کند. این دو روش انحصاری (و ثابت) نیستند. یک تیم اسکرام ممکن است تصمیم بگیرد به مالک محصول اجازه تغییر در اولویتها در میانه اسپرینت را بدهد. (هرچند این قضیه میتواند استثنا تلقی شود)؛ و یک تیم کانبان ممکن است تصمیم بگیرد محدودیتی در زمان تغییرات در اولویتها لحاظ کند. حتی ممکن است یک تیم کانبان تصمیم به استفاده از اسپرینتهای ثابت دورهای بگیرد، کاملا شبیه به اسکرام. <p> </p> <br> ###استوری بورد در انتهای هر اسپرینت مجدد راهاندازی میشود. معمولا یک بورد اسکرام در مراحل مختلف یک اسپرینت، چیزی شبیه به شکل زیر است: ![مراحل مختلف یه اسپرینت در بورد اسکرام](/images/content/3/manday_ir_com-21.png?w100 "مراحل مختلف یه اسپرینت در بورد اسکرام") وقتی که اسپرینت به پایان میرسد، بورد پاک شده و تمام انجامدادنیها برداشته خواهند شد. پس از شروع اسپرینت جدید و برگزاری جلسه برنامهریزی، ما یک بورد اسکرام جدید خواهیم داشت که تعدادی فعالیت جدید در ستون سمت چپ آن قرار دارند. از منظر فنی، این کار بیهوده است، اما برای تیمهای حرفهای اسکرام این کار معمولا خیلی زمان نمیبرد و فرآیند پاککردن بورد حس خوب تکمیل و بستن را ایجاد میکند. به عبارتی شبیه شستن ظرفها پس از شام است، انجام دادنش کمی سخت است اما به نوعی حس خوبی پس از پایان میدهد. در کانبان، معمولا بورد ثابت است و شما نیازی ندارید آن را هربار پاک کرده و از ابتدا شروع کنید. ![ثبات بورد کانبان](/images/content/3/manday_ir_com-22.png?w100 "ثبات بورد کانبان") <p> </p> <br> ###اسکرام تیمهای چند وظیفهای را تجویز میکند. یک بورد اسکرام فقط متعلق به یک تیم اسکرام است. تیم اسکرام دارای تیمهای چند وظیفهای )متخصص) است که دارای تمام تواناییهای لازم برای به پایان رساندن تمام فعالیتهای یک چرخه است. یک بورد اسکرام معمولا توسط هرکسی که علاقهمند است قابل رویت است اما تنها توسط افراد تیم اسکرام که بورد متعلق به آنهاست قابل تغییر است. این یک راه برای مدیریت تعهداتی است که آنها در قبال این چرخه دارند. ![تیمهای متخصص در بورد اسکرام](/images/content/3/manday_ir_com-23.png?w100 "تیمهای متخصص در بورد اسکرام") در کانبان، داشتن تیمهای چند وظیفهای (متخصص) اختیاری است و نیازی نیست بورد توسط یک تیم خاص اداره شود. بورد مرتبط با یک فرآیند کاری خواهد بود و نه لزوما یک تیم. دو مثال را اینجا با هم میبینیم: ![تعلق کل بورد کانبان به یک تیم متخصص](/images/content/3/manday_ir_com-24.png?w100 "تعلق کل بورد کانبان به یک تیم متخصص") مثال 1: کل بورد متعلق به یک تیم چند وظیفهای (متخصص) است درست مثل اسکرام. ![تعیین اولویت توسط صاحب محصول در بورد کانبان](/images/content/3/manday_ir_com-25.png?w100 "تعیین اولویت توسط صاحب محصول در بورد کانبان") مثال 2: مالک محصول اولویتهایی را در ستون 1 لحاظ میکند. تیمهای چند وظیفهای (متخصص) (ستون 2) و تست را (ستون 3) انجام میدهد. منتشر ساختن (ستون 4) توسط یک تیم متخصص انجام میشود. یک همپوشانی جزئی بین افراد وجود خواهد داشت، بنابراین اگر تیم منتشرسازی گلوگاه شود، یکی از افراد تیم پیادهسازی به آنها کمک خواهند کرد. بنابراین شما نیاز دارید تا یک سری قوانین را تنظیم نمایید که چه کسی و چگونه از بورد استفاده کند، سپس آن قوانین را تجربه کنید تا فرآیند بهینه شود. <p> </p> <br> ###انجامدادنیهای داخل مخزن محصول باید در یک اسپرینت جا شوند. هم کانبان و هم اسکرام روشهایی بر پایه پیادهسازی افزایشی (incremental) هستند، یعنی فعالیتها را به تکههای کوچک تقسیم میکنند. یک تیم اسکرام تنها در قبال انجامدادنیهایی تعهد میدهد که تصور میکند امکان اتمام آنها را در یک چرخه خواهند داشت (بر اساس تعریف خودشان از «اتمام»). اگر یک انجامدادنی برای یک اسپرینت، بیش از اندازه بزرگ باشد، تیم و مالک محصول سعی خواهند کرد تا راههایی برای تقسیم آن به قطعات کوچکتر پیدا کنند تا امکان قرار گرفتن در یک اسپرینت را داشته باشد. اگر انجامدادنیها بزرگ باشند، چرخهها طولانیتر خواهند بود (هرچند که معمولا بیشتر از 4 هفته نخواهند بود). ![پیادهسازی افزایشی در اسکرام](/images/content/3/manday_ir_com-26.png?w100 "پیادهسازی افزایشی در اسکرام") تیمهای کانبان سعی میکنند زمان انجام عملیات و میزان گردش (کار) را بهینه کنند تا بتوانند از این طریق بطور غیرمستقیم انگیزهای برای شکستن انجامدادنیها به قطعات کوچکتر ایجاد نمایند. البته هیچ قانون مشخصی وجود ندارد که بگوید انجامدادنیها باید به اندازه کافی کوچک باشند تا در یک اسپرینت خاص جای بگیرند. در یک بورد ممکن است یک انجامدادنی وجود داشته باشد که 1 ماه طول بکشد و یک انجامدادنی دیگر تنها 1 روز طول بکشد. ![پیادهسازی افزایشی در کانبان](/images/content/3/manday_ir_com-27.png?w100 "پیادهسازی افزایشی در کانبان") <p> </p> <br> ###اسکرام تخمین و سرعتسنجی را تجویز میکند. در اسکرام، تیمها باید اندازه (مقدار کار) هر یک از انجامدادنیهایی را که در قبال آنها تعهد دادهاند تخمین بزنند. با جمع کردن اندازه هریک از انجامدادنیهایی که در پایان هر اسپرینت تکمیل شدهاند، سرعت بدست خواهد آمد. سرعت یک مقیاس برای ظرفیت است، چه مقدار )خروجی) میتوانیم در پایان هر اسپرینت تحویل بدهیم. در ادامه یک تیم با سرعت 8 به عنوان مثال نشان داده شده است. ![سرعتسنجی در اسکرام](/images/content/3/manday_ir_com-28.png?w100 "سرعتسنجی در اسکرام") دانستن اینکه دارای سرعت میانگین 8 هستیم خوب است، چرا که میتوانیم پیشبینی واقعگرایانهای درباره انجامدادنیهایی که میتوانیم در اسپرینت پیش رو به اتمام رسانیم داشته باشیم و در نتیجه امکان داشتن برنامه واقعگرایانهای برای منتشر کردنهای خود داشته باشیم. در کانبان، تخمینزدن تجویز نشده است. بنابراین اگر شما میخواهید تعهدی در قبال انجام کارها داشته باشید، نیاز دارید تا تصمیم بگیرید چگونه تخمین بزنید. بعضی تیمها روشی مشابه اسکرام را برای تخمین و اندازهگیری سرعت بکار میبرند. بعضیها تخمین نمیزنند اما سعی میکنند انجامدادنیها را به اندازههای مشابهی بشکنند تا بتوانند به راحتی سرعت را با بر اساس تعداد کارهای به اتمام رسیده در واحد زمانی اندازه بگیرند (مثلا تعداد «ویژگیهای محصول در هفته»). بعضی تیمها انجامدادنیها را به صورت MMF دستهبندی میکنند و زمان انجام عملیات را به ازای هم MMF اندازه میگیرند و از آن برای داشتن (Service-Level Agreements (SLAs استفاده میکنند. به عنوان مثال «زمانی که ما برای یک MMF تعهد میدهیم، همواره 15 روز طول خواهد کشید تا آن را تحویل دهیم.» روشهای جالب زیادی برای بحث برنامهریزی منتشرسازی (Release Planning) و مدیریت تعهدات (Commitment Management) در کانبان وجود دارد اما روش خاصی توصیه نشده است، بنابراین میتوانید در گوگل جستجو کنید، روشها را امتحان کنید و بهترین را برای خود بکار ببرید. اما احتمالا «بهترین روشها» را در طول زمان خواهید یافت. <p> </p> <br> ###هر دو اجازه کار روی چند محصول را بصورت همزمان میدهند. در اسکرام، «مخزن محصول (backlog)» اسم خیلی مناسبی نیست چرا که در این صورت تلقی میشود تمامی انجامدادنیهای داخل آن باید برای «یک» محصول باشند. دو محصول داریم، سبز و زرد، هر یک مخزن و تیم مربوط به خود را دارند: ![محصولات در مخزن اسکرام](/images/content/3/manday_ir_com-29.png?w100 "محصولات در مخزن اسکرام") اگر فقط یک تیم داشتید چه می شد؟ خب، به مخزن محصول (product backlog ) به دید یک مخزن تیم نگاه کنید. این مخزن چرخههای مربوط به یک تیم )یا مجموعهای از تیمها( را اولویتبندی میکند. بنابراین اگر آن تیم شامل چندین محصول باشد، دو محصول را در یک لیست ادغام میکنیم. این مسئله ما را مجبور به اولویتبندی محصولات میسازد که به نوعی مفید خواهد بود. چندین راه برای عملیاتیسازی این مسئله وجود دارد. یک استراتژی این است که تمرکز تیم را در هر اسپرینت تنها روی یک محصول بگذاریم ![تمرکز تیم روی یک محصول در هر اسپرینت](/images/content/3/manday_ir_com-30.png?w100 "تمرکز تیم روی یک محصول در هر اسپرینت") استراتژی دیگر، داشتن تیمی است که روی ویژگیهای هردو محصول در هر اسپرینت بطور همزمان کار کند: ![تمرکز روی ویژگیهای هر دو محصول به طور همزمان](/images/content/3/manday_ir_com-31.png?w100 "تمرکز روی ویژگیهای هر دو محصول به طور همزمان") در کانبان هم به همین شیوه، میتوانیم چندین محصول را در یک بورد داشته باشیم و آنها را با استفاده از کارتهای رنگی مختلف از یکدیگر تفکیک نماییم. ![تفکیک محصولات با کارتهای رنگی در کانبان](/images/content/3/manday_ir_com-32.png?w100 "تفکیک محصولات با کارتهای رنگی در کانبان") یا با داشتن مؤلفههای تفکیککننده: ![مولفههای تفکیککننده محصولات در بورد کانبان](/images/content/3/manday_ir_com-33.png?w100 "مولفههای تفکیککننده محصولات در بورد کانبان") <p> </p> <br> ###هر دو چابک (Agile) و ناب (Lean) هستند. قصد نداریم به طرز فکر ناب (Lean) و یا اصل واضح و شفاف چابک (Agile) بپردازیم، اما بطور کلی اسکرام و کانبان هردو به خوبی با این دو مفاهیم همراستا هستند. به عنوان مثال: - اسکرام و کانبان هردو سیستمهایی بر پایه pull scheduling هستند که معادل JIT (Just In Time) مفاهیم مدیریت موجودی در Lean است. یعنی تیم تصمیم میگیرد که چه وقت و چه مقدار فعالیت را تعهد دهد، آنها کار را زمانی که آماده هستند «میکِشند»(Pull). بجای آنکه کار از بیرون به آنها داده شده باشد(pushed) . دقیقا شبیه به یک پرینتر، زمانی که آماده است، برگه بعدی را جهت پرینت به داخل میکشد تا چاپ را انجام دهد (اگرچه تعداد محدود و کمی کاغذ برای کشیدن و چاپ کردن موجود است). - اسکرام و کانبان بر اساس بهبود تجربی و دائمی فرآیند، استوار است که معادل مفهوم Kaizen در Lean است. - اسکرام و کانبان تاکید بر پاسخگویی به تغییرات با استفاده از پیروی از یک برنامه مشخص دارند (هرچند که کانبان اصولا سرعت پاسخگویی بالاتری دارد)، یکی از چهار ارزش واضح چابک ( Agile) و موارد بیشتر... از یک دیدگاه اسکرام را میتوان به عنوان «نه چندان Lean» دید چرا که اسکرام دستهبندی انجامدادنیها و ورود آنها را در یک اسپرینت تجویز میکند. اما این بسته به اندازه چرخه شما دارد و اینکه با چه چیز آن را مقایسه میکنید. در مقایسه با روشهای قدیمیتر فرآیند که شاید یک چیز را 2-4 بار منتشر میساختیم، یک تیم اسکرام هر 2 هفته یکبار کدهای قابل استفاده را تولید میکند که این امر بسیار Lean است. اما اگر طول این اسپرینتها را کوچک و کوچکتر کنید در واقع به کانبان نزدیک میشوید. وقتی از اسپرینتهای کوچکتر از 1 هفته صحبت میکنید ممکن است که بطور کلی از اسپرینت (مرسوم در اسکرام یا کانبان) فاصله بگیرید. *تجربه کنید تا آنچه برای شما بهترین است را پیدا کنید و دوباره به تجربه کردن ادامه دهید.*