برنامهریزی اسپرینت یه جلسه توی متدولوژی اسکرام هست که داخلش مشخص میشه توی اسپرینت بعدی قراره چی تحویل داده بشه و چطور قراره به اون هدف برسیم.
در این مقاله، دیو وست، مدیرعامل Scrum.org، مراسم برنامهریزی اسپرینت رو همونطور که توی Scrum.org توضیح داده شده، بررسی میکنه. Scrum.org اسکرام رو طبق Scrum Guide آموزش میده که این راهنما بهعنوان راهنمای رسمی فریمورک اسکرام در دنیای اجایل شناخته میشه.
برنامهریزی اسپرینت چیه؟
برنامهریزی اسپرینت یک رویداد توی اسکرام هست که شروع اسپرینت رو مشخص میکنه. هدف این جلسه اینه که مشخص بشه توی اسپرینت بعدی چه چیزهایی میتونیم تحویل بدیم و چطور قراره این کار رو انجام بدیم. برنامهریزی اسپرینت بهصورت همکاری تیمی انجام میشه و همه اعضای تیم اسکرام توش دخیل هستن.
برخلاف ورزش، اسکرام به شما توصیه میکنه که همیشه در حال “اسپرینت” باشید تا بتونید نرمافزار عملیاتی تحویل بدید، در حالی که همزمان در حال یادگیری و بهبود هستید.
توی اسکرام، اسپرینت یه دوره زمانی مشخص هست که تمام کارها توش انجام میشه. اما قبل از اینکه بتونید شروع کنید، باید اسپرینت رو راه بندازید. شما باید تصمیم بگیرید که زمانباکس اسپرینت چقدر خواهد بود، هدف اسپرینت چی خواهد بود و از کجا شروع میکنید. جلسه برنامهریزی اسپرینت، با مشخص کردن دستور جلسه و تمرکز، اسپرینت رو شروع میکنه. اگه این کار به درستی انجام بشه، باعث میشه تیم انگیزه پیدا کنه، چالشهای مناسب داشته باشه و بتونه موفق بشه. برنامهریزی اسپرینت ضعیف میتونه تیم رو از مسیر خارج کنه و انتظارات غیرواقعی ایجاد کنه.
چی باید انجام بشه؟
مالک محصول هدف (یا همون goal) اسپرینت رو توضیح میده و مشخص میکنه کدوم موارد از بکلاگ به این هدف کمک میکنن. تیم اسکرام تصمیم میگیره که در اسپرینت بعدی چه کارهایی میتونه انجام بشه و چطور این کارها رو انجام بدن تا به هدف برسند.
چطور باید انجام بشه؟
تیم توسعه کارهایی که برای رسیدن به هدف اسپرینت لازمه رو برنامهریزی میکنه. در نهایت، برنامه اسپرینت نتیجه مذاکرهای بین تیم توسعه و مالک محصوله که براساس ارزش و تلاش تعیین میشه.
کی باید توی جلسه برنامهریزی باشه؟
برنامهریزی اسپرینت بدون مالک محصول و تیم توسعه امکانپذیر نیست. مالک محصول هدف رو براساس ارزشی که دنبال میکنه تعیین میکنه. تیم توسعه باید بفهمه که آیا میتونن این هدف رو تحویل بدن یا نه. اگر هر کدوم از این دو عضو از جلسه غایب باشه، برنامهریزی اسپرینت تقریباً غیرممکن میشه.
ورودیها (Inputs)
یه نقطه شروع عالی برای برنامهریزی اسپرینت، بکلاگ محصوله چون لیستی از مواردی که ممکنه بخشی از اسپرینت کنونی باشه رو فراهم میکنه. تیم باید به کارهای انجامشده توی اینکریمنت نگاه کنه و ظرفیت موجود رو هم در نظر بگیره.
خروجیها (Outputs)
مهمترین نتیجه جلسه برنامهریزی اسپرینت اینه که تیم بتونه هدف اسپرینت رو توضیح بده و مشخص کنه چطور میخواد به اون هدف برسد. این اطلاعات باید توی بکلاگ اسپرینت قابل مشاهده باشه.
آمادهسازی برای جلسه برنامهریزی اسپرینت
برای برگزاری یک جلسه برنامهریزی اسپرینت عالی، نیاز به کمی نظم و انضباط هست. مالک محصول باید آماده باشه و همزمان از تجربیات جلسه بازبینی اسپرینت قبلی، بازخوردهای ذینفعان و دیدگاه کلی برای محصول استفاده کنه تا فضای مناسب برای اسپرینت بعدی رو فراهم کنه. برای شفافیت، بکلاگ محصول باید بهروز و تصحیح شده باشه تا وضوح کافی رو ایجاد کنه. تصفیه بکلاگ یه رویداد اختیاری توی اسکرام هست، چون بعضی بکلاگها نیازی به این کار ندارن. اما برای بیشتر تیمها بهتره که قبل از برنامهریزی اسپرینت، تیم رو جمع کنن و بکلاگ رو مرور و تصحیح کنن.
نکته حرفهای:
اگر اسپرینت شما دو هفتهای هست، جلسه تصفیه بکلاگ رو وسط اسپرینت برگزار کنید. این کار خیلی خوبه چون به تیم این امکان رو میده که از روند اسپرینت فاصله بگیرن و به کارهای بعدی نگاه کنن. این نه تنها به آمادهسازی برای برنامهریزی اسپرینت کمک میکنه، بلکه دیدگاه متفاوتی از کارهای جاری به تیم میده.
تعیین محدودیت زمانی برای برنامهریزی اسپرینت
برنامهریزی اسپرینت باید محدود به حداکثر دو ساعت برای هر هفته از اسپرینت باشه. مثلا، جلسه برنامهریزی اسپرینت برای یک اسپرینت دو هفتهای نباید بیشتر از چهار ساعت طول بکشه. این مفهوم به نام “زمانبندی” یا timeboxing شناخته میشه، که یعنی برای انجام یک کار، حداکثر زمان تعیین میکنید، در اینجا برای برنامهریزی اسپرینت. اسکرام مستر مسئول اینه که مطمئن بشه جلسه در این زمانباکس انجام میشه و تیم این محدودیت زمانی رو درک کرده. اگر تیم قبل از پایان زمانباکس راضی بود، جلسه تموم میشه. زمانباکس یعنی حداکثر زمان مجاز؛ هیچ حداقل زمانی وجود نداره.
تمرکز بخش اول برنامهریزی اسپرینت روی هدف اسپرینت
در ابتدا، تمرکز برنامهریزی باید روی هدف اسپرینت باشه نه جزئیات بکلاگ. با تمرکز روی هدف به جای کارهایی که باید انجام بشه، میشه راهحلهای هوشمندانهتری برای رسیدن به اون هدف پیدا کرد.
تمرکز بر نتایج، نه کارها
توی برنامهریزی اسپرینت، خیلی راحت میشه غرق در جزئیات شد، مثل اینکه کدوم کار اول انجام بشه، کی باید اون رو انجام بده، و چقدر زمان میبره. برای کارهای پیچیده، اطلاعاتی که در ابتدا دارید ممکنه کم باشه و بیشترش هم بر اساس فرضیات هست. اسکرام یه فرآیند تجربی هست، یعنی نمیتونید از قبل برنامهریزی کنید، بلکه باید از طریق انجام کار یاد بگیرید و سپس اطلاعات رو به فرآیند برگردونید.
هدف اسپرینت سطح بالایی از هدف رو توصیف میکنه، اما آیتمهای بکلاگ هم میتونن به گونهای نوشته بشن که هدف مشخصی رو دنبال کنن. User story یکی از بهترین روشها برای توصیف کار از دیدگاه مشتریه. User storyهایی مثل نمونه زیر، مشکلات و ایرادات رو نه بر اساس مسئله مشاهده شده، بلکه بر اساس نتیجهای که مشتری دنبالشه، بیان میکنن.
بهترین روشها برای برنامهریزی اسپرینت
خیلی راحت میشه توی جزئیات برنامهریزی اسپرینت غرق بشید و فراموش کنید که هدف اصلی برنامهریزی اسپرینت اینه که یه برنامهی “کافی و مناسب” برای اسپرینت بعدی بسازید. این برنامه نباید به یک بار سنگین برای تیم تبدیل بشه، بلکه باید تیم رو متمرکز کنه روی نتایج باارزش و فضایی برای خودسازماندهی فراهم کنه.
یک برنامهریزی اسپرینت خوب، همه رو با تعیین یک نتیجه مشخص و یک برنامه واضح برای موفقیت، انگیزه میده. ولی مراقب باشید که خیلی زود برنامهریزی نکنید. به جای اینکه بخواهید کاملترین و دقیقترین برنامه برای اسپرینت رو بچینید که توش “هر دقیقه از اسپرینت مشخص بشه”، تمرکز رو بذارید روی هدف و فقط به اندازه کافی بکلاگ اسپرینت بسازید که بتونید شروع کنید. بعد از اون، اطمینان حاصل کنید که بکلاگ محصول به ترتیب درست سازماندهی شده تا اگر تیم زودتر از موعد به هدف اسپرینت رسید، بتونه کارهای بیشتری رو انجام بده.
اسکرام یک فریمورک فرآیندی هست که برای حل مسائل پیچیده طراحی شده. مسائل پیچیده نیاز به فرآیندهای تجربی (یادگیری از طریق عمل) دارن. فرآیندهای تجربی خیلی سخت برنامهریزی میشن، پس خودتون رو فریب ندید – نمیتونید برنامهای کامل بسازید. در عوض، تمرکز کنید روی نتایج و شروع کنید. این کار نباید سخت باشه، حتی اگر مسئلهای که دارید حل میکنید پیچیده باشه.