What's the cone of uncertainty and how can we use it?
The Cone of Uncertainty is a way of visualising the range of outcomes
that can occur. It makes it clear that uncertainty is inherent in
software development.
In the near-term, we can be reasonably confident about the range of
outcomes and risk we face. The further into the future we look, the less
inherent certainty we have.
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.
The stages of the PandA framework can be
mapped onto the Cone of Uncertainty.
Framework as seen with the cone of uncertainty
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 the work 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 what the next best hypotheses
to test are. This gives the team 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 large amounts of uncertainty about what
the environment will be by the time we actually commence the work.
Looking even further ahead, the team records the possibilities they
may look at in the far future. This will help to inform what the
strategy should be as we 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 view their roadmap leveraging this knowledge about
future uncertainty.