It is notoriously difficult to estimate how long something will take to do. Take, for example, travel. A car journey to London from Brighton should be easy to estimate based on the distance divided by a reasonable average speed. But what is a reasonable average speed? Traffic should also be considered if the estimate is to be accurate and, for the same reason, roadworks. There are other considerations that would affect the estimate but what is obvious from this small set is that it is not possible to guarantee an estimate’s accuracy at this stage.
If we take the example further, and look at how such an estimate would change over the duration of the journey, we can see that the only time the estimate can be guaranteed as 100% accurate is once the journey is complete – when the estimate is an actual.
The situation is no different in software development and the accuracy of the estimation of software tasks also increases over time. This change in accuracy over time often referred to as the ‘Cone of Uncertainty’.
The Cone of Uncertainty shows how an estimate will start with a high degree of uncertainty – either over-estimated or under-estimated – which then improves over time as more is known about the task(s). The diagram shows several common stages within a project and shows how accuracy will be increased as the project progresses.
If, therefore, it is not possible to guarantee the accuracy of an estimate, then another approach is required.
It is reasonable to assume that an estimate for completion of a single task could be bounded by a range of best and worst possible cases. If such a range is further defined as having a most likely completion point, an estimation profile for the task can be demonstrated.
Program Evaluation and Review Technique
The Program Evaluation and Review Technique (PERT) for software estimations requires developers to provide a range of estimates for a task. PERT requests a best (
B), likely (
L) and worst (
W) case for each task with which one can plot a probability curve for the task. The probability curve plots the probability of completion against the completion time.
From the ranged estimate an expected case (
E) can be calculated that has a probability of 50%. As can be seen in the graph there are a number of ways of calculating the expected case, based on a weighted average of the best, likely and worst estimates for the task. The weights selected for the expected case should ideally be based on historical data from previous actuals and estimates. In the absence of such historic data, the
E=(B+4L+W)/6 equation is the prudent choice.
Another benefit of the ranged estimation approach is that it highlights tasks that have a high risk. These can be seen as tasks with the largest range. Where such tasks are identified action can be taken to further understand their nature and therefore provide a more accurate estimation. This can be done through:
- research and analysis
- additional requirements workshops
Combining multiple tasks
As multiple tasks are estimated a number of task probability profiles will be created. The tasks can be combined to produce an overall project profile that describes the full project.
Understanding the project profile is useful but the practicalities of project scheduling and costing dictate that a single figure is produced. As has been demonstrated, completely accurate single estimates are not possible. However, with the application of some basic statistical methods, it is possible to produce estimates at known probability or confidence levels.
The importance of selecting the right confidence level can be seen in the chart below which shows how the confidence level and break-even point for a project define whether the project is likely to be profitable or loss-making.
Understand that estimates have two dimensions
Effective delivery of projects on time and on budget requires the application of a clear risk management approach throughout the whole project life cycle. The key learning from this approach is that any project estimate is meaningless without an accompanying confidence level. Applying this principle allows the management of both dimensions in project estimation, which in turn improves the identification and mitigation of risks throughout the project life cycle.