اسکرام (Scrum) چیست؟ چه نقشی در مدیریت پروژه چابک دارد؟
مدتها است که مدیریت پروژه چابک (Agile) در توسعه محصول و کنترل پروژه های نرم افزاری و یا حتی غیر نرم افزاری جایگاه ویژهای یافته است. قبلاً به ماهیت مدیریت پروژه چابک و معرفی روش اسکرام (Scrum) و روش کانبان (Kanban) بهعنوان چارچوبهای پیادهسازی آن پرداختهایم. در ادامه، قصد داریم بر متدولوژی اسکرام (یا به تعبیر دیگر: چارچوب اسکرام) متمرکز شویم و ادبیات آن را بررسی کنیم.
در ابتدا به جای آنکه بگوییم اسکرام چه چیزی است باید به این اشاره کنیم اسکرام چه چیزی نیست! یک اشتباه رایج این است که میگویند: چابک یعنی اسکرام! درحالی که در واقع اسکرام، چابک است اما تنها روش اصولی پیادهسازی مدیریت چابک نیست. اسکرام یکی از انواع رویکردهای چابک برای توسعه محصول است. این در حالی است که روشهای دیگر مثل Extreme Programming (XP)، کریستال (Crystal)، توسعه ویژگیمحور (Feature Driven Development)، کانبان (Kanban)، روش توسعه سیستمهای پویا (DSDM) و … نیز وجود دارند. همه این روشها به مرامنامه چابک و اصول مرتبط با آن پایبند هستند. یک استعاره مفید میتواند این باشد که فرض کنید چابک یک بستنی است و انواع متدها نظیر Scrum، XP، Crystal و غیره طعمهای مختلفی مانند شکلاتی، وانیلی، توتفرنگی و .. هستند. همه آنها، چابک (یا همان بستنی!) هستند، میتوانند خوب باشند و همچنین بهصورت ترکیبی بهکار روند.
معنی لغوی اسکرام (Scrum)
واژه «اسکرام» یا Scrum معنی لغوی خاصی ندارد اما اصطلاحاً شروع مجدد در بازی راگبی را اسکرام مینامند. در واقع هر وقت به هر دلیلی – مثل خطا یا بیرون افتادن توپ – بازی متوقف شود با اسکرام دوباره شروع انجام میشود.
متدولوژی اسکرام و کنترل پروژه
در دنیای مدیریت و کنترل پروژه، اسکرام چارچوبی تکرارپذیر (Iterative) است. تمرکز آن – به عنوان یک چارچوب مدیریت پروژه چابک – بر استفاده از فرآیند تجربی است که اجازه میدهد تیمها سریع، موثر و کارآمد به تغییرات پاسخ دهند. روشهای سنتی مدیریت پروژه نیازمندیها و الزامات را در هر تلاش معیّن و ثابت درنظر میگیرند تا زمان و هزینه را کنترل کنند اما برعکس، اسکرام زمان و هزینه را در هر تلاش معیّن درنظر میگیرد تا نیازمندیها و احتیاجات را کنترل کند. این کار با استفاده از بستههای زمانی، جلسات مشارکتی، بکلاگ محصول ازپیشتعیینشده و چرخههای مکرر بازخورد صورت میگیرد.

کلیدواژههای اسکرام
اگرچه درک متدولوژی اسکرام راحت است و پیچیدگی زیادی ندارد، اما واژهها و عبارتهای تخصصی مخصوص به خود را دارا است. به همین دلیل، برای درک بهتر این متدولوژی و اجرای آن نیاز داریم که تعریف برخی کلیدواژهها و مفاهیم آن را تشریح کنیم.
داستان کاربر (User Story)
داستان کاربر یا روایت کاربر (User Story) قابلیتی است که برای کاربر نهایی قابل مشاهده است و به تمامی ویژگیها و قابلیتهایی که موردانتظار مشتریان یا ذینفعان محصول بوده و برای مالک محصول توصیف میگردد، اطلاق میشود. در واقع میتوان گفت: داستان کاربر خرده توصیفهایی ساده، شفاف و کوتاه از عملکرد یک سیستم است که برای کاربر نهایی یا خریدار محصول با ارزش شناخته میشود. داستانهای کاربر دارای سه محور توصیفی مهم و ضروری هستند:
- کاربر، کنشگر یا اپراتور
- کنش سیستمی مطلوب (کاری که انجام میشود)
- قابلیت، ارزش، نتیجه یا علت کنش
مثالهایی از User Story را در اینجا مرور میکنیم:
- به عنوان یک کاربر / مسافر بتوانم اتاق یک هتل را رزرو کنم تا در تعطیلات از آن استفاده کنم.
- به عنوان کاربر بتوانم لیست کاملی از نام، نشانی و شماره تلفن هتلها را مشاهده کنم تا از آنها برای برنامهریزی سفر استفاده کنم.
بکلاگ محصول (Product Backlog)
بک لاگ محصول (Product Backlog) ویژگیهایی است که از محصول در حال توسعه یا تولید انتظار میرود. این موارد از طریق مالک محصول در جلسه مشترک با حضور رهبر اسکرام و تیم تولید و توسعه به آنها انتقال داده میشود. در واقع میتوان گفت یک لیست رتبهبندی شده از هر آن چیزی است که نیاز است در محصول گنجانده شود و تنها منبع نیازمندیها جهت هر تغییری در محصول تلقی میشود. اگر در فرآیند مدیریت پروژه کلاسیک با ساختار شکست کار (WBS) آشنا هستید، پیشنهاد میکنیم مقایسه بکلاگ محصول و WBS را در اینجا مطالعه کنید.
اسپرینت (Sprint)
اسپرینت (Sprint) هسته اصلی اسکرام را تشکیل میدهد و به دورههای زمانی تکرار شونده در فرآیند اجرای متد اسکرام گفته میشود. در واقع هر اسپرینت یک دوره زمانی است که تیم تولید و توسعه نسبت به انجام برخی داستان های کاربر (User Stories) که در بکلاگ محصول (Product Backlog) قرار گرفته، متعهد شده است. معمولاً دورههای زمانی اسپرینت بین ۱ تا ۴ هفته است و بنا به ظرفیت و سرعت تیم و میزان زمان لازم جهت اجرای کارهای تعیین شده قابل تنظیم است.
بکلاگ اسپرینت (Sprint Backlog)
بکلاگ اسپرینت (Sprint Backlog) به کارهایی که در طول یک اسپرینت باید انجام داده شود و به عنوان خروجیهای اسپرینت و بخشی از ویژگیهای محصول نهایی هستند، گفته میشود.
جلسات سرپایی (Stand up Meeting)
عبارت Stand-up Meeting به جلساتی اشاره دارد که روزانه با حضور اعضای تیم تولید و توسعه و اسکرام مستر به مدت حداکثر ۱۵ دقیقه به منظور بررسی وضعیت پیشرفت فعالیتهای هر اسپرینت تشکیل میشود (حضور مالک محصول در این جلسات اختیاری است).
برد اسکرام (Scrum Board)
در تمام مراحل اسکرام باید یک بُرد فیزیکی یا دیجیتالی در دسترس باشد که اعضای تیم بتوانند کارهای خود را روی آن دنبال کنند و بدانند هر یک چه وظایفی دارند و اکنون در چه مرحلهای هستند. در جلسات Stand-up سعی میشود مطالب روی برد بهروزرسانی شود و یادداشتهای روز گذشته با یادداشتهای امروز جایگزین گردند.

