The Cone of Uncertainty is a way of visualising the uncertainty inherent in software development.
In the near term, we can be reasonably confident about the range of outcomes and risks we face. The further into the future we look, the less certainty we have about what will happen as there are so many different scenarios to consider.
We try to manage this uncertainty by dividing work into small slices. In Scrum teams, this is done within sprints. In Kanban, teams will take small slices of work at a time so that they can iterate and learn as they proceed towards a goal. Breaking the user value we are trying to deliver into smaller steps enables us to make adjustments or pivots as new information becomes available. We need to be cautious about over-indexing on short-term considerations, so that we do not indulge in a series of small, local optimisations that don’t help us to meet our goal of solving a customer problem. Having a framework, such as PandA, can help to ensure the strategic goals stay top of mind while product teams work on the next most important thing.
The stages of the PandA framework are mapped onto the Cone of Uncertainty in Figure 1.
The appraised step relates to released software, so there is no uncertainty. Here the team measures the impact of the software it has delivered.
Promised work is that being completed by the team in the current increment or sprint. The team knows what it is working on with a clear view of what it is aiming to learn.
Prioritised work relates to what's coming next. Product, Design and Engineering have co-operated to identify the next best hypotheses to test. This gives the team a view of upcoming work and the key assumptions being made that need to be de-risked.
The potential step refers to work that the team might take on in a few months' time. The team should be forming hypotheses about what they might do, acknowledging the high level of uncertainty about what the environment will be by the time they actually commence the work.
Looking even further ahead, the team records the possible customer problems they could solve with their product. This will help to inform product strategy and experimentation as they move forward.
In Summary
The Cone of Uncertainty is a useful visual tool that demonstrates that software development teams are in the risk management business. PandA enables teams to create a flexible roadmap that leverages this knowledge of future uncertainty.
An earlier edition of this article was published on 26 Apr 2023