Development
Requirements and right questions
Inception is Not the Requirements
Software projects
Alpha and Beta releases
project factors
“Do it right” or “Do it ASAP”?
Lateral thinking
Parallel thinking
How do I use a discovery phase for my projects?
Cone of Uncertainty
REQUIREMENTS  
The cone of uncertainty
In complex, rapidly changing environments, certainty is unattainable.


The cone of uncertainty
What must be clearly acknowledged is the distinction between prediction and forecasting. In complex, rapidly changing environments, certainty is unattainable. The best available input to executive decision-making is therefore a forecast—grounded in current data, assumptions, and constraints—rather than a fixed prediction. Recognizing this limitation enables more resilient planning, better risk management, and more informed strategic choices.

The cone of uncertainty is a concept commonly used in software development, where both technical and business environments tend to change rapidly. Although the term itself is relatively modern, the underlying concept—often described under different names—has long been a foundational principle in cost engineering.

Over time, we have learned that much of today’s work—especially in technology-driven initiatives—is inherently complex and resistant to precise prediction. Despite this, leadership teams are routinely asked to commit to specific answers to questions such as:
• When will a defined scope of work be completed?
• What outcomes can we realistically expect in the next month or over the next year?
• What level of investment will be required?
These are not unreasonable questions. In fact, they are essential to effective governance, financial planning, and sustainable growth. Organizations cannot operate responsibly without some degree of forward planning.
In many industries, external conditions evolve slowly enough to be treated as effectively static over the life of a typical project. As a result, traditional project management approaches emphasize thorough upfront analysis and detailed planning. In such environments, uncertainty is reduced to an acceptable level before major investments are made, allowing risk to be managed comfortably. Consequently, uncertainty decreases rapidly early in the project lifecycle, and the characteristic “cone” shape is less pronounced.

Software development, by contrast, operates in a highly volatile environment. Market dynamics, user expectations, and technological constraints shift frequently, creating continuous pressure to reduce uncertainty over time. As a result, projects must actively and continually work to narrow the cone of uncertainty rather than relying solely on upfront planning.

The cone is narrowed through ongoing research and through decisions that eliminate sources of variability—most notably decisions related to project scope, including what is included and explicitly excluded. If such decisions are revisited or reversed later in the project, the cone of uncertainty widens again, increasing risk and reducing predictability.