تیمهایی که اسکرامبان را انتخاب میکنند بخشهای اصلی اسکرام و کانبان را ترکیب میکنند تا بتوانند محصولات بهتری به مشتریان خود تحویل دهند. در این مقاله، به بازنگری مبانی اسکرام و کانبان میپردازیم و بررسی میکنیم که چگونه میتوانید آنها را بهطور اثربخش در قالب اسکرامبان ترکیب کنید. همچنین تصورات غلط رایج و دامهایی را بررسی میکنیم که تیمها با پذیرش اسکرامبان با آنها مواجه میشوند.
اسکرامبان (Scrumban) ترکیبی از «اسکرام» (Scrum) و «کانبان» (Kanban) است. اسکرامبان، مدیریت پروژه و تحویل محصول که تمرکز اسکرام هستند را با سیستمهای کششی (Pull system)، تصویرسازی گردش کار و بهبود فرایندِ کانبان ترکیب میکند. طبق گزارش ارائه شده توسط State of Agile در سال 2018، هشت درصد از تیمهای نرمافزاری گزارش دادهاند که اسکرامبان را به کار میگیرند.
تیمهایی که اسکرامبان را پیادهسازی میکنند بهطور اثربخشی تحویل محصولِ اسکرام را با بهبود فرایند و مدیریت گردش کار کانبان ترکیب میکنند تا از مزایای هر دو بهرهمند شوند. اسکرامبان به تیمها کمک میکند تا توانایی خودشان را برای تحویل محصولات با ارزش به کار گیرند.
اسکرام محبوبترین چارچوب چابک است، و تیمهای بسیاری یا بخشهایی از اسکرام را به کار میگیرند یا در نظر دارند این کار را انجام دهند. با این حال، حتی تیمهای اسکرامی بسیار اثربخش این را میدانند که قواعد اسکرام همیشه کافی نیستند تا به آنها برای عبور از چالشهای خاصشان کمک کنند. برای مثال، تیم اسکرام شاید فهمیده باشد که ظرفیت مدیریت کردن تمام ایدههای درخواست شده توسط ذینفعان خود را ندارد، حتی اگر تیم با سرعت تمام کار کند «بکلاگ مقدماتی» (Prebacklog) ایدهها مدام در حال رشد است که باعث ناامیدی ذینفعان میشود. پذیرش اسکرامبان برای تیمهایی که اسکرام را از قبل به کار گرفتهاند، راهی نشان میدهد تا بتوانند اضافه بار ناشی از مشکلات تیمشان را پیدا و رفع کنند.
با محبوبیت ویژگیهای تابلو کانبان (Kanban Board) در ابزارهای الکترونیکی نظیر جیرا، تیمهای نرمافزاری بیش از پیش از کانبان آگاه میشوند. اما بسیاری از تیمهایی که آن ابزارها را انتخاب میکنند با تصورات غلط رایج زیادی روبرو هستند: آنها کانبان را به عنوان سیستمی برای مدیریت و سازماندهی کار یا اساسا به عنوان اسکرام بدون تکرارها تلقی میکنند. تیمهایی که سعی میکنند روشهایی مبتنی بر آن تصورات غلط انتخاب کنند اغلب در مییابند که مشکلاتشان بدتر میشود، نه بهتر. اسکرامبان به آن تیمها راهی اثربخش برای یکپارچه کردن عناصر گمشده اسکرام میدهد تا کارشان را به طور اثربخشتر مدیریت کنند.
تیمهایی که اسکرامبان را انتخاب میکنند بخشهای اصلی اسکرام و کانبان را ترکیب میکنند تا در حال حاضر محصولات بهتری تحویل دهند در حالیکه به بهبود محصولات در آینده ادامه میدهند. در این گزارش، به بازنگری مبانی اسکرام و کانبان میپردازیم و بررسی میکنیم که چگونه میتوانید آنها را بهطور اثربخش در قالب اسکرامبان ترکیب کنید. همچنین تصورات غلط رایج و دامهایی را بررسی میکنیم که تیمها با پذیرش اسکرامبان با آنها مواجه میشوند. با نگاهی به یک مورد مطالعاتی از پیادهسازی موفق اسکرمبان گزارش را به پایان میرسانیم.
بسیاری از تیمهای توسعه نرمافزار مخصوصا آنهایی که اسکرام را به کار میگیرند، اسکرامبان را مورد توجه قرار میدهند زیرا یک اجماع رو به رشدی وجود دارد که متدولوژی فعلی آنها مشکلاتی ایجاد میکند. تیمها وقتیکه نشانههای مشکلات فرایند را مشاهده میکنند اغلب اسکرامبان را مورد توجه قرار میدهند اما هنوز علت اصلی آن مشکلات را نمیدانند. این نشانهها بهطور مکرر هنگام شکایت در مورد قواعد اسکرام بروز میکند، و مخصوصا نقش مالک محصول. برای مثال:
در این گزارش، مشکلات را براساس ریشه این نشانهها بررسی میکنیم و توضیح میدهیم که چرا اسکرامبان میتواند، اگر به درستی به کار رود، به حل مشکلات اساسی کمک کند.
«اسکرام» چارچوبی برای توسعه، تحویل و نگهداری محصولات پیچیده است. اسکرام توسط جف سادرلند (Jeff Sutherland) و کن شووبر (Ken Schwaber) ایجاد شد، و به وضوح متداولترین رویکرد چابک است که امروزه توسط تیمها به کار گرفته میشود. تیمها، اسکرام را برای مدیریت کار در پروژههای پیچیده و تحویل محصولات ارزشمند به افرادی که به آنها نیاز دارند، به کار میگیرند.
«کانبان» روشی چابک برای بهبود فرایند است، برپایهی ایدهها و تکنیکهای متحولکننده «تولید ناب» (Lean manufacturing) است که در شرکت تویوتا در دهه 1950 تا 1960 ایجاد شد، و توسط دیوید جی اندرسون (David J. Anderson) در کوربیس (Corbis) و مایکروسافت در اوایل دهه 2000 برای توسعه نرمافزار اقتباس شد. اندرسون در سال 2010 راهنمای معتبر و کاملی را برای کانبان در توسعه نرمافزار منتشر کرد.
اولین قدم برای درک اسکرامبان، بازنگری عناصر اصلی اسکرام و کانبان و همچنین بررسی چگونگی استفاده تیمها از این عناصر برای تحویل محصول و بهبود فرایند است.
همانطور که قبلا اشاره شد، اسکرام متداولترین چارچوب چابک است، با وجود اینکه بیش از 70 درصد تیمهای چابک از حداقل عناصر آن استفاده میکنند. اگرچه تیمها اسکرام را به طور متفاوتی پیادهسازی میکنند، اما اکثرا بر مبنای چارچوبی هستند که در «راهنمای اسکرام» مشخص شده است و شامل عناصر زیر است:
«سه نقش اصلی در یک پروژه اسکرام وجود دارد: مالک محصول، استاد اسکرام، و تیم توسعه».
«مالک محصول با تیم کار میکند تا بکلاگ محصولِ متشکل از ویژگیها و نیازمندیهایی که باید ساخته شوند را نگهداری و اولویتبندی کند».
«نرمافزار با استفاده از تکرارهای زمانثابت (Time-boxed iterations) به نام اسپرینت ساخته میشود. در شروع هر اسپرینت، تیم برنامهریزی اسپرینت انجام میدهد تا مشخص کند که کدام ویژگیهای داخل بکلاگ باید ساخته شوند. این بکلاگ اسپرینت نامیده میشود، و تیم در طول اسپرینت برای ساختن تمام ویژگیهای درون آن کار میکند».
«هر روز، تیم یک جلسه رو در روی کوتاه به نام اسکرام روزانه برگزار میکند تا یکدیگر را از پیشرفت ایجاد شده آگاه کنند، و درباره موانع پیشرو بحث کنند. هر شخص به سه سوال پاسخ میدهد: از آخرین اسکرام روزانه تاکنون چه کاری انجام دادهام؟ چه کاری تا اسکرام روزانه بعدی انجام میدهم؟ چه موانعی بر سر راهم وجود دارد؟»
«استاد اسکرام پیشرفت پروژه را از طریق همکاری با تیم حفظ میکند تا بر موانعی که در گذشته شناسایی و درخواست کمک کردهاند فائق آیند. در بازنگری اسپرینت، نرمافزار قابل استفاده به مالک محصول و ذینفعان در پایان اسپرینت نمایش داده میشود، و تیم یک بازاندیشی برگزار میکند تا درسهایی که آموختهاند را مشخص کنند، طوریکه میتواند روش اجرای اسپرینتها و ساخت نرمافزار را در آینده بهبود دهد» [1].
قواعد اسکرام پیرامون نظریه «کنترل فرایند تجربی» (Empirical process control) طراحی شده است، که در قسمت «تئوری اسکرام» از «راهنمای اسکرام» با تاکید توصیف شده است که «دانش از تجربه میآید و تصمیمها براساس آنچه میدانیم گرفته میشود». به عبارت دیگر، تیمها دائما درباره پروژههای خود تصمیماتی میگیرند؛ در اسکرام، این تصمیمها براساس «دانش واقعی» هستند و تنها توسط افرادی که در تیم با هم کار میکنند بروز میکند تا تجربیات کسب شده از پروژه را به اشتراک بگذارند تا حقایق واقعی تاثیرگذار بر آن تصمیمها را درک کنند.
در اسکرام، چرخههای روزانه و چرخههایی به طول اسپرینت، حلقههای بازخوردِ شفافیت (یا قابل مشاهده)، بازرسی و تطبیق را پیادهسازی میکنند. برای مثال، اعضای تیم در اسکرامِ روزانه بهطور شفاف درباره کارشان بحث میکنند تا برای بقیه تیم شفافیت ایجاد شود. این جلسه به عنوان بازرسی دورهای برنامه به کار میرود. اگر عضوی از تیم مشکل بالقوهای که مانع دستیابی به اهداف میباشد را کشف کند، تیم با بحث درباره این مشکل آن را برطرف کرده (معمولا در جلسه بعدی، نه طی اسکرام روزانه) و برنامه را اصلاح میکند.
هر ترکیب معناداری از اسکرام و هر روش چابک دیگر «باید کنترل فرایند تجربی» را شامل شود. بنابراین، هر چند پیادهسازیهای اسکرامبان اغلب از تیمی به تیم دیگر متفاوت است، اما همه آنها شامل کنترل فرایند تجربی هستند، زیرا آنها به طور خاص با روشی که هر تیم محصولات را توسعه میدهد تطبیق پیدا میکنند. آنها کنترل فرایند تجربی را یا با حفظ تجربههای اسکرام نظیر اسپرینتها و اسکرامهای روزانه که چرخه شفافیت-بازرسی-تطبیق را پیادهسازی میکنند، یا با جایگزین کردن آنها با سایر تجربههایی که به همان اندازه موثر هستند.
بسیاری از تیمهای اسکرام تجربههایی اسکرام را که بهطور گسترده پذیرفته شدهاند (Generally Accepted Scrum Practices) انتخاب میکنند، اصطلاح GASP معرفی شده توسط مایک کوهن (Mike Cohn) به منظور توصیف تجربههایی است که بهطور رسمی بخشی از اسکرام نیستند اما توسط بسیاری از تیمهای اسکرام پذیرفته شده و به کار گرفته میشوند. دو مورد از رایجترین تجربههایی که بهطور گسترده پذیرفته شدهاند تابلوهای وظیفه (Task boards) و داستانهای کاربر هستند.
«داستان کاربر» توصیف شیوهی خاصی است که یک کاربر از نرمافزار استفاده میکند، و تیمهای اسکرام آنها را اغلب برای توصیف قلمهای بکلاگ استفاده میکنند. بسیاری از تیمها داستانهای خودشان را به شکل خاصی مینویسند که توسط مایک کوهن در کتاب «به کارگیری داستانهای کاربر» معرفی شده است: بهعنوان <نوع کاربر>، من میخواهم <اقدام خاصی که انجام میدهم> تا اینکه <چیزی که میخواهم به عنوان نتیجه رخ دهد>. تیمهای اسکرام معمولا داستانهای بزرگتر را به داستانهای کوچکتر میشکنند تا هر داستان یک ویژگی تجزیهناپذیر و کمینهای را نشان دهد که برای کاربران و ذینفعان با ارزش است. بسیاری از تیمهای اسکرامبان داستانهای کاربر را دقیقا به این شیوه به کار میگیرند.
یک «تابلو وظیفه»، مانند آنچه که شکل 1 نشان میدهد، یک تابلو الکترونیکی یا فیزیکی است، که بهطور معمول به سه ستون با برچسب «آماده انجام»، «در حال انجام»، و «انجام شده» تقسیم شده است. در شروع اسپرینت، اعضای تیم یک جلسه برنامهریزی اسپرینت برگزار میکنند تا داستانهای کاربر را برای قرار گرفتن در اسپرینت انتخاب کنند و آنها را به وظیفهها بشکنند. هر وظیفه به ستون «آماده انجام» در تابلو وظیفه اضافه میشود. هنگامیکه یک عضو تیم، کار روی وظیفه را شروع میکند، آن وظیفه به ستون در «حال انجام» منتقل میشود، و هنگامیکه کار تکمیل شد، آن وظیفه به ستون «انجام شده» انتقال مییابد. اعضای تیم، ذینفعان و هر شخص دیگری که به پروژه علاقهمند است تابلو وظیفه را برای بهدست آوردن خلاصهای سریع و تصویری از وضعیت اسپرینت استفاده میکند. تیمهای اسکرامبان معمولا تابلوهایی را به کار میگیرند که شبیه اما متفاوت از تابلوهای وظیفه هستند. این تفاوتها را در ادامهی گزارش مورد بحث قرار میدهیم.
شکل 1: مثالی از تابلو وظیفه الکترونیکی با استفاده از جیرا (منبع: اطلسین)
مترجم: وحیده بانیگل
ویراستار: علیرضا قاقالو
منبع: کتاب اسکرامبان چیست؟
نویسنده: آندرو استلمن
برای مطالعه قسمت دوم مقاله اینجا کلیک کنید.
[1] یادگیری چابک نوشته استلمن (Stellman) و گرین (Greene)