فرقی نمیکند که استوری کاربرهایتان را با جزئیات تعریف میکنید و یا برای نشان دادن جزئیات آنها تسک تعریف میکنید، این بحث در بسیاری از تیمهای چابک در مورد سطح جزئیاتی که باید در یک استوری کاربر و استخراج وظایف (تسکها و مدیریت تسک) مرتبط گنجانده شوند ادامه دارد. برخی از تیمها بر این باورند که زمان صرفشده در جلسات برنامهریزی اسپرینت برای استخراج جزییات، بهتر است در زمان اجرا و برای پیادهسازی صرف شود. برخی دیگر بر این باورند که علت شکست پروژهها نبودن شفافیت کافی در جزییات اجرایی پروژه است که در جلسات برنامهریزی اسپرینت انجام نشده است. البته که برای موفقیت یک پروژه باید میزان صحیحی از جزییات اجرایی کارها در طی جلسات برنامهریزی اسپرینت استخراج شود. ولی به چه میزان؟
مدیریت تسک های اسپرینت چه هستند و آیا تعریف آنها الزامی است؟
تسکهای اسپرینت برای شکستن یوزر استوریها و آیتمهای بکلاگ به موارد جزئیتر و قابل برنامهریزی استفاده میشوند. در اسکرام فرآیند برنامهریزی و تخمینهای زمانی به تدریج واقع بینانهتر شده و با جزئیات بیشتر تعریف میشود. در بالاترین سطح، پروژه با اپیکها یا امکانات و ویژگیهای محصول شروع میشود که به سطح استوری کاربر شکسته میشود. وظایف کوچکترین واحد برای پیگیری پیشرفت کارها در اسکرام است. نیازمندیهای مشتری که معمولا فقط یک عنوان و دید کلی از آنها در دسترس است. این اپیکها به یوزر استوریها شکسته میشود. هر تسک به یک فرد از تیم واگذار شده و توسط او انجام میشود. البته در بعضی موارد ممکن است فردی از تیم در انجام این وظایف همتیمیاش را همراهی کند.
معمولا هر یوزراستوری از چندین تسک تشکیل شده است. گاهی این تسکها بر اساس نوع فعالیت مشخص میشوند مانند تسکهای طراحی، مستند سازی، تست، UX و … و مدیریت تسک بر اساس نوع آن انجام میشود. هر چند که این تقسیم بندی ممکن است یادآور رویکرد آبشاری باشد، اما استفاده از این رویکرد منافاتی با رویکرد اجایل ندارد. چرا که این رویکرد به تعریف تسکها اجازه میدهد تا تیم فعالیتهای موازی را با در نظرگرفتن تفاوتهای موضوعی انجام دهند.
تعریف تعداد زیادی تسک از نظر بعضی به عنوان آنتی اجایل یا خلاف رویکرد چابک شناخته میشود. این افراد استدلال میکنند که مشخص کردن میزان زیادی از تسکها باعث به وجود آمدن سربار کاری در هنگام تخمینهای زمانی و مانیتور کردن آنهاست. راه حل ساده مشخص کردن سطح حداقلی از تعریف تسکهاست.
در راهنمای اسکرام درباره مدیریت تسک چه گفته شده است؟
پیشنهاد بسیاری از متخصصین و افرادی که اسکرام را پیاده سازی کرده اند همراه با ایجاد تخمین، استوری کاربر و تعریف تسک بوده است اما واژه تسک و استوری کاربر به طور مشخص در راهنمای اسکرام آورده نشده است.
درباره جلسه برنامهریزی اسپرینت در راهنمای اسکرام آورده شده است که:
کارهایی که باید در طی یک اسپرینت انجام شود، در جلسه برنامهریزی اسپرینت برنامهریزی میشود. این برنامه با همکاری همه تیم اسکرام تنظیم میشود. جلسه برنامهریزی اسپرینت دارای زمان مشخص و حداکثر هشت ساعت برای یک اسپرینت یک ماهه است. برای اسپرینتهای کوتاهتر این زمان کمتر هم خواهد بود. اسکرام مستر موظف است اطمینان یابد تا همه اعضای تیم در جلسه شرکت کرده و متوجه تمام جزییات مطرح شده باشند. برنامهریزی اسپرینت به سوالات زیر پاسخ میدهد:
– در اسپرینت پیش رو چه چیزهایی را تحویل میدهیم؟
– برای تحویل موفق محصول در پایان هر Increment، یک فعالیت چگونه باید انجام شود؟
در راهنمای اسکرام پیشنهادی مبنی بر نیاز تعریف تسک آورده نشده است و صحبتی درباره اندازه و فرآیند تخمین زمانی تسکها آورده نشده است. در این راهنما گفته میشود تعریف Backlog محصول با جزئیات و تخمینهای آن یک فرآیند مستمر است که باید در طی اسپرینتهای مختلف انجام شود. به یاد داشته باشید این فرآیند معمولا بیش از ۱۰% ظرفیت تیم اسکرام را به خود اختصاص نمیدهد. درعین حال که راهنما مقدار جزئیات برنامهریزی استوری کاربر و یا تسک را مشخص نکرده است، اما زمانی که تیم برای تعریف بکلاگ و برنامهریزی باید بگذارد را مشخص کردهاست.
زمان انجام تسکها نباید بیشتر از یک روز باشد
در مورد تخمین زمانی و فرآیندهای مرتبط با مدیریت وظایف( تسک) دیدگاه های متفاوتی وجود دارد اما اکثر دیدگاهها یک نقطه مشترک دارند، تسکها تا جای ممکن باید به اندازه ای کوچک تعریف شوند که حداکثر در یک روز انجام شوند.
در راهنمای اسکرام به طور مستقیم به وظایف اشاره نشده است اما گفته شده:
” فعالیت هایی که در اولین روز هر اسپرینت توسط تیم برنامهریزی میشوند معمولا به واحدهایی با زمان یک روز و یا کمتر تقسیم میشوند.”
دلایل مختلفی وجود دارد که متخصصین این موضوع را پیشنهاد میدهند:
وظایف روزانه بر روی آهنگ جلسات روزانه سوار میشوند. با داشتن وظایفی که بیشتر از یک روز زمان نیاز ندارند، روند برگزاری جلسات روزانه شفافتر خواهد بود.
وظایف روزانه شفافیت انجام کارها میان تمام اعضای تیم را افزایش میدهد.
تیم میتواند روزانه خود را با شرایط منطبق کند
محدود کردن زمان انجام وظایف به یک روز به برنامهنویسان کمک میکند تا یک فرآیند بدون وقفه را با تمرکز انجام دهند.
یادآوری میکنیم که هیچ قانونی وجود ندارد که وظایف باید کمتر از یک روز انجام شوند و شاید موفقیت بعضی از تیمها در این باشد که محدودیتی در زمان انجام وظایف خود تعریف نکنند. نکته مهم برای هر تیم رسیدن به اهداف اسپرینت است.
مزایای تعریف و مدیریت تسک
جدای از اندازه تسک، در مرحلهای از جلسه برنامهریزی اسپرینت تیم نیاز به بدست آوردن پاسخ سوالها و شفاف کردن تمام فرضیات مربوط به استوری کاربران دارد. تا این مرحله شاید استوریها کافی باشند اما زمانی که بحث اولویت بندی مطرح میشود تیم نیاز دارد تا تمام جزئیات و تعریف انجام استوری را درک کند.
شکستن استوری کاربر به تسک به تیم کمک میکند تا دیدگاه مناسبی نسبت به استوریها داشته باشند. با وارد شدن به این سطح از جزئیات هر ناشناختهای مشخص و شفاف میشود. تیم درباره شرایط مختلف با هم گفتگو میکنند و درباره شرایط قابل قبول کارها از مالک محصول سوال میپرسند. تبادل اطلاعات و همفکری به این شکل به تیمها این امکان را میدهد که بهترین روش اجرای هر استوری را انتخاب کنند. شاید داشتن یک قالب مشخص برای تعریف تسک بتواند به تیمها در این مسیر کمک کند.
ایجاد تسک کمک میکند تا هرگونه ابهام در مورد استوریها مشخص شود، Charles Bradley توصیههای زیر را در خصوص ایجاد تسک میکند:
معمولا تسکها با هدف رفع ابهام تعریف میشوند. یک تسک کامل معمولا شامل تخمین است که معمولا این تخمین بیشتر از واقعیت است. یادمان نرود که هدف تعریف این تسک ها از بین بردن ابهام است. زمانی که این تسک تمام شد فرد یا افرادی که این تسک را تمام کرده اند می توانند به راحتی تسک بعدی را انتخاب کنند.
گزینه دیگری که ممکن است پیش بیاید ریز کردن استوریها است. اگر در حین صحبت درباره استوری متوجه ابهامی شوید که با انجام تسک ها هم برطرف نمیشود، میتوانید استوری را ساده نگه دارید و با تعریف استوری دیگری در اسپرینت بعد این ابهام را رفع کنید. بعد از تکمیل استوری سادهتر تیم دید بهتری نسبت به تکمیل این استوری پیدا میکند.
رویکردمان در مورد تخمین چگونه باشد؟
یک توافق کلی وجود دارد که تسکها بیشتر از یک روز طول نکشند اما دیدگاههای متفاوتی درباره نحوه تخمین، پیگیری و کنترل کردن وظایف وجود دارد.
بعضی معتقدند که تسک ها باید براساس ساعت تخمین زده شوند و این تخمین هر روز به روزرسانی شود تا نمودار Burndown تخمین درستی از وضعیت اسپرینت را نشان دهد. طرفداران این رویکرد بر لزوم وجود شفافیت در تیم تاکید دارند و اینکه تاثیر آپدیت روزانه بر روی چارت Burndown این امکانر را می دهد تا در صورت وجود ریسک عدم تکمیل هدف اسپرینت، تیم بتواند این موضوع را زودتر متوجه شود.
نقطه نظر دیگر در مورد تخمین، کنترل و پیگیری کردن تسکها این است که این کار باعث مدیریت ریز افراد میشود و همزمان باعث به وجود آمدن فعالیتهایی میشود که انجام آنها ضرورتی ندارد. راه پیشنهادی حذف و یا کمتر کردن فرآیندهایی است که هیچ ارزش افزودهای برای تیم ایجاد نمیکنند. یک راه ساده برای جلوگیری از این عدم بهره وری تعریف واحدهای زمانی مشخص – یک روز یا نصف روز– برای تخمین تسکهاست. این کار راحت تر از تخمین براساس ساعت است.
تعریف درستی از سطح جزئیات استوریها و تعریف تسک در جلسات برنامهریزی اسپرینت میتواند چالش برانگیز باشد. تیم برای تکمیل استوریها به جزئیات کافی نیاز دارد اما همچنین باید جلسات برنامهریزی با بهرهوری مناسب داشته باشند. ایجاد فعالیتهایی که یک یا کمتر از یک روز زمان میبرند یک راهکار متداول برای انجام این کار است. با این رویکرد که تمام فعالیتهایی که برای یک استوری تعریف میشود باید منجر به تکمیل آن استوری شود، تمام جزئیات یک استوری مشخص خواهد شد و این کار یک دید کلی به تمام تیم برای هدف هر اسپرینت میدهد. هرچقدر تجربه تیم بیشتر میشود مقدار جزئیاتی که برای انجام هر استوری را لازم دارند، متوجه خواهند شد.