اسپرینت یک دوره زمانی کوتاه و محدود فرایند اسکرام است. به طور معمول دو الی چهار هفته طول میکشد، اما میتواند کوتاهتر یا طولانیتر باشد، همه چیز بسته به نیازهای پروژه است. در طول اسپرینت، تیم اسکرام با هم کار میکنند تا مجموعهای از شرح تقاضای کاربر (user story) را که توسط مالک محصول (product owner) اولویت بندی شدهاند، تکمیل کنند.
بنابراین اولین قدم یک اسپرینت را اولویت بندیهای مالک محصول مشخص میکند.
چرا اسپرینتها ضروری هستند؟
اسپرینتها در اسکرام ضروری هستند زیرا به تیم کمک میکند که حداکثر تمرکز و انرژی خود را همواره بر روی مهمترین کار قرار دهند. اسپرینتها همچنین به تیم کمک میکنند تا متمرکز و با انگیزه بمانند و ساز و کاری منظم برای تیم فراهم میکنند تا مدام بتوانند کار خود را بازرسی و اصلاح کنند.
اما تیم ها در طول اسپرینت چه کاری انجام می دهند؟ یک تیم در طول اسپرینت، به طور معمول این مراحل را دنبال میکند:
- برنامه ریزی اسپرینت (sprint planning): تیم برای برنامه ریزی اسپرینت و توافق بر روی هدف اسپرینت و مجموعه شرح تقاضای کاربر که در اسپرینت تکمیل خواهد شد، تشکیل جلسه میدهد (مجموعهی شرح تقاضای کاربر درواقع مجموعهی درخواستهاییست که به گونهای از سمت کاربر یک محصول معین شده و هدف تیم اسکرام تکمیل و یا گسترش محصول در راستای این تقاضای مشتریست). هنگامی که یک محصول آمادهی رفع تقاضای خاص کاربر میشود به اصطلاح آن را تکمیل شرح تقاضای کاربر میگوییم.
- اسکرام روزانه (daily scrum): تیم به طور روزانه و معمولا در ساعات معینی از روز تشکیل جلسه میدهد تا پیشرفت خود را بررسی کند و هرگونه مانع را شناسایی کند. تیم در طول جلسهی روزانهی خود به سه سوال کلیدی پاسخ میدهد:
- در طول روز قبل چه کارهایی در راستای پیشبرد اسپرینت انجام شد؟
- برای امروز چه کارهایی در دستور کار قرار دارد؟
- موانع کار برای پیشبرد این اسپرینت کدامند؟
با پاسخ به این سه سوال اساسی تیم به درک واضح و شفافی از سرعت و کیفیت پیشرفت کار میرسد، چرا که حالا هرکسی دقیقا میداند جایی که کار در مرحله قبل قرار داشت و جایی که احتمالا در مرحلهی بعد قرار خواهد داشت کجاست و چه موانعی میتواند سرعت و کیفیت کار ما را مختل کند.
- توسعه (development): در طی فرایند توسعه تیم روی تکمیل شرح تقاضای کاربر کار میکند و کار را طبق برنامه انجام میدهد.
- بازبینی اسپرینت (sprint review): تیم در انتهای اسپرینت، کار انجام شده را به مالک محصول (product owner) و ذیاثران محصول ارائه میدهد.
- بازنگری اسپرینت (sprint retrospective): در جلسهی بازنگری (یا به زبان سادهتر رِترو) تیم در مورد اسپرینت نظرات خود را بازتاب میدهد و راههایی برای بهبود فرآیند خود شناسایی میکند.
بایدها و نبایدهای اسپرینت
اما در طول اجرا و پیشبرد یک اسپرینت، تیمها باید چند قانون و جزئیات را رعایت کنند:
- طول مدت زمان اسپرینت باید ثابت باشد.
- هدف اسپرینت باید به توافق کل تیم برسد.
- در طول اجرای یک اسپرینت تیم فقط باید روی کار برنامه ریزی شده برای همان اسپرینت کار کند.
- تیم نباید عهده دار کاری بیشتر از مقدار کار معین شده برای اسپرینت باشد (یعنی تعهدی در قبال آن ندارد).
حالا با در نظر گرفتن تمام اینها متوجه خواهیم شد که اگر تیم اسکرام طبق اسپرینتها رو به جلو حرکت نکند چه اتفاقی میافتد. اگر تیم اسکرام طبق اسپرینتها پیش نرود، احتمالاً به سختی میتوانند تمرکز و انگیزه خود را حفظ کنند، چرا که اساس اسکرام مبتنی بر درخواستهای فراوان کاربرها یا ذیاثران متعدد یک نرم افزار است. شما در ابتدا باید بتوانید به خوبی این حجم بالای درخواستها را مدیریت و اولویت بندی کرده و سپس این درخواستها را با کمک تیم توسعه دهندهی خود تکمیل کنید و ارائه دهید. این کار به انعطاف و هماهنگی فوق العاده بالایی نیاز دارد و یک اسپرینت دقیقا برای غلبه به این چالشها طراحی شده و به کار بسته میشود.
عدم پیروی از اسپرینتها کل تیم را در خطر شکست و ناکامی در ارضای مهمترین هدف یعنی تکمیل تقاضای کاربر و کسب رضایت مشتری قرار میدهد.
فلسفه اصل وجود اسپرینت در اسکرام چیست؟
اما فلسفه اصل وجود اسپرینت در اسکرام چیست؟ چه نیازی به اسپرینتها داریم؟ فلسفه اصلی اسپرینت در یک پروژه اسکرام تحویل نرم افزاری (یا هر محصول) کارآمد و به طور منظم است. نیل به این اهداف با تقسیم کار به قطعات کوچک و قابل مدیریت که میتوانند در یک دوره زمانی کوتاه تکمیل شوند، حاصل میشود. اسپرینت همچنین به تیم فرصتی منظم برای بازرسی و اصلاح کار خود را میدهد، و تیم اطمینان حاصل میکند که همیشه در حال صرف کار و تمرکز بر روی مهمترین کار ممکن در حال حاضر است.
حالا بیایید با هم به سناریویی از شرکت هارولد اند هان توجه کنیم. شرکت هارولد اند هان پس از به کار بستن رویکردی آبشاری در توسعهی محصولی نرم افزاری متحمل شکست سنگینی شد. پس از این شکست اعضای هیئت مدیرهی شرکت تصمیم گرفتند که این بار لجبازی را کنار بگذارند و از روشهای به روزتری برای تولید و توسعهی محصول نرم افزاری خود استفاده کنند:
تیم برای جلسه برنامه ریزی اسپرینت جمع شده است. مالک محصول، Harold، مشتاق شروع پروژه است. او مدتی روی این ایده کار کرده است و بالاخره آماده است تا آن را به واقعیت تبدیل کند. تیم توسعه، به رهبری Hann، نیز هیجان زده است. تیم اولین بار است که با Scrum کار میکنند. مطمئن نیستند که میتوانند پروژه را به موقع و در بودجه تحویل دهند اما برای انجام دادن آن شدیدا مشتاق اند.
تیم با بحث در مورد لیست الزامات محصول (backlog) شروع میکند. لیست الزامات محصول درواقع یک لیست از همه ویژگیهایی است که مالک محصول میخواهد در نرم افزار ببیند. سپس تیم تخمین میزند که هر کدام از این آیتمهای داخل لیست که درواقع یک ویژگی نرم افزار هستند چقدر کار میبرد تا تکمیل شود. هنگامی که تیم یک تخمین از کل کار به دست میآورد، میتواند در مورد هدف اسپرینت توافق کنند. هدف اسپرینت یک هدف خاص، قابل اندازه گیری، قابل دستیابی، مرتبط و محدود به زمان برای اسپرینت است.
سپس تیم کار را به وظایف کوچکتر تقسیم میکند. این وظایف به اعضای تیم فردی سپرده میشوند. تیم همچنین هرگونه وابستگی بین وظایف مختلف را شناسایی میکند. به عنوان مثال، اگر یک کار به تکمیل کار دیگری بستگی دارد، تیم مطمئن میشود که این وظایف به ترتیب برنامه ریزی شدهاند.
در پایان جلسه برنامه ریزی اسپرینت، تیم به درک روشنی میرسد که باید چه کاری انجام دهد تا به هدف اسپرینت دست یابد. آنها همچنین از هرگونه خطرات یا چالشهای احتمالی که ممکن است با آنها مواجه شوند، آگاه هستند.
اسپیرینت شروع میشود و تیم شروع به کار میکند. آنها هر روز یکدیگر را در جلسات اسکرام روزانه ملاقات میکنند. در طول اسکرام، تیم پیشرفت خود را بررسی میکند و هرگونه مانع را شناسایی میکند. اسکرام مستر (Scrum master) که در اینجا Hann، نقش آن را به عهده دارد به تیم کمک میکند تا در مسیر خود باقی بماند و هرگونه مشکل را حل کند.
پیشنهاد مطالعه
اسکرام مستر کیست؟ نقش، وظایف و ویژگیهای اسکرام مستر
با پیشرفت اسپرینت، تیم ممکن است با برخی چالش های غیرمنتظره مواجه شود. مثلا، آنها ممکن است در میانهی کار متوجه بشوند که یک کار از آنچه در ابتدا فکر میکردند دشوارتر است. یا ممکن است تیم با مشکلات فنی مواجه شود. اگر این اتفاق بیفتد، تیم باید با هم کار کنند تا راه حلی پیدا کنند. اسکرام مستر میتواند به تیم در انجام این کار با تسهیل بحثها وایجاد ایدهها با طوفان فکری کمک کند.
در نهایت، تیم قادر است هدف اسپرینت را تکمیل کند. آنها یک نسخه کار از نرم افزار را به مالک محصول تحویل داده اند. مالک محصول از نتایج راضی است و تیم به خاطر دستاورد خود افتخار میکند.
در اینجا برخی از دیالوگ های احتمالی که ممکن است در طول اسپرینت رخ دهد:
Harold: من واقعاً از این پروژه هیجان زده هستم. من فکر میکنم پتانسیل زیادی برای موفقیت دارد.
Hann: ما هم هیجان زده هستیم. اولین بار است که با Scrum کار میکنیم و تردیدهای زیاد داریم. اما من دلم روشن است که میتوانیم پروژه را به موقع و در بودجه تحویل دهیم. این تیم تواناییاش را دارد.
اعضای تیم 1: من کمی نگران وظیفه ادغام سیستم پرداخت هستم. من قبلا این کار را انجام ندادهام.
اعضای تیم 2: نگران نباش، من کمکت میکنم. قبلا این کار را در پروژههای دانشگاه انجام دادهام. در طول مسیر به هر کمکی نیاز داشتی به من بگو.
اسکرام مستر: بیایید به کار نگاهی بیندازیم و ببینیم چه کاری باید انجام دهیم.
از طرفی دیگر اسکرام مستر میتواند به تیم در حل هرگونه مشکلی که با آن مواجه میشوند کمک کند:
- تسهیل بحث ها
- brainstorming ایدهها
- ارائه راهنمایی و پشتیبانی
- برداشتن موانع
با همکاری یکدیگر، تیم میتواند هرگونه چالشی را پشت سر بگذارد و محصولی موفق تحویل دهد. تنها چیزی که مهم است سرعت، هماهنگی، حفظ آرامش، تقویت روحیهی تیم و مدیریت چالشهای جدید است.
ضمن اینکه جهت برنامهریزی بهتر اسپرینت و همچنین پیشبرد بهتر آن، بهتر است از نرمافزارهای مدیریت تیم و پروژه استفاده نمود. به عنوان مثال ترلو یکی از رایجترین ابزارهای آنلاین برای چنین مقصودی است. میتوانید دوره رایگان آموزش ترلو را مشاهده نمایید.
دیدگاهتان را بنویسید