Cone of Uncertainty in Software Development
The cone of uncertainty simply implies that estimation uncertainty decreases as a project progresses.
The concept Cone of Uncertainty is the outcome of statistics from software projects over the past 50 years. Introduced in engineering and chemical engineering in the 1950s and further advanced in software development in the 1980s. The concept of the Cone of Uncertainty was first introduced by the founders of the AACE International (American Association of Cost Engineers) according to Wikipedia for research in engineering and construction in the chemical industry. Later, the Cone of Uncertainty was used broadly as a graphic in hurricane forecasting, where its most iconic usage is more formally known as the NHC Track Forecast Cone, and more commonly known as the Error Cone, Cone of Probability, or the Cone of Death. In the software industry, the project managers and software developers use the cone of uncertainty to guide and manage project estimations.
In software development, the term Cone of Uncertainty was first used in Steve McConnell's book Software Project Survival Guide in 1997 when he proposed it as a standard type for estimating classification systems with uncertainty or unknowns. It illustrates how estimations become more accurate over the life cycle of a project.
“The primary purpose of software estimation is not to predict a project’s outcome; it is to determine whether a project’s targets are realistic enough to allow the project to be controlled to meet them” — Steve McConnell.
In the early stage of the software projects, the level of accuracy is low so the error margin is wide. The project may start with many unknown and unclear requirements. In the initial gathering requirements phases of the project management, any task estimates will be very loose and may be wildly inaccurate. Through the software life cycle, the common pattern emerges where the degree of variability decreases as the project approaches the completion phase. Understanding variability is the key to developing realistic project plans, thus the project may start with a rough estimation varying by plus or minus 40 percent at the inception planning phase.
The cone of the uncertainty graph is represented by time on the horizontal axis and the estimated variance on the vertical. The range of overestimation lines converges to near-zero as the graph is followed to the right with the progress of time. At the start of the project, on the timeline uncertainty is greatest at the large end of the cone and the small end of the cone is at the end, where all details are known.
Key Benefits of using the Cone of Uncertainty:
In software development, the Cone of Uncertainty is used to manage projects where the requirements and tasks are changing constantly, including business requirements and technologies used in product development. Creating a direct relationship between Engineering costs and the number of uncertainties in software development.
Why the Cone of Uncertainty matters
The cone of uncertainty is highly desirable in situations where project managers are estimating the delivery costs for software requirements. It affects the software team’s ability to estimate production efforts, business processes, timelines, and features. The further the developers are away from actually implementing software requirements targets, the more uncertain and inaccurate their estimates become.
- Decreases uncertainty
- Realistic and accurate estimation
- Effective planning
- Reduces risks
- Measure resource allocation
- Determine expectations