راهنمای توسعه دهنده برای برآورد

زمینه
احتمالاً باید با گفتن من شروع کنم واقعا از تخمین خوشم نمیاد بیشتر اوقات کمی شبیه لیسیدن انگشت و چسباندن آن به هوا است و در هر جای دیگری حتی بدتر است! بین نیاز به (معمولا) تعداد زیادی از مجهولات که می توانند سرعت شما را کاهش دهند، باید سعی کنید و برنامه ریزی کنید که آیا همکار که به شما کمک می کند (به درستی) درست قبل از ظهور آن وابستگی بزرگ به مرخصی استعلاجی نمی رود یا خیر. وقتی بالاخره یک تخمین میدهید، برای افرادی که به آنها تخمین میدهید، این یک تخمین نیست تخمین زدن، این یک ضمانت است و وقتی به دلایل زیادی این اتفاق نمی افتد، با یک جلسه بسیار ناراحت کننده روبرو می شوید که باید سعی کنید و توضیح دهید که چرا آنچه را که گفته اید انجام نداده اید. این احساس به قدری در توسعه نرم افزار ریشه دوانده است که یک «شوخی» بسیار رایج در مورد آن وجود دارد:
person: Hey we've got this really cool feature we need adding! All you need to do is add a button to the form
developer: 3 weeks.
person: but it's just adding a button?
developer: ah sure, it'll take 4 weeks.
با این حال، هیچ یک از اینها واقعاً مهم نیست، زیرا کسب و کار برای تلاش و پیش بینی کار آینده به این اطلاعات نیاز دارد و اگر این اتفاق نیفتد، شرکت می تواند از کار خارج شود. بنابراین به همان اندازه که من از انجام تخمینها بدم میآید، همچنان داشتن آن برای هر توسعهدهندهای یک مهارت کلیدی است.
چگونه تخمین بزنیم
بنابراین ما ثابت کردیم که همه ما باید بدانیم چگونه تخمین بزنیم، اما یک مشکل جزئی در آن وجود دارد یک توسعه دهنده واقعاً چگونه تخمین می زند. من مطمئن هستم که اکثر ما با کمی تجربه فقط یک عدد را بیرون انداخته ایم و بدون اینکه واقعاً به آن فکر کنیم در آن پیش بینی دقیق بوده ایم. این البته زمانی که سعی میکنید نحوه تخمین زدن را بیاموزید کاملاً مفید نیست و ممکن است مقالاتی مانند این مقاله از تایم کمپ را بخوانید که تعداد زیادی از تکنیکهای فردی را که میتوانید برای تخمین استفاده کنید، بررسی کنید. با این حال، به نظر من، پاسخ واقعی به این، ما از ترکیبی از تکنیکها استفاده میکنیم که میتوانند تخمینی را در کمتر از 30 ثانیه (واقعاً 10) به شما ارائه دهند – دیگر و احتمالاً بیش از حد به آن فکر میکنید، یا کار خیلی بزرگ است و شما نیاز به شکستن آن با این اوصاف، در اینجا نحوه برآورد من شخصاً وظایف است.
برای من برآورد واقعاً به سه قسمت تقسیم می شود. به دست آوردن یک برآورد واقعی، تبدیل مدت زمانی که فکر می کنم به یک تخمین واقع بینانه نیاز دارد و در نهایت، نحوه انتقال آن تخمین به کسب و کار. من این را در زیر شکسته ام.
بدست آوردن برآورد
وقتی به این فکر میکنم که قرار است کاری چقدر طول بکشد، اساساً سؤالاتی مانند فلوچارت زیر را بررسی میکنم تا یک تخمین دقیق را جمعآوری کنم:
توجه داشته باشید: موارد بالا همه چیز نیست، فقط نماینده سوالاتی است که باید قبل از تخمین زدن از خود بپرسید. برای مثال، اگر کدی که من مینویسم از فناوری جالبی استفاده میکند، احتمالاً زمان را کمی کاهش میدهم، فقط به این دلیل که کار اضافی روی آن گذاشتهام.
تبدیل به تخمین واقعی
چند روش وجود دارد که می توانید برای انجام این کار از آنها استفاده کنید، اما من قصد دارم 2 مورد از رایج ترین آنها را مورد بحث قرار دهم.
برآورد سه نقطه
صادقانه بگویم، من از این استفاده نمی کنم که اغلب دیگر، اما زمانی که من شروع به کار می کردم و نمی دانستم چه کاری باید انجام دهم، انجام یک برآورد سه نقطه ای به شما کمک می کند تا مشکل را به روشی آسان برای هضم طرح ریزی کنید.
توجه داشته باشید: تخمین سه امتیازی است نقطه پایانی تخمین به عنوان مثال: زمانی که مراحل دیگر را طی کردید تا بفهمید کار چقدر طول می کشد.
در حالی که راههای مختلفی برای رسیدن به تخمین سه امتیازی وجود دارد، اما ما بیشتر به سریعترین راه برای رسیدن به آنجا علاقهمندیم، بنابراین از سادهترین آنها استفاده میکنیم.
در اصل، شما این 3 سوال را از خود بپرسید:
- اگر ساده تر از چیزی باشد که انتظار داشتم چقدر طول می کشد
- اگر همه چیز خراب شود چقدر طول می کشد
- بر اساس آنچه در حال حاضر می دانم، به طور واقع بینانه چقدر طول می کشد
شما سپس 3 تخمین را بر 3 تقسیم می کنید و سپس آنها را بر 3 تقسیم می کنید. به عنوان مثال: من وظیفه ای را دریافت می کنم که یک دکمه را به شکل اضافه کنم و بر اساس آنچه می دانم، به طور خوش بینانه یک ساعت طول می کشد تا اضافه کنم، به طور واقع بینانه 4 طول می کشد. ساعت ها و بدبینانه 2 روز طول می کشد.
این موارد زیر را به من می دهد:
اکنون که این نزدیک به 8 ساعت است، من فقط یک روز کامل 8 ساعته را جمع می کنم زیرا به اندازه کافی نزدیک است.
زمان به علاوه
این یک روش واقعاً ساده برای تخمین است، و در تجربه من محبوبترین راه برای انجام این فعالیت است. من واقعا این را برای مبتدیان توصیه نمیکنم، زیرا اشتباه کردن آسان است، اما اساساً شما چقدر طول میکشد که فکر میکنید طول میکشد، 20٪ اضافه کنید و سپس به نزدیکترین 4 ساعت، 1 روز، 1.5 روز، 2 روز جمع کنید. ، 3 روز و 4 روز و 1 هفته. دیگر و احتمالاً کار باید از هم جدا شود.
به این معنا که:
سپس تخمین 9.6 را می گیرم و سپس به 1.5 روز جمع می کنم.
این (معمولا) بسیار کمتر از یک تخمین سه امتیازی است، اما می تواند شما را در بیشتر مواقع به آنجا برساند. به نظر من، علیرغم محاسبه ساده تر، انجام این کار در واقع پیچیده تر است زیرا قبل از اینکه بتوانید برآورد دقیقی ارائه دهید، به درک کامل راه حل متکی است و همانطور که قبلاً گفتم، اگر تازه کار هستید بهتر است به آن اعتماد نکنید. برای تخمین زدن
انتقال برآورد
انتقال واقعاً به 2 قسمت تقسیم می شود. هنگام ارائه تخمین چه کاری باید انجام دهید و در حالی که روی کار کار می کنید چه کاری باید انجام دهید.
در جلسه
وقتی واقعاً در جلسه هستید و از شما برای برآورد درخواست میشود، در اینجا چند نکته وجود دارد:
-
قبل از پاسخ دادن، چند ثانیه را در نظر بگیرید
- حتی اگر از قبل میدانید که قرار است از شما چه کاری انجام دهید، همیشه ارزش این را دارد که چند ثانیه برای پاسخ در ذهن خود صرف کنید زیرا این آخرین فرصت قبل از تثبیت تخمین در ذهن مردم است. در موارد متعدد به من کمک کرد تا یک چیز کوچکی را که فراموش کرده بودم در نظر بگیرم به یاد بیاورم و به من امکان داد تخمین دقیق تری داشته باشم.
-
صادق باشید
- من می دانم که گاهی اوقات، شما تحت فشار قرار می گیرید که برآوردی کوتاه تر از آنچه واقعاً انتظار دارید ارائه دهید. اگر این اتفاق برای شما رخ می دهد، به من اعتماد کنید که اکنون توضیح دادن آن بسیار ناخوشایندتر خواهد بود، تا زمانی که مجبور شوید به همان افرادی که به شما فشار می آورند بگویید بیشتر از آنچه شما گفتید طول می کشد.
-
با خودت صادق باش
- اگر شما در حال دور انداختن تخمین هایی هستید که شما فکر ممکن است ممکن باشد، اما از نظر تاریخی شما را بسیار طولانیتر کرده است (و همچنین مجبور بودهاید دائماً به مدیر پروژه توضیح دهید که چرا طولانیتر شده است)، احتمالاً ایده خوبی است که به فرآیند تخمین خود نگاهی بیندازید.
-
وحشت نکنید
- اگر در فرآیند تخمین زدن تازه کار هستید، و اطرافیانتان می دانند که اگر اشتباه متوجه شوید مشکل چندان مهمی نیست، به شرطی که هر بار به شما نزدیک تر می شوید. همه ما در جایی بودهایم که شما هستید و زمانی که تازه شروع کردهاید انجام آن کار آسانی نیست
-
توضیح دهید که دارید استدلال می کنید
- منظور من از این این است که فقط یک جمله کوتاه به شما نشان دهد که وظیفه را درک می کنید و انتظارات خود را در مورد مشکلاتی که ممکن است داشته باشید تعیین کنید. به عنوان مثال، اگر بدانم که به تیم دیگری وابستگی دارم، احتمالاً چیزی مانند “من می توانم تا پایان روز فردا این کار را انجام دهم، مشروط بر اینکه در چند ساعت آینده وابستگی X را دریافت کنم” می گویم.
پس از برآورد
هنگامی که تخمین خود را ارائه کردید، کارهایی وجود دارد که می توانید برای انجام به موقع کار و همچنین کاهش مشکلات در صورت اشتباه انجام دهید:
-
تایم باکس
- راهنماهای زیادی در مورد نحوه انجام این کار وجود دارد (مانند این یکی از طریق ساعت)، اما به طور خلاصه، تمرین اختصاص دادن زمان مشخصی در روز است که در آن سعی میکنید و کار را تکمیل میکنید.
-
برقراری ارتباط
- اگر گفته اید که یک کار یک هفته طول می کشد، و هر روز گفته اید که همه چیز خوب پیش می رود تا آخرین روز که ناگهان می گویید یک هفته دیگر نیاز دارید، تقریباً درخواست عصبانیت دارید. سوالاتی که باید پرسیده شود همیشه بهتر است مطمئن شوید که مدیر پروژه عملکرد شما را درک می کند و در ذهن من دلیل اصلی برای استندآپ روزانه است. اگر تیم شما به دلایلی یک استندآپ روزانه انجام نمیدهد، احتمالاً به یک ابزار پیامرسانی فوری دسترسی دارید و oyu میتوانید از آن استفاده کنید.
-
اگر اشتباه متوجه شدید نگران نباشید
- ما داریم همه زمانی که در این موقعیت قرار گرفته اید، بهترین کار این است که بیش از حد نگران آن نباشید و به کسی اطلاع دهید که ممکن است به کمک نیاز داشته باشید و چرا مشکل دارید. چیزی که شما را به دردسر می اندازد، دست کم گرفتن نیست، بلکه زمانی است که سعی می کنید آن را پنهان کنید.