Considering that the discussed project is meant to evolve over time, it’s worth to choose hourly billing, keeping in mind that this is probably the best approach that assures flexibility and high quality. The billing method alone, however, doesn’t fix the main problem, as sooner or later we’d still be required to assess the overall level of complexity of the whole project, the eventual time of completion and the associated risk. One of the great estimate method based on the relative values was discussed in one of our previous articles on story points.
Three-point estimation in the complex software projects
When planning a large and complex project it’s also worth considering implementing at least some elements of a three-point estimation method which is a part of the Program evaluation and review technique (PERT). This method was initially invented by the US Navy in the 1950s, nonetheless, it may be also applied in software development. The whole idea relies on the probabilistic method and assigning three hourly estimates for each task.
The basic assumptions of 3 points estimates are fairly easy:
- Prepare a breakdown of tasks that are required to be done as part of the project
- Estimate each task individually assuming different approaches
- Then you should calculate the weighted mean (so-called Beta distribution, not to be confused with Triangular distribution, which is a simple mean) according to the formula
(Optimistic + 4Most Likely + Pessimistic) ÷ 6
Most likely time is the most probable and therefore it has the biggest weight.
- Next, you should calculate the standard deviation (σ)
σ = (P - O) ÷ 6
- The standard deviation allows us to determine the percentage probability of the confidence level of the given estimate. Depending on the number of sigmas (σ), the confidence level of the estimate is as follows
|Number of Sigmas||Confidence level|
The above means, that adding a margin of 1 sigma we get a 68.25% of the confidence level of the estimate, while adding a buffer of 2 sigmas, we should be able to tell in 95.46% confidence that the project will be finished in the given time. It may be easily noticed, that that the most optimal solution seems a buffer of 2 sigmas, as lower numbers are giving a low level of confidence, whereas higher - a significant increase of the safety margins with a rather little increased confidence.
How to deal with the risk?
What is worth noticing, depending on the difference between the optimistic - pessimistic value, the final estimate of a task may vary quite substantially. We may assume that the greater that difference is, the higher the uncertainty related to the task. When dealing with a difference between optimistic and pessimistic estimate, we may either:
- accept this fact, approving a certain risk in the task with all its consequences;
- attempt to limit this risk by splitting the task into smaller issues, trying to find the weak points of the whole solution or
- initiate a discussing in the team trying to find the roots of this situation. Perhaps you should be able to reduce risk by defining some additional assumptions or you should talk to the stakeholders to get additional details on the required functionality.
Since the 3-point estimation method doesn’t have fixed safety margins, and the additional estimation buffers depend on the level of risk we may assume that this method is more precise. Instead of presenting an average total time that includes an average level of risk (defined based on the arbitrary guess or the past experience), 3 point estimate method is directly related to the nature of the given task.
Cons of the three-point method
The discussed method should work best in a large complex project with a high number of unknowns. The task in such project typically will have a high number of differences between optimistic and pessimistic values and therefore they will be the best source for further calculations and risk management.
Regardless of all its benefits, 3 point estimate will not fit all cases. Despite it works best in large projects, usually it also requires a greater engagement of the team members and some more time spent on the actual analysis and assigning 3 estimates to every task. Unlike story points estimation, 3 point estimations are highly subjective and the estimation process of unknown tasks requires experience and expert knowledge gained in some past projects.
Finally, it’s worth to point out that even you won’t decide to implement all assumption of the 3-point estimation method, its basic assumptions are extremely easy and may potentially be applied to the everyday practice of estimating individual task in hours.