Coding Horror

programming and human factors

The Mysterious Cone of Uncertainty

One of the central themes in McConnell's Software Estimation: Demystifying the Black Art is the ominously named Cone of Uncertainty. The cone defines statistically predictible levels of project estimate uncertainty at each stage of the project.

The Cone of Uncertainty!

The cone has several ramifications, the most important of which is that early project estimates will always be wildly inaccurate:

As you can see from the graph, estimates created very early in the project are subject to a high degree of error. Estimates created at initial concept time can be inaccurate by a factor of 4x on the high side, or 4x on the low side.

That means the total estimate range is a staggering 16x at the time of initial concept! And believe it or not, that's a best case scenario:

An important-- and difficult-- concept is that The Cone of Uncertainty represents the best-case accuracy that is possible to have in software estimates at different points in a project. It is easily possible to do worse. It isn't possible to be more accurate; it's only possible to be more lucky.

Furthermore, the cone doesn't narrow itself. If you don't actively work to reduce the variability of your project*, the cone of uncertainty quickly becomes a cloud of uncertainty. When will the software be done? Who knows. That's one reason for the long, dismal history of software project failure.

You may also be familiar with this software proverb:

The first ninety percent of the task takes ninety percent of the time, and the last ten percent takes the other ninety percent.

Getting trapped in the Cone of Uncertainty is a classic software project mistake. You think you're 99 percent done for months. It's a cruel failure of perspective that's endemic to the profession of software development.

It reminds me of the popular Mystery Spot tourist attraction in nearby Santa Cruz.

mystery-spot.png

I've been there. The Mystery Spot is a tacky tourist attraction, sure, but it's fun. And even if you're a complete skeptic and card-carrying Mensa member, the Ames Room illusion is incredibly convincing when you, and everyone around you, is standing in it.

Ames Room illusion diagram

Are you really 99 percent done? Or is your entire project stuck in the early, distorted part of the Cone of Uncertainty where you only look 99 percent done? Sometimes it's awfully difficult to tell the difference.

* This is something the book goes into great detail on, naturally.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror