Story Point معادل نفر ساعت نیست
در پروژه های نرم افزاری روش های تخمین زدن متفاوتی وجود دارد؛ ساده ترین روش این است از نفری که می خواهد کار را انجام بدهد بپرسید “این چند ساعت طول می کشد؟” و او بر اساس تجربه قبلی یک ساعتی را اعلام می کند. اما اکثر تیم های چابک از واحدی به نام Story Point استفاده می کنند. تیم های جدید یا نفرات جدیدی که برای اولین بار سراغ این روش تخمین زدن می آیند دقیقا سعی می کنند ساعت را به پوینت ربط دهند یعنی هر پوینت معادل هشت ساعت می شود.
Story Point معادل نفر ساعت نیست
علت اینکه ما از Story Point استفاده می کنیم این است که می خواهیم به خرد جمعی مراجعه کنیم. یعنی آدم های مختلف در کنار هم بتوانند به صورت تعاملی در مورد اندازه یک کار نظر بدهند. زمانی که شما پوینت را به ساعت نسبت می دهید بزرگترین قابلیت آن یعنی “نسبیت” را از بین می برید.
وقتی به یک کاری می گوییم سه پوینت، سه پوینت به تنهایی هیچ معنی ندارد، سه پوینت نسبت به چه چیز؟ در نسبیت شما همیشه باید یک پایه داشته باشید. مثلا اگر فرض کنیم یک صفحه Add/Edit ساده ۸ پوینت است. پس سری بعد قرار باشد یک صفحه Add/Edit داشته باشیم که کمی نیز قوانین تجاری در آن دخیل است، احتمالا پوینت آن ۱۳ است.
چرا ساعت همان پوینت نیست؟
شاید یک صفحه Add/Edit برای من هشت ساعت طول بکشد، پس باید پوینت بشود ۱ اما برای همکارم که کمی کند تر است، این کار دو روز طول می کشد پس این پوینت باید بشود ۲٫ حالا فرض کنید این دونفر چگونه می خواهند در مورد اینکار با هم از روش پوینت استفاده کنند؟ اما اگر کل تیم، فرای اینکه چه کسی می خواهد این کار را انجام بدهد در نظر بگیرند که هر Add/Edit مثلا ۸ پوینت است، پس همه تعریف مشترکی از پوینت خواهند داشت.
اما در غیر اینصورت بهتر است از لفظ پوینت استفاده نکنید.
آیا ما مجبور هستیم از پوینت استفاده کنیم؟
اصولا نه. اصلا نیازی به استفاده از این روش نیست. اکثر تیم ها در ایران به اسم از پوینت استفاده می کنند ولی همان سیستم ساعتی است.
بهترین حالت چه چیز است؟
بهترین حالت این است که شما User Story ها را از روش پوینت استفاده کنید، بدلیل اینکه همه تیم بر روی این کار تعامل داشته باشند. اما وقتی این User Story به چندین Task شکست، آنها باید ساعتی تخمین زده شوند. چرا؟ چون قرار است تسک را یک نفر خاص انجام بدهد و آن نفر بر اساس مهارت ها و تجربیات قبلی آن کار را تخمین می زند.
چابک و موفق باشید
اسد صفری
برچسب:برآورد, پوینت, تخمین, مدیریت پروژه, نفر ساعت
10 نظر
سلام جناب صفری،
نسبت بین کارها رو چطور میشه سنجید؟ فرض کنید داستان کاربری الف، یک روز برای کل تیم (سطح تواناییها یکسان) زمان میبرد و داستان کاربری ب، ۵ روز. میشه حالتی رو متصور بشین که به هر دو داستان کاربری الف و ب، تیم میزان پوینت یکسانی را برای هر دو تسک انتخاب کند؟
وقتی در مورد پوینت صحبت می کنیم “بزرگی و اندازه و زمان” در هم آمیخته شدند، نه امکان نداره کاری که یک روز طول میکشه با کاری که ۵ روز طول میکشه هم پوینت باشند، حداقل فقط از نظر بزرگی ۵ برابر هست، یعنی اگر به اولی ۲ بدهیم دومی شاید در سری فیبوناچی بشود ۱۳ یا ۲۱٫ در واقع فقط پوینت می شود یک ابزار مشترک برای صحبت در مورد اندازه کارها.
اما مشکل دیگری که هست و در مورد آن صحبت نشد، ظرفیت تیم است، با جمع زدن پوینت های انجام شده تیم در آخر اسپرینت باید به ظرفیت تیم برسیم. این ظرفیت سنجی کمک میکنه ما بتونیم برآوردی در مورد کل پروژه نیز داشته باشیم.
سلام استاد
میشه طریقه تخمین ظرفیت تیم رو هم بفرمایید.
ممنون
به مثال زیر توجه کنین:
تیمی ۶ نفره در کاردوره دو هفتهای (۱۱ روز) و هر روز ۶ ساعت کار میکنن. پس، ظرفیت کلی تیم میشه:
ظرفیت تیم = تعداد اعضای تیم × زمان برحسب ساعت × روز
ساعت ۳۹۶= ۶ × ۶ × ۱۱
اگر چنین الگویی را اجرا کنیم، ممکنه اعضای تیم را با حجم زیاد کار خسته کنیم یا ممکن است اعضای تیم با عجله به سمت اهداف پایانی حرکت کنن. در هر دو صورت، کیفیت کار کاهش پیدا میکنه و روحیه تیم ضعیف میشه.
پس، چگونه میفهمیم تیم با چه ظرفیتی متعهد میشه؟ و تیم چگونه میتونه کارایی رویدادهای تحلیل اسپرینت رو افزایش بده؟
اینجا عامل تمرکز (F.F) رو برای محاسبه ظرفیت واقعی تیم وارد میکنیم. عامل تمرکز بهصورت ضریبی تقریبا بین ۰.۶ تا ۰.۸ در نظر گرفته میشه. (بازم میگم این ضریب یک عدد تقریبیه)
حالا عامل تمرکز چیه؟
مدیران پروژه معمولا در برنامهریزیهای خودشون هر روز کاری رو بین ۶ تا ۶.۵ ساعت اجرایی در نظر میگیرن. بنابراین، عامل تمرکز معادله با توانایی تیم برای متمرکز موندن و حرکت سریع به سمت اهداف، بدون هیچ مانعی. در مثال بالا، اگر عامل تمرکز را ۰.۶ در نظر بگیریم، ظرفیت واقعی تیم برابر میشه با ۳۹۶ × ۰.۶ = ۲۳۷ ساعت.
تیم ما میتونه در کاردوره فعلی، ۲۳۷ ساعت کار کنه. حالا تیم مهمترین اولویتهایی را انتخاب میکنه که مالک محصول معرفی و توسعهدهندگان آنها را به «تسک» تقسیم میکنن. دراینصورت، میتونیم مدت هر تسک را برحسب ساعت برآورد کنیم؛ بنابراین، تیم کارداستانها را تا جایی متقبل میشه که مدت کلی آنها از ۲۳۷ ساعت فراتر نره.
درصورتیکه تیم اولینبار پروژهای میپذیرد یا کاردوره را اجرا میکنه یا اگر بهتازگی وارد حوزه فناوری شده باشه، بهتره عامل تمرکر رو نرخ حداقل در نظر بگیریم.
سلام جناب صفری،
نسبت بین کارها رو چطور میشه سنجید؟ فرض کنید داستان کاربری الف، یک روز برای کل تیم (سطح تواناییها یکسان) زمان میبرد و داستان کاربری ب، ۵ روز. میشه حالتی رو متصور بشین که به هر دو داستان کاربری الف و ب، تیم میزان پوینت یکسانی را برای هر دو تسک انتخاب کند؟
وقتی در مورد پوینت صحبت می کنیم “بزرگی و اندازه و زمان” در هم آمیخته شدند، نه امکان نداره کاری که یک روز طول میکشه با کاری که ۵ روز طول میکشه هم پوینت باشند، حداقل فقط از نظر بزرگی ۵ برابر هست، یعنی اگر به اولی ۲ بدهیم دومی شاید در سری فیبوناچی بشود ۱۳ یا ۲۱٫ در واقع فقط پوینت می شود یک ابزار مشترک برای صحبت در مورد اندازه کارها.
اما مشکل دیگری که هست و در مورد آن صحبت نشد، ظرفیت تیم است، با جمع زدن پوینت های انجام شده تیم در آخر اسپرینت باید به ظرفیت تیم برسیم. این ظرفیت سنجی کمک میکنه ما بتونیم برآوردی در مورد کل پروژه نیز داشته باشیم.
سلام استاد
میشه طریقه تخمین ظرفیت تیم رو هم بفرمایید.
ممنون
به مثال زیر توجه کنین:
تیمی ۶ نفره در کاردوره دو هفتهای (۱۱ روز) و هر روز ۶ ساعت کار میکنن. پس، ظرفیت کلی تیم میشه:
ظرفیت تیم = تعداد اعضای تیم × زمان برحسب ساعت × روز
ساعت ۳۹۶= ۶ × ۶ × ۱۱
اگر چنین الگویی را اجرا کنیم، ممکنه اعضای تیم را با حجم زیاد کار خسته کنیم یا ممکن است اعضای تیم با عجله به سمت اهداف پایانی حرکت کنن. در هر دو صورت، کیفیت کار کاهش پیدا میکنه و روحیه تیم ضعیف میشه.
پس، چگونه میفهمیم تیم با چه ظرفیتی متعهد میشه؟ و تیم چگونه میتونه کارایی رویدادهای تحلیل اسپرینت رو افزایش بده؟
اینجا عامل تمرکز (F.F) رو برای محاسبه ظرفیت واقعی تیم وارد میکنیم. عامل تمرکز بهصورت ضریبی تقریبا بین ۰.۶ تا ۰.۸ در نظر گرفته میشه. (بازم میگم این ضریب یک عدد تقریبیه)
حالا عامل تمرکز چیه؟
مدیران پروژه معمولا در برنامهریزیهای خودشون هر روز کاری رو بین ۶ تا ۶.۵ ساعت اجرایی در نظر میگیرن. بنابراین، عامل تمرکز معادله با توانایی تیم برای متمرکز موندن و حرکت سریع به سمت اهداف، بدون هیچ مانعی. در مثال بالا، اگر عامل تمرکز را ۰.۶ در نظر بگیریم، ظرفیت واقعی تیم برابر میشه با ۳۹۶ × ۰.۶ = ۲۳۷ ساعت.
تیم ما میتونه در کاردوره فعلی، ۲۳۷ ساعت کار کنه. حالا تیم مهمترین اولویتهایی را انتخاب میکنه که مالک محصول معرفی و توسعهدهندگان آنها را به «تسک» تقسیم میکنن. دراینصورت، میتونیم مدت هر تسک را برحسب ساعت برآورد کنیم؛ بنابراین، تیم کارداستانها را تا جایی متقبل میشه که مدت کلی آنها از ۲۳۷ ساعت فراتر نره.
درصورتیکه تیم اولینبار پروژهای میپذیرد یا کاردوره را اجرا میکنه یا اگر بهتازگی وارد حوزه فناوری شده باشه، بهتره عامل تمرکر رو نرخ حداقل در نظر بگیریم.