بحثهای زیادی در مورد تخمین در جامعه چابک وجود دارد. از کدام شیوه باید استفاده کرد: استوری پوینت ، نفر/ ساعت ، نفر/ روز یا حتی #نه_به_تخمین؟ امروزه اکثر تیمهای چابک سعی دارند از استوری پوینت به عنوان واحد اصلی تخمین استفاده کنند. اما دقیقا مشکل کجاست؟
استوری پوینت – Story Point چیست؟
استوری پوینت، واحدی از معیارها(پیچیدگی، اندازه، ریسک و عدم قطعیت) برای بیان برآورد تلاش کلی است که برای اجرای کامل یک مورد از بک لاگ محصول لازم است.
وقتی با استوری پوینت تخمین می زنیم، به هر مورد امتیاز خاصی اختصاص می دهیم. مقادیری که تعیین میکنیم اصلا مهم نیستند زیرا که اصل داستان نسبیت مابین امتیازها هست؟ داستانی که به آن 2 اختصاص داده میشود باید دو برابر بیشتر از موردی باشد که به 1 اختصاص داده شده است. همچنین باید دو سوم اندازه موردی باشد که 3 استوری پوینت تخمین زده شده است.
وقتی به یک کاری می گوییم سه پوینت، سه پوینت به تنهایی هیچ معنی ندارد، سه پوینت نسبت به چه چیز؟ در نسبیت شما همیشه باید یک پایه داشته باشید. مثلا اگر فرض کنیم یک صفحه Add/Edit ساده 8 پوینت است. پس سری بعد قرار باشد که یک صفحه Add/Edit داشته باشیم که کمی پیچیده تر از قبلی است، احتمالا پوینت آن 13 است.
اما مشکل اصلی همین اختصاص دادن امتیاز و حفظ این نسبیت در دنیای واقعی است؟ خوب شاید بگوییم باید از روش برنامه ریزی پوکر یا همان Planning Poker استفاده کنیم.
برنامهریزی پوکر مرده است، زنده باد برنامهریزی پوکر
براساس مقاله مایک کوهن، برنامه ریزی پوکر یک روش تخمین و برنامه ریزی چابک بوده که کاملا مبتنی بر اجماع آرا است. هر یک از اعضای تیم دسته ای از کارت های Planning Poker را با مقادیری مانند 0، 1، 2، 3، 5، 8، 13، 21، 40 و 100 در دست دارد. مقادیر نشان دهنده استوری پوینت است.
وقتی آن قلم بکلاگ محصول، به طور کامل مورد بحث قرار گرفت، هر یک از اعضای تیم به طور خصوصی یک کارت را انتخاب می کند، سپس همه کارتها همزمان آشکار(رو) می شوند.
مشکل دقیقاً همین جا است. ” هر یک از اعضای تیم به طور خصوصی یک کارت را برای نشان دادن تخمین خود انتخاب می کند”، اما در دنیای واقعی، اعضای تیم نسبیت استوری پوینت را فراموش می کنند. به تجربه من، وقتی کسی در ذهن خودش 2 استوری پوینت را به یک مورد اختصاص میدهد، فکر نمیکند که: اوه ، باید دو سوم اندازه موردی باشد که 3 استوری پوینت تخمین زده شده” ، بیشتر اوقات چنین چیزی در ذهن افراد در جریان است: “این برای من 1 ساعت و شاید برای توسعه دهنده فرانت 1 ساعت هم باشد، بنابراین 2 استوری پوینت است.”
در بسیاری از تجربه های من، Planning Poker به تنهایی یک روش موثر برای اختصاص استوری پوینت بر روی موارد بکلاگ محصول نیست، زیرا تیم توسعه نسبیت استوری پوینت را فراموش می کند و در این صورت کلا این امتیازها بی فایده هستند و شاید بهتر باشد از همان نفر/ساعت یا نفر/روز استفاده کنیم. این نوشته در مورد نحوه اصلاح و بهود روش برنامه ریزی پوکر است که چگونه بتوانیم نسبیت را در آن حتما حفظ نماییم.
اما فراموش نکنیم که، برنامه ریزی پوکر یک روش برنامه ریزی موثر نیز است(یعنی صرفا در مورد تخمین زدن نیست) زیرا به تیم کمک می کند تا در مورد اقلام بکلاگ محصول و نیازهای کاربر گفتگو کنند. در مکالمه درباره این موارد، ایده های جدیدی پیدا خواهید کرد…
برنامه ریزی مهمتر از برنامه است
تابلوی تخمین
تابلوی تخمین روشی مبتنی بر تجربیات خود من و دیگر دوستان در جهت بهبود مشکل نسبیت برنامه ریزی پوکر است. در این روش، شما فقط یک تابلو(وایت برد یا …) را به مراحل برنامه ریزی پوکر خود اضافه خواهید کرد. پس از تخمین هر مورد، باید آن را روی صفحه خود قرار دهید( این صفحه میتواند دیجیتا هم باشد البته برای تیم های ریموت). چیزی شبیه به تصویر زیر:
مانند تصویر زیر سعی کنید برای هر دسته یک ستون ایجاد کنید:
روند تخمین و برنامه ریزی را ادامه دهید و صفحه خود را به روز کنید:
پس از اتمام فرآیند، اجازه دهید تخمینها را بر اساس نسبیت دوباره چک و نهایی کنید. به اعضای تیم اجازه دهید هر بار یک ستون را بررسی کنند. به عنوان مثال ، 3 مورد در گروه 2 وجود دارد. چنین سوالی از اعضای تیم بپرسید: “آیا آنها اندازه یکسانی دارند؟ آیا باید در یک ستون قرار بگیرند؟” در غیر این صورت، می توانید موارد را به ستون های دیگر منتقل نمایید.
این روش ساده به شما کمک می کند تا مسئله نسبیت در تخمین را بهبود ببخشید، چرا که دوباره اقلام را در مقایسه با یکدیگر چک میکنید.
نسبیت را در کل چرخه حیات پروژه / محصول حفظ کنید
همان طور که قبلا گفته شد، کل اساس استوری پوینت مبتنی بر نسبیت است، پس نمی توانید سنگ بنای تخمین خود را در هر اسپرینت تغییر دهید، یعنی دائم سنگ محک بزرگی و کوچکی متغییر باشد. شما باید این سنگ محک را نسبتاً در تمام چرخه حیات پروژه/محصول حفظ کنید. بنابراین، به راحتی می توانید ردیف اول این تابلو را حفظ کرده و در اسپرینت های بعدی نیز از آن برای مقایسه استفاده کنید. این به تیم کمک می کند تا تخمین متعادل در طول کل اسپرینتها داشته باشد.
اگر به این مباحث علاقمند هستید، یا تیم شما دچار مشکل تخمین زدن است، توصبه میکنم پکیج برنامه ریزی و تخمین چابک را بررسی کنید، در این پکیج روشهای بسیار بیشتری در خصوص تخمین زدن و ریزه کاری های تخمین آموزش داده شده است.
چابک و موفق باشید
اسد صفری
بنظرم معمولا یک یا چند نمونه یوزر استوری های پیشین رو که همه تیم روش توافق داشتن رو به عنوان مرجع نگه داریم و موقع اختلاف تیم رو به اشتراک قبلی شون ارجاع بدیم.
ولی ایده ساده و کاربردی و البته خیلی مفیدی بودش. ممنون