تیم اسکرام
زمانی که شما قابلیت پذیرش متدولوژی اسکرام را در تیم خود مشاهده نمایید، میتوانید این متدولوژی را جهت مدیریت به سبک چابک در سازمان خود بکار گیرید. جهت اجرای هر فرآیند نقشهایی وجود دارد که این نقشها وظیفه اجرای فعالیتهای مربوط به آن فرآیند را به عهده دارند. یک تیم اسکرام تشکیل شده از سه نقش است:
- رهبر اسکرام یا اسکرام مسترم
- تیم تولید و توسعه
- مالک محصول
هر یک از این نقشها دارای وظایفی میباشند که به توضیح آن میپردازیم.
رهبر اسکرام یا اسکرام مستر (Scrum Master) کیست؟
رهبر اسکرام یا اسکرام مستر (Scrum Master) فردی است که با نظارت و پیگیری روند اجرایی فرایند اسکرام، سعی بر آن دارد که تیم تولید و توسعه از مسیر خود خارج نگردد. به عبارت دیگر، ویژگیهایی از محصول که به عنوان خروجی اسپرینت باید ارائه شوند (Sprint Backlog) و تیم پروژه نسبت به تحویل آنها، طی دورههای زمانی مشخص (Sprint) متعهد شده است، قابل تحویل و ارائه باشند.
از جمله وظایف اصلی رهبر اسکرام میتوان به موارد زیر اشاره نمود.
- آموزش و پیاده سازی فرایند اسکرام و نظارت بر روند آن
- ساماندهی و تسهیل جلسات اسکرام
- نظارت بر کارایی تیم
- بهبود خلاقیت و کارایی تیم
- بهبود فرایند اسکرام
- حذف موانع تأثیرگذار در کار تیم و روند پروژه
- آموزش و نظارت بر مالک محصول در جهت انجام درست مسئولیتها
- کمک به مالک محصول در جهت انتقال درست ویژگیهای مورد انتظار از محصول به تیم تولید و توسعه جهت ایجاد بک لاگ محصول (Product Backlog)
- تعریف مدت زمان یک اسپرینت براساس نتایج حاصل از تحلیل نیازمندیها که توسط تیم تولید و توسعه صورت میگیرد
- هدایت تیم در راستای رعایت تمام زمانبندیهای فرایند
- کمک به ایجاد و تغییر ساختار تیم با شکل و سایز مناسب
- حفظ نظم تیم در سازمان
مالک محصول (Product Owner) در متدولوژی اسکرام کیست؟
مالک یا صاحب محصول (Product Owner) کلیدیترین سهامدار پروژه است که معمولا یک مشتری داخلی یا خارجی، یا یک نماینده از طرف مشتری است. تنها صاحب محصول است که میتواند نقشه کلی ماموریت و چشمانداز محصولی را که تیم در حال ساخت آن است، مشخص نماید. از جمله وظایف اصلی مالک محصول میتوان به موارد زیر اشاره نمود.
- ارتباط با مشتری جهت شناسایی درست نیازمندی ها
- تحلیل نیازمندیها جهت ارائه به تیم تولید و توسعه
- ارائه نیازمندیها همراه با اولویتهای آنها از نگاه مشتریان به تیم تولید و توسعه
- توضیح واضح و بدون ابهام نیازمندیها برای تیم تولید و توسعه
- مشخص نمودن هدف در ابتدای هر اسپرینت و نسخههای محصول
- کمک به رهبر اسکرام در جهت سازماندهی جلسات برنامه ریزی و مرور اسپرینت
- شرکت در تمامی جلسات اسکرام (شرکت در جلسات روزانه اختیاری است)
- گرفتن فیدبک از مشتریان و ذینفعان به طور مداوم
- مدیریت نقشه راه محصول
تیم تولید و توسعه (Develop Team) چه نقشی در اسکرام دارند؟
تیم تولید و توسعه (Develop Team) یک گروه خودسازمانده است که از افرادی با نقشهای مختلف تشکیل شده است. این اعضا موظف به برنامه ریزی، اجرا و تحویل بخشهایی از ویژگیهای محصول – که در هر اسپرینت موظف به تولید و تحویل آنها شدهاند – هستند. از جمله برخی ویژگیهای تیم تولید و توسعه و وظایف اصلی آنها میتوان به موارد زیر اشاره نمود.
ویژگیهای تیم تولید و توسعه اسکرام
- هریک از اعضای این تیم هیچ عنوان و برتری نسبت به سایر اعضا ندارد.
- اعضای این تیم در چارچوب قوانین اسکرام، به تولید آنچه صاحب پروژه درخواست کرده است، میپردازند.
- تعداد اعضای تیم تولید و توسعه، بستگی به پروژه دارد، اما معمولاً اعضای این تیم را ۶ تا ۹ نفر تشکیل میدهند.
- تعداد اعضای تیم تولید و توسعه نَه باید آنقدر کم باشد که همکاری گروهی و کار تیمی بیمعنا شود و نه آنقدر زیاد باشد که هماهنگی بین اعضای تیم تبدیل به امری دشوار و وقتگیر گردد.
وظایف تیم تولید و توسعه در متدولوژی اسکرام
ساخت بکلاگ محصول (Product Backlog)
تیم تولید و توسعه با مالک محصول جلساتی برگزار میکند که خروجی این جلسات دلیل تولید محصول و اینکه این محصول قرار است پاسخگوی چه نیازهایی از مشتری باشد، است. بنابراین، تهیه لیست ویژگیهای محصول (Product Backlog) براساس نتایج جلسات شناخت نیازمندیهای محصول با حضور مالک محصول انجام میشود. از سوی دیگر، اولویتبندی ویژگیهای موردانتظار از محصول براساس نتایج جلسات شناخت نیازمندیهای محصول با حضور مالک محصول و رهبر اسکرام صورت میگیرد.
برنامه ریزی برای هر اسپرینت
پس از شناسایی و اولویت بندی ویژگیهای محصول، هر یک از اسپرینتها از منظر بازه زمانی و اینکه چه ویژگیهایی از محصول در هر اسپرینت قابل تحویل است، برنامه ریزی میشود.
اجرای هر اسپرینت
اعضای تیم شروع به اجرای وظایف خویش میکنند. این وظایف براساس بخشهایی از ویژگیهای محصول که در هر اسپرینت باید تحویل داده شود، تعیین شده است. در هر اسپرینت اعضای تیم هر روز با حضور رهبر اسکرام جلساتی برگزار میکنند که به Stand-up Meeting معروف است. در این جلسات پرسشهای زیر مطرح میگردد:
- چه کارهایی را دیروز انجام داده اید؟
- امروز قصد انجام چه کارهایی را دارید؟
- چه مشکلاتی بر سر راه اجرای کارهای شماست؟
در انتهای هر اسپرینت تیم تولید و توسعه دمویی از ویژگیهای محصول که اجرا شده است را برای مالک محصول یا سایر ذینفعان پروژه برگزار مینماید. این یکی از مهمترین مراحل هر اسپرینت است، زیرا تیم میتواند به صورت کلی ارزیابی نماید که چه کارهایی بهدرستی صورت گرفته است و چه کارهایی درست انجام نشده که باید به عنوان ورودی جهت اجرا در سایر اسپرینتها تعریف شود.
نرم افزار اسکرام، بستری برای جریان چابک
در پایان باید به اهمیت ابزار پیادهسازی اسکرام اشاره کنیم. اگر بتوان یک بسته نرمافزاری کارا و موثر در حوزه مدیریت تیم چابک و کنترل پروژه چابک را در میان تیم پروژه به جریان انداخت، یکپارچگی تیم پروژه و مدیریت محصول در یک بستر پایدار شکل خواهد گرفت. در صورتی که این نرم افزار بتواند با اهداف و مفاهیم روش اسکرام نظیر بکلاگ محصول، نمودار Burndown، برد اسکرام و … سازگار باشد، تیم توسعه، اسکرام مستر و مالک محصول همواره میتوانند به گزارشهای بهروز و گامهای پروژه دسترسی داشته باشند. در همین زمینه، قبلا پیرامون اهمیت ابزار پیادهسازی روش اسکرام نوشتهایم و نرم افزار مدیریت پروژه آنلاین سمین را با تاکید بر ماژول مدیریت چابک آن معرفی کردهایم. به شما هم توصیه میکنیم در صورتی که متدولوژی اسکرام را در تیم خود یا پروژههای خود اجرا میکنید، مروری بر امکانات مدیریت چابک نرم افزار سمین داشته باشید.