Estimating the work, effort, and time activities will take during a project is a very challenging exercise. However, it’s also a very important and crucial piece to any project management. How estimation works in agile projects is slightly different than in traditional projects or daily operations, but many of the strategies used in one form can be used or tweaked to be used in agile project management.
Estimation is needed in various situations in agile projects. When managing agile projects we depend on the agile development team to guess how long work items or tasks will take to complete. The size of effort is estimated from user stories. We will examine how these user stories roll up. We’ll developing estimates of sprint backlog, product backlogs, and overall project durations, whether that be by utilizing story maps, project plans, or a big pile of sticky notes piled on a table. It is all estimation. It is all needed for our abilities to manage and complete our agile projects.
Agile vs Traditional Estimation
There are different challenges surrounding estimating agile project work and overall duration compared to traditional project work and duration. Both are challenging, but agile adds a bit more challenge and creativity to the mix.
By the inherent nature of agile, estimation is imprecise. Changes are common and encouraged. A lot of work is conducted without any exact knowledge of what is going to happen and what obstacles lay ahead. Naturally, you never know for certain what feedback the customers, product owners, or the rest of the agile team are going to provide on the work.
Even with these challenges, estimation is crucial. Without estimation, it is nearly impossible to plan with any timeboxes and scheduling boundaries. In order for us to establish workable and realistic sprints, we must have educated workable estimates. By aggregating reasonable sprint estimates, we can guess at longer estimates. With all of this is a desire to estimate the entire duration of the project. In agile projects we are faced with some more variations and uncertainty. It may require more flexibility in our estimates and a bigger willingness to change and update estimates as often as they are deemed necessary.
Whether managing a traditional, waterfall, or agile project, estimations serve the same function: to get a realistic guess at how long something — whether an activity, a group of activities, a cycle, or an entire project — will to take to complete. All the effort associated with a project takes time, the question is how much time.
There are many ways to approach estimating a duration. Many techniques work in agile project management the same as they do in traditional project management, techniques such as analogous estimation, which is the use of analogies. For example, Zahid in our Employee Benefits app case study could recall a time when he built a menu bar for an app. Using the experience and understanding of that previous, similar effort, he can apply that analogy to the current effort and his knowledge of the current situation. Obviously his last time working on a similar effort is not exactly the same as this situation, no matter how closely related the two actions are. They are two separate activities, each with their own variables, constraints, and interconnected factors, any of which could produce differing actual times. Nevertheless, having an analogy and being able to use the analogous technique, especially with a bit of expert knowledge and judgment thrown in, gives a better estimate over giving an estimate with no prior knowledge or situations to reference.
Beyond analogous and expert judgment, two other universal estimation techniques are parametric and three point estimation.
If you are not familiar with these two techniques, I’m going to explain them in my next blog!