🧮 به نهضت NoEstimates# بپیوندیم؟ هنوز Story Point برای تخمین اندازه تسکها لازمه؟
🧮 به نهضت NoEstimates# بپیوندیم؟ هنوز Story Point برای تخمین اندازه تسکها لازمه؟
بعد از دیدن مطلبی که مسعود بیگی در کانال تندتک درباره حذف Story Point از تسکهاشون نوشت، و مواضع مختلفی که در اینباره توی کامیونیتیهای انگلیسی و فارسی وجود داره، تصمیم گرفتم چند خطی رو به این بحث بپردازم. امیدوارم کمک کنه به تصمیمگیری بهتر دوستان...
مرگِ یک آیین قدیمی یا تکامل طبیعی؟
سوال تکراری همیشگی بعد از اینکه یک تیم یا شرکت تخمین Story Point رو کنار میگذاره؛ اینه: «خب جایگزینش چیه؟»
ولی عملا سوال بهتر اینه که اصلاً نیاز واقعیمون به Story Point چی بوده؟ و چرا به وجود اومده؟
این بحث، بحثِ خیلی از تیمهای نوپا و بالغ دنیا طی سالهای اخیر بوده.
عملا Story Point در سالهای ابتدایی پیدایش مفهوم agile در توسعه نرمافزار، ناجی خیلی از تیمها بود. یعنی وقتی تیمها از تخمین زمانی (مثل person-hour یا person-day) خسته شده بودن و میدیدن این اعداد عموما دروغ میگن؛ Story Point با نگاه «بیخیال ساعت شید، فقط بگید این کار نسبت به اون یکی چقدر بزرگتره» به وجود اومد. و واقعاً هم کمک کرد. تیمها بهتر پیشبینی میکردن، Velocity داشتن، ظرفیت اسپرینت مشخص بود.
اما این سالها بعضی از تیمها Story Point رو کنار گذاشتن، مهمترین دلایلی که من دیدم، اینا بوده:
۱. طی گذر زمان؛ Story Point تبدیل به دروغ شد!
همون چیزی که قرار بود جلوی دروغ رو بگیره، خودش تبدیل به دروغ شد.
چرا؟ چون مدیر محصول یا PO میگفت: «این فیچر باید تو همین اسپرینت جا بشه، پس ۸ نزنید، ۵ بزنید!»
یا توسعهدهنده از ترس فشار بعدی، همیشه عدد بزرگتر میزد.
نتیجه؟ Velocity غیرواقعی، تخمین غیرواقعی، بیاعتمادی کامل. من از حدودای ۲۰۱۲-۲۰۱۳ یادم میاد که نهضت NoEstimates# با این گفتمان راه افتاده که تخمین، هزینه داره و اغلب دقتش اونقدری نیست که ارزش هزینهش رو داشته باشه!
۲. تیمها دیگه نیازی به «واحد خیالی» ندارن
وقتی تیم کوچیکه، در اثر تجربه و همنشینی گاهی دیگه نیازی نمیبینن بگن «این ۵ پوینته، اون ۸ پوینته».
فقط میگن: «این کار حدود ۲-۳ روزه، اون یکی یه هفته».
و این تخمین «تقریبی و رنجدار» گاهی دقیقتر از Story Point در میاد!
از طرفی، تیمهای خوب به جای اندازه تسک، روی شکل دادن (Shaping) فیچرها تمرکز میکنند و تخمین ریز نمیزنن.
۳. کار رو باید انجام داد چه یه روز چه ده روز!
بعضی تیمها ماهیت تسکهاشون «ضرورتِ محصوله»، یعنی قابل حذف یا جایگزینی نیست، محصول هم باید تولید شه. لذا برای مدیر و شرکت مهمه که زودتر برسه، ولی اگر چند وقت دیرتر هم بشه، راهی جز پذیرش نداره. اینجاست که تیم میگه خب so what؟ تخمین بزنم که چی بشه؟ من که اول و آخر باید این کار رو انجام بدم!
۴. کارهای روتین، یا قابل پیشبینی هستن
وقتی کارها به طور نسبی زمان مشابهی برای اجرا نیاز دارن، یا توی چند دستهی قابل پیشبینی قرار میگیرن، تکرار مکررات باعث میشه تیم بیخیال تخمین بشه و میدونه چه کاری حدودا طی چی زمانی انجام میشه. اینجا دیگه به جای story point گاها T-Shirt sizing هم جواب میده (S, M, L, XL)
پس کِی و کجا Story Point هنوز مفیده؟
- انترپرایزها: تیم بزرگ، سازمان بزرگ، وابستگیهای بین تیمی زیاد، مدیریت بودجه سختگیرانه و... توی چنین محیطهایی اینقدر در همتنیدگی کارها، بوجه، تیمها، و.. زیاده که یکی از مهارتهای مدیر تیم، کمک به بهبود و تدقیق تخمینهاست. اینقدری که توی شرکتهای بزرگ tech با ماشینلرنینگ و هوشمصنوعی این تخمینها بهبود پیدا میکنه، چون دیر رسیدن یک ماههی یک محصول گاها عدمالنفع یا حتی خسارتهای چند ده میلیون دلاری میتونه به بار بیاره.
قبلا همینجا هم نوشتم که انترپرایز الزاما تعداد کارمند زیاد نیست، باید ساختار و رویهها قابل انترپرایز خطاب شدن باشه!
- تیمهای جدید که هنوز Flow پایداری ندارن
- وقتی تیمها توزیعشده (distributed) هستن و ارتباط لحظهای کمه
یادمون نره که Agile یعنی انعطاف. اگر ابزاری به درد تیم شما نمیخورد، کنارش بگذارید. اینکه process templateهای متنوعی وجود داره، از مدلهای ساده مثل kanban تا scrum و agile و حتی مدلهای خیلی سختگیر و دقیقی مثل CMMI هم هست، یعنی «نسخه واحد برای همه تیمها و محصولات وجود نداره».
سوال این نیست که "Story Point خوبه یا بد؟"
سوال اینه: "برای تیم ما، در مرحله فعلی، چه چیزی بهترین کمک رو میکنه؟"
بعضیها هم که story point رو گذاشتن کنار از سر بلد نبودنشون بوده! نه از سر مناسب نبودنش! و اساسا باید عارضه رو در خودشون پیدا میکردن یا اینکه تا زمان بلوغ، میرفتن سراغ متد دیگهای که مبتنی بر SP نباشه، نه اینکه متد رو نگه دارن و SP رو از دلش بکشن بیرون.
این موضوع خیلی مفصله ولی امیدوارم در حد سرنخ دادن کمک کرده باشه... 😊