Friday, September 07, 2007

Software Estimation: All Estimates Are Range Estimates

This post is the second (the first is here) summarizing and commenting on elements from Steve McConnell's excellent Software Estimation: Demystifying the Black Art.

All estimates are range estimates, whether we realize it or not. If we say that a project will finish on July 14, or that, by the end of the year, 56 function points will be complete, we likely do not mean we are 99% certain that these numbers are dead on.

We are implying or suggesting some kind of range (e.g., "sometime in July"). And without making the bounds of the range explicit, nor specifying a level of confidence that the value being estimated lies inside that range, we are probably doing more harm than good with our "estimates."

McConnell points out that in many areas of life we systematically do a bad job at constructing range estimates wide enough to include the value we're trying to estimate. He includes examples -- and an exercise for the reader -- showing that even when given specific instructions to generate an arbitrarily wide range that will include a target value, we still fail to make it wide enough.

We have a cognitive bias that causes us to mistake a wide estimate range for an unacceptably vague answer even when it is not. No wonder, then, that in real-world business scenarios, where pressures exist to create estimates that are both hyper-precise and artificially small, the estimation process comes apart right out of the gate.

How to think about ranges and estimates? Here are a few points to get started:

  1. Many values can be estimated in a software development project. Typical values to estimate include total effort or resources to implement a set of functionality, or quantity of functionality that can be implemented with fixed constraints.
  2. A point estimate is really just a very narrow range estimate -- and almost certainly an inaccurate range estimate. 
  3. How wide should a range estimate be? Wide enough that one can have a specific confidence level that the range includes the actual number being estimated.
  4. If the confidence level is fixed, then the width of the range necessarily depends on how much is known to inform the estimate (as well as on the estimation techniques being used, etc.) For example, if you know the specs for a project, it is in the best case possible to achieve a narrower range estimate at given confidence level than if you don't yet know the specs at all.
  5. The amount if information known (feature details, effort to implement each feature, unexpected dependencies, etc.) increases over time and over the course of the project.
  6. Therefore, updated range estimates can narrow over the course of the project. Initial ranges, if they are accurate, will necessarily be quite wide. McConnell refers to these narrowing intervals over time as the "Cone of Uncertainty" based on the cone-like shape that the graph (range vs. time) makes.
  7. Despite the convergence of the "cone" graph lines, the cone concept reflects a best-case scenario of mapping limited information to limited accuracy in estimation. If other estimation best practices are not followed, it is possible to do much worse than the ranges reflected in the cone.

32 comments:

Andy Steingruebl said...

A few years ago I came across a great presentation on estimating, decision making, etc. Its a really good overview of another field that has some of the same difficulties.

"Would You Know a Good Decision if You Saw One?" - http://www.spe-pb.org/en/art/?12

poona said...


I actually enjoyed reading through this posting.Many thanks
Software Estimation Techniques

Anonymous said...


I really enjoy the blog.Much thanks again. Really Great.


ISTQB Training Institute in Chennai

QTP Training said...

Thanks for sharing information with clear explanation. This is really awesome to understand.

Thanks,
QTP Training in Chennai

Sunshine Eco Cleaning said...

Thanks for sharing informative article. Our Website Sunshine Eco Cleaning Services is developed on .Net Framework and it works fine without any security flaws.

Anjali Siva said...

I have to thank for sharing this blog, really helpful to me. Keep sharing such kind of worthy information.
UiPath Training in Chennai
UiPath Training Institutes in Chennai
ccna Training in Chennai
ccna course in Chennai
AWS Training in Chennai
RPA Training in Chennai
DevOps Training in Chennai
Angularjs Training in Chennai

Rajesh said...

StreamD helps Indian Online Shoppers to choose the Best Bluetooth Speaker and Cheap products in tech space through our carefully data-backed analysis of products by Industry Experts.

Carpet Cleaning Melbourne said...

Thanks for sharing informative post. If you are based in Melbourne and looking for best cleaners to concentrate on your daily task contact Carpet Cleaning Melbourne from Drymaster for professional service.

james said...

It was always great to see seo bangalore and seo pune services

TNPSC Updates said...

Are your preparing for government examination? Effective preparation is important to be successful, make use of our TNPSC Current affairs to prepare for your TNPSC & other government examination.

