Estimation Risk
This technique for communicating the risk of estimates being wrong on a software project was supplied by ThoughtWorker Robin Gibson. Robin is a process improvement guru currently working in Sydney, and keeps this is his kit bag to help bridge the communication gap between business and IT groups.
The data collection is quite simple. Robin collects all of the stories in a agile project into a spreadsheet, where he groups them by functional area. In this case, there are 350 stories in 18 functional areas (the functional are names have been changed for confidentiality reasons). Then every story is characterised as follows:
- It is prioritised as either critical, essential or non-essential
- Its completeness (do we know all of the story details?) is set as complete, incomplete or unknown.
- Its volatility (is it likely to change?) is set as low, medium or high
- Its complexity (how hard is it to build?) is set as simple, standard or complex.
The priority levels can be averaged across a functional area to find the priority of the area overall. The completeness, volatility and complexity together represent the risk that the estimate for that story will be wrong.
This data can now all be charted like this:
Each bubble represents one functional area. The size of the bubble changes depending on how many stories are in that functional area. The highest priority functional areas are on the right-hand side of the graph, and the lowest are on the left. The highest-risk functional areas are at the top of the graph, with the lowest-risk ones at the bottom.
Its now easy to see all of this information at a glance. Any functional areas in the bottom right corner of the graph (high-priority and low-risk) are no-brainers to do. Functional areas in the top left corner of the graph (low-priority and high-risk) might never get done.
But wait, there's more... The whole project can now have its estimates summarised in one simple pie chart for everyone to see. Our example yields the following result:
It can plainly be seen from this chart that only a very small part of the system is unlikely to have its estimates change. Even more startling, a full 19% of the system is highly likely to have the estimates change.
This information can be used in a bunch of different ways, from initiating requirements workshops of architectural spikes (both to help reduce estimation risk) to including appropriate contingency funds in the project budget. Whatever the outcome, sharing this information with your team will mean everyone is better informed.