As anyone who has been involved in software development knows, estimation is often more art than science.While there are many different approaches to estimation, they can generally be classified into a few broad categories. In this article, we will take a look at six different approaches to estimation as used in Agile planning that represent progressive levels of Agile estimation maturity.
1. Proper Hours / Days
The first approach is to estimate in proper or real hours or days. This is the most traditional approach and is still used by many organizations. The advantage of this approach is that it is easy to understand and can be used to generate a pretty good estimate of the amount of time required to complete a given task. The downside is that it can be very difficult to accurately estimate in hours or days, particularly for complex tasks or in complex problem spaces.
This approach is the lowest level of Agile estimation maturity (and therefore business agility) since it requires that individual human “resources” are pre-assigned to tasks to ensure that the estimation is matched up to a specific skill and experience level. Clearly, this violates the principle of self-organization that is so essential for agility. Nevertheless, early in an Agile transformation, this approach may be maintained in order to help communication with stakeholders who do not yet embrace agility.
2. Ideal Hours / Days
The second approach is to estimate in ideal hours or days. This approach is similar to the first one, but instead of estimating the actual time required to complete a task, you estimate the ideal amount of time that would be required if everything went perfectly. The advantage of this approach is that it can help to prevent scope creep by forcing you to think about what is really necessary to complete a task. The downside is that it can be just as difficult to accurately estimate in ideal hours or days as it is in actual hours or days.
This approach tends to encourage some very good discussions about the gap between ideal and real effort which, in turn, can be fertile grounds for continuous improvement efforts. Typically, processes and tools are “blamed” first for the gap, but certainly culture, mindset, habits, utilization levels, skill levels and many other factors will be investigated if the continuous improvement efforts are sincere.
3. Individual Points
The third approach is to estimate in individual points. This is a more sophisticated approach that is often used in conjunction with other methods. In this approach, each task is assigned a certain number of points based on its complexity. The points represent the relative level of effort for the individual who is doing each task as compared to the other tasks that person is doing. However, points are not really comparable between the individuals doing the work and there is still a high obstacle to true self-organization in this approach. The advantage of this approach is that it can be very accurate if used correctly. The downside is that it can be time-consuming to generate estimates using this method and it may not be appropriate for all types of tasks (ie. complex tasks or tasks in complex problem spaces).
4. Team Points (Story Points)
The fourth approach is to estimate in team points or story points. This is a similar approach to the third one, but instead of individuals estimating points on their own tasks, a team collaboratively estimates in a kind of gestalt about the effort for the whole team to accomplish a task collaboratively. Again, the points here represent relative effort for each task compared to the others, but now the points are “stable” and can be used for long-term planning. This advantage is significant if used correctly. The downside is that it can be time-consuming to generate estimates using this method and it may not be appropriate for all types of tasks.
Common techniques used for this type of estimation are “planning poker” and “the bucket system”. These techniques are fully-compatible with most Agile methods and therefore this type of estimation is the first which represents positive Agile estimation maturity where estimation is no longer hindering business agility.
5. Statistical Lead Time
The fifth approach is to estimate using statistical lead time. Basically, how long does it take from the time a task is requested, to the time it is delivered to customers/users, discounting for tasks that are ultimately discarded. This is a more advanced approach that uses statistical techniques to generate estimates, and therefore requires careful record-keeping (mostly done by software tools). The advantage of this approach is that it can be very accurate if used correctly. The downside is that it can be time-consuming to generate estimates using this method and it may not be appropriate for all types of tasks.
This approach allows teams to do important analysis of variation in their time to complete tasks by looking at “common causes” or “special causes”, and creates a much higher level of transparency between those doing the work and their stakeholders. This transparency often leads to significant understanding of how agility benefits organizations working on complex problems, and can therefore catalyze a shift in mindset with more risk-adverse stakeholders who may have concerns about the value of agility.
The sixth and final approach is to “estimate” using pure just-in-time (JIT/#noestimates). This is an extreme approach that basically says that you should not try to estimate at all, but instead just start working on a task and see how long it takes. The advantage of this approach is that it can save a lot of time that would otherwise be spent on estimation. The downside is that it can lead to scope creep and may not be appropriate for all types of projects.
A JIT approach to work, particularly when paired with a robust work refinement and commitment approach, is the highest level of Agile estimation maturity and enables very high levels of business agility.
Agile Estimation Maturity
As organizations move towards more agile ways of working, estimation practices also need to evolve. In the early stages, estimation may be as simple as estimating the number of hours or days required to complete a task. However, as organizations mature, they may start to use more sophisticated methods, such as estimating in ideal hours/days, or assigning points to tasks which can then be used to estimate the team’s velocity.
More advanced organizations may even start to use statistical methods to estimate lead times, or move to a completely Just-in-Time (JIT) approach where no estimates are made at all.
Each of these approaches has its own advantages and disadvantages, but they represent an increasing level of maturity for business agility. As organizations become more agile, their estimation practices need to evolve to keep pace.
Register for our Estimation and Planning for Agile/Scrum Projects course on Udemy!