Indhu said...

Wondeful Explanation with lots of useful information in this blog. Congrats and Keep Rocking.

QTP Training in Chennai | SAP Training in Chennai | SAP ABAP Training in Chennai | SAP FICO Training in Chennai

creationmaker said...

Useful information...

ORACLE TRAINING IN CHENNAI

Ajay said...

Superb...
Online Internship

Sri prathana said...

Useful information...

DATA SCIENCE TRAINING IN CHENNAI

FREE WINTER INTERNSHIPTRAINING IN CHENNAI

NISHATHINI said...

Very informative. Thanks for the post I have book marked this blog
big data training in chennai

Meenu kutty said...

Very Informative blog...Glad to find your blog...Keep Sharing...
Testing & Training on Selenium

Dakota Leest said...

Very interesting blog. I found a lot of good for myself. I want to share with you one site. If you are writing an essay this is for you. You can buy essays online

Vijay said said...

Good Post! thank you for sharing this information.

R programming Training in Chennai
IOT Training in Chennai
Inplant Training For Aeronautical
Internship For Aerospace Engineering Students in India

Suji Sanjana said...

Nice Article. I would like to thank you for sharing this valuable information.

CCNA training in chennai
Ethical Hacking training in chennai
Matlab training in chennai
C++ training in chennai
Cloud computing training in chennai
Machine Learning training in chennai
Artificial Intelligence training in chennai
C training in chennai
Robotics training in chennai

Anonymous said...

Hello! If you see that you have no time for writing your papers then it's better to apply to the essay writing service for help there you can find all the necessary information quickly. It's named custom essays empire

Samanta Woods said...

Hi guys if you have the problem that touches the issue that you do not understand how to write resume and write them especially when when you want to acquire good posiition you can easily use the site resume samples service where proffessional writers are able to create for you a good example of resume

arun said...

iot training in chennai

arun said...

good
iot training in chennai
internship for mca students in chennai
internships for cse 3rd year students in hyderabad
information technology projects list 2018
ethical hacking course in chennai
ece internships in bangalore
internship for computer science students
internships in chennai for cse students
internship in chennai for cse 2019
internship for ece students in bangalore



Anonymous said...

http://mycvshr.yolasite.com/
http://myhr.emyspot.com/
http://myhrcvemployeeslogin.simplesite.com
https://cvspayroll.page.tl/payroll.htm
https://telegra.ph/CVs-in-two-years-12-17
customer plan individuals to fill their upkeep remedies through mail request conveyance or at a CVS Pharmacy retail location at a similar cost

merlin said...

The blog you shared is very good. I expect more information from you like this blog. Thankyou.
Selenium Training in chennai | Selenium Training in annanagar | Selenium Training in omr | Selenium Training in porur | Selenium Training in tambaram | Selenium Training in velachery

subha said...

Such an excellent and interesting blog, Do post like this more with more information, This was very useful, Thank you good luck for ur next post
Ai & Artificial Intelligence Course in Chennai
PHP Training in Chennai
Ethical Hacking Course in Chennai Blue Prism Training in Chennai
UiPath Training in Chennai

IICT Technologies said...

Thanks for this post.
SAP Training in Chennai | SAP Training Institute in Chennai | SAP Training Center in Chennai | Best SAP Training in Chennai | SAP Training

IICT Technologies said...

Thanks for this post.
Hadoop Training in Chennai | Hadoop Training Institute in Chennai | Hadoop Training Center in Chennai | Best Hadoop Training in Chennai | Hadoop Training

IICT Technologies said...

Thanks for this post.
Java Training in Chennai | Java Training Institute in Chennai | Java Training Center in Chennai | Best Java Training in Chennai | Java Training

Devi said...

Thanks for provide great informatic and looking beautiful blog. oracle training in chennai

Vishal said...

https://www.bestfivesmart.com/best-electric-shaver-under-100-in-usa/

dannie morgan said...

This carpet cleaner is specifically designed for the best results. It can be used in different parts of your home, including the kitchen, bathroom, and bedroom. It has an easy to use handle, which makes it easy to transport around.
carpet cleaning brisbane
carpet cleaner brisbane
carpet cleaning services brisbane