اسکرام چیست؟ — فراتر از "جلسه صبحگاهی"
اگر در صنعت نرمافزار کار میکنید، قطعاً اسم اسکرام (Scrum) را شنیدهاید. اما اسکرام بسیار فراتر از "جلسات روزانه ۱۵ دقیقهای" است که بسیاری از شرکتهای ایرانی به اشتباه آن را "اسکرام" مینامند. اسکرام یک فریمورک چابک (Agile Framework) برای مدیریت کارهای پیچیده است که اولین بار در سال ۱۹۹۵ توسط جف ساترلند و کن شوابر معرفی شد. نام "اسکرام" از اصطلاح راگبی گرفته شده — جایی که تیم برای پیشبرد توپ با هم متحد میشوند. در این مقاله، اسکرام واقعی را از پایه تا جزئیات کامل یاد میگیرید.
سه رکن اسکرام — شفافیت، بازبینی، تطبیق
اسکرام بر سه پایه استوار است: شفافیت (Transparency): همه چیز برای همه قابل مشاهده است. Backlog، پیشرفت، موانع — همه visible هستند. هیچ چیز پنهان نیست. بازبینی (Inspection): تیم دائماً فرآیند و محصول را بررسی میکند. وضعیت فعلی چیست؟ آیا در مسیر درست هستیم؟ تطبیق (Adaptation): اگر در بازبینی مشکلی دیدیم، فوراً تطبیق پیدا میکنیم. منتظر پایان پروژه نمیمانیم.
سه رول (نقش) در اسکرام
۱. Product Owner (مالک محصول)
PO یک نفر است (نه یک کمیته) که مسئول بیشینه کردن ارزش محصول است. وظایف PO: مدیریت Product Backlog (لیست اولویتبندیشده نیازمندیها)، تعیین اولویت آیتمها (چه چیزی زودتر ساخته شود؟)، پاسخگویی به سوالات تیم درباره نیازمندیها، پذیرش یا رد کار انجامشده. PO باید power تصمیمگیری داشته باشد. بدترین حالت: PO ای که برای هر تصمیم باید از مدیربالادستی اجازه بگیرد.
۲. Scrum Master (استاد اسکرام)
SM مدیر تیم نیست! SM یک تسهیلگر (Facilitator) و مربی (Coach) است که: به تیم کمک میکند اسکرام را درست اجرا کند، موانع (Impediments) را از سر راه تیم برمیدارد، از تیم در برابر مزاحمتهای خارجی محافظت میکند، جلسات را تسهیل میکند (اما تصمیمگیرنده نیست). SM مثل روغن موتور است — دیده نمیشود اما بدون آن همه چیز قفل میکند.
۳. Developers (توسعهدهندگان)
در اسکرام، "توسعهدهنده" فقط برنامهنویس نیست — هر کسی که کار واقعی ساخت محصول را انجام میدهد: برنامهنویسان، طراحان، تستکنندگان، تحلیلگران، و هر نقش فنی دیگر. تیم توسعه خودسازمانده (Self-Organizing) است — هیچکس از بیرون به آنها نمیگوید چطور کار کنند. Cross-Functional است — تیم همه مهارتهای لازم برای تحویل Increment را دارد و به افراد خارج از تیم وابسته نیست. اندازه ایدهآل: ۳ تا ۹ نفر (قانون "دو پیتزا" — تیم نباید بزرگتر از آن باشد که با دو پیتزا سیر شود).
رویدادهای اسکرام (Scrum Events) — ضربان قلب اسپرینت
Sprint (اسپرینت)
اسپرینت قلب تپنده اسکرام است: یک بازه زمانی ثابت (Timebox) حداکثر یک ماهه که در آن یک نسخه قابل استفاده (Increment) از محصول ساخته میشود. طول اسپرینت معمولاً ۲ هفته (محبوبترین) یا ۴ هفته است. طول اسپرینت در طول پروژه ثابت میماند (مثلاً همیشه ۲ هفته). اسپرینت جدید بلافاصله بعد از پایان اسپرینت قبلی شروع میشود — بدون وقفه. در پایان هر اسپرینت، یک Increment "Done" (انجامشده) تحویل داده میشود که قابل ارائه به مشتری است.
Sprint Planning (برنامهریزی اسپرینت)
در ابتدای هر اسپرینت، تیم جلسه برنامهریزی دارد (حداکثر ۸ ساعت برای اسپرینت یکماهه). دو سوال اصلی: چه چیزی در این اسپرینت تحویل داده میشود؟ (تیم آیتمهایی از Product Backlog را انتخاب میکند). چطور این کار انجام میشود؟ (تیم یک برنامه اجرایی برای هر آیتم میریزد). خروجی: Sprint Backlog (لیست آیتمهای انتخابشده + برنامه اجرایی) و Sprint Goal (هدف اسپرینت — یک جمله که میگوید "چرا این اسپرینت را انجام میدهیم").
Daily Scrum (جلسه روزانه)
یک جلسه ۱۵ دقیقهای هر روز در همان ساعت و همان مکان. فقط برای Developers (PO و SM میتوانند حضور داشته باشند اما صحبت نمیکنند مگر اینکه خودشان Developer باشند). سه سوال سنتی: دیروز چه کاری انجام دادم؟ امروز چه کاری انجام میدهم؟ چه مانعی سر راه من هست؟ Daily Scrum یک جلسه گزارشدهی به مدیر نیست — یک جلسه هماهنگی بین اعضای تیم است.
Sprint Review (بازبینی اسپرینت)
در پایان اسپرینت، تیم محصول ساختهشده را به ذینفعان نشان میدهد (Demo). حداکثر ۴ ساعت برای اسپرینت یکماهه. ذینفعان بازخورد میدهند. PO وضعیت Product Backlog را بهروزرسانی میکند. این جلسه ارائه است، نه گزارش! تیم محصول واقعی را نشان میدهد، نه اسلاید پاورپوینت.
Sprint Retrospective (بازاندیشی اسپرینت)
آخرین رویداد اسپرینت (حداکثر ۳ ساعت). تیم به فرآیند خود نگاه میکند و میگوید: چه چیزی خوب کار کرد؟ چه چیزی میتواند بهتر شود؟ چه کاری را در اسپرینت بعدی متفاوت انجام دهیم؟ خروجی: حداقل یک actionable improvement برای اسپرینت بعدی.
آرتیفکتهای اسکرام (Scrum Artifacts)
- Product Backlog: لیست زنده و همیشه در حال تغییر از تمام نیازمندیهای محصول. PO مسئول محتوا و اولویتبندی آن است. آیتمها معمولاً به صورت User Story نوشته میشوند: "به عنوان [نقش]، میخواهم [ویژگی] را داشته باشم تا [نفع] ببرم."
- Sprint Backlog: زیرمجموعهای از Product Backlog که برای اسپرینت جاری انتخاب شده + یک برنامه اجرایی.
- Increment: مجموع تمام آیتمهای Product Backlog که در اسپرینت جاری و تمام اسپرینتهای قبلی تکمیل شدهاند. باید "Done" باشد — یعنی قابل استفاده و مطابق با Definition of Done تیم.
Definition of Done (DoD) — تعریف "انجام شده"
DoD یک توافق رسمی در تیم است که مشخص میکند یک آیتم چه زمانی "واقعاً تمام شده" محسوب میشود. مثال DoD برای یک User Story: کد نوشته و review شده باشد، Unit Test ها نوشته و pass شده باشند، در محیط staging تست شده باشد، مستندات بهروزرسانی شده باشد، PO آن را پذیرفته باشد. بدون DoD، "انجام شده" یک مفهوم مبهم است و هرکس تعریف خودش را دارد.
اسکرام در مقابل گانت چارت — دشمن یا مکمل؟
اسکرام و گانت چارت ذاتاً متفاوتند: اسکرام بر انعطافپذیری و تغییر مداوم تأکید دارد، در حالی که گانت چارت بر برنامهریزی دقیق از پیش. اما میتوانند مکمل باشند: سطح Release: از گانت چارت برای Roadmap محصول (اپیکها و رلیزهای ۳-۶ ماهه) استفاده کنید. سطح Sprint: از اسکرام (Scrum Board) برای مدیریت روزانه در اسپرینت استفاده کنید. سطح Portfolio: از گانت چارت برای نمایش وضعیت چند محصول به مدیریت ارشد استفاده کنید. در گانت چارت فارسی ganttchart.ir میتوانید اسپرینتها را به عنوان Summary Task تعریف کنید و User Story ها را به عنوان زیرفعالیت.
اشتباهات رایج در پیادهسازی اسکرام در ایران
- تبدیل Daily Scrum به جلسه گزارشدهی به مدیر. مدیر پروژه سنتی نقش Scrum Master را به عهده میگیرد و از همه گزارش میخواهد. این ضد اسکرام است.
- Product Owner بدون قدرت. PO باید بتواند تصمیم نهایی را بگیرد، نه اینکه برای هر اولویتبندی از مدیرعامل اجازه بگیرد.
- اسپرینتهای بدون Increment قابل تحویل. در پایان اسپرینت باید محصول قابل استفاده (Potentially Shippable) تحویل داده شود، نه صرفاً "طراحی انجام شد."
- حذف Retrospective به دلیل "کمبود وقت". Retrospective مهمترین جلسه برای بهبود مستمر است. حذف آن یعنی تیم هیچوقت بهتر نمیشود.
- تیمهای خیلی بزرگ. تیم اسکرام حداکثر ۹ نفر. تیمهای بزرگتر باید به چند تیم تقسیم شوند (Scrum of Scrums).
جمعبندی
اسکرام یک فریمورک ساده اما عمیق است. سادگی ظاهری آن (فقط ۳ رول، ۵ رویداد و ۳ آرتیفکت) ممکن است گولزننده باشد — پیادهسازی درست اسکرام نیاز به تغییر فرهنگی عمیق در سازمان دارد. اگر به درستی اجرا شود، اسکرام میتواند بهرهوری تیم را ۲۰۰-۳۰۰٪ افزایش دهد (طبق گزارش Scrum Alliance). اما اگر صرفاً "اسم جلسات را عوض کنید" بدون تغییر در فرهنگ و قدرتدهی به تیم، اسکرام فقط یک برچسب خواهد بود.