No matter the project size or resources, project estimation is no easy feat. From how to reduce work complexity to tips for working with Agile and Kanban methodologies, we go over project estimation techniques that will help you make your estimations workable and as accurate as possible.
Subscribe to our blog
‘Estimations’ are always an interesting part of projects. Most of us get in touch with them at the beginning of a project when we need to make a quantitative estimate of project resources, timeline and total costs. They're often made as a prerequisite for a project to be sold, so from that moment, they're often seen as a commitment to get the project executed within the given estimated deadline.
However, we often forget that an estimation is, per definition, always uncertain. We estimate based on the input we know at the moment (teams, tasks and processes). But you're not sure about what you don't know, so you're giving a number that might not be accurate.
When you should predict the outcome of a throw with two rolling dices, the chance you'll get seven is statistically the highest on the long term. But don't forget that there's a lot of cases where the outcome will be different. If you happen to graph this, you'd see the outcome is more like a shape than a number: multiple outcomes are possible, and this is the same for project estimations.
What we also often tend to do when estimating, is taking an average. "Last time it took us 10 days to develop that functionality, the time before it took us 100 days. So let's say 55 days now". But beware of the flaw of averages! It's perfectly possible your next project will end up again with 100 days.
That said, let's look at 3 techniques to make your project estimation workable and as accurate as possible.
The way we make estimations depends on the context. The Cynefin Model dictates there are different categories of work, and the way to estimate tasks also differs for each category:
- Obvious work is simple work we don't have to think about. There's a direct link between cause and consequence. We usually list this work in procedures or we automatize it. For example, booking a meeting room in your company. Obvious work needs no estimation – you just do it.
- Complicated work is executed by professionals, experts in that field with the right knowledge and skills. There are only a limited amount of influencing factors, for example, as a programmer coding an application that orders numbers. In complicated work you can make estimations using the appropriate project management tools.
- Complex work contains a lot of uncertainty but delivers greater added value. There's no direct link between cause and consequence, and it might even look really obvious when you look back at the result. But in reality, you often need multiple iterations to get to the result. When doing complex work, you use agile tools. That way you're reducing the granularity of the work and you're delivering small bits of added value. You're making the complex work complicated.
Often we see estimations are expected as if we're working in complicated environments, but in reality it's more like a complex environment. So it starts with determining the right context and acting accordingly. ‘Estimating’ works when you know exactly what needs to happen; it will not work when you don't know what needs to happen.
The following rules of thumb can be used in a complex environment:
- Distribute knowledge as much as possible in and between teams.
- Try not to be a middle man adding up two estimations received from different persons.
- Bring teams together and let them discuss between each other. Often the result will be a much more dynamic and productive conversation and the estimation will be much more accurate.
- And reduce granularity, making complex work complicated first before estimating it. Try to get clarity on the project, for example, with story mapping.
Measuring & forecasting
In ancient times, estimations were done using deterministic, human, randomized or random methods. Signs were observed and based on those a prediction was made. What's the fundamental difference with how we're doing it nowadays? Today we're using historical data to make new predictions - measuring is knowing. We're evaluating the accuracy of the predictive method and we're changing it in a continuous feedback loop.
The measured output can also be used to forecast. There are different techniques for that. For example, the burn-up chart is one of them. Based on the work done and the amount of time that was needed for that, you can forecast how long you'll need to complete the full backlog. Be careful, however, as you're quickly inclined to use an average velocity based on the previous sprints. Also here, the flaw of averages is applicable. A cycle time scatterplot or a Monte Carlo Simulation are other examples on how to make predictions.
Having a continuous and consistent flow facilitates the prediction process. We need to monitor the work that is done by the team and make sure it can keep going at a regular pace. That way you can be more confident about the further developments.
How do you control flow? Once again, there are different ways to do this. Managing the influx is probably the most important one, but requires an appropriate system to do it. The second way is to determine the right end-to-end priorities, especially when managing multiple projects at the same time. Project managers are usually the ones responsible for agreeing upon each project’s priorities.
There are several other techniques that facilitate flow, such as visualizing the workflow and limiting the work in progress, also know as the Kanban principles. A great way to visualize the flow is using a cummulative flow diagram in which you can see the amount of work to do, ongoing and done at any point of time. It gives you a good idea of the work that is in progress and the average lead time of the different work items.
- Research says 20% of the projects don't succeed, so don't assume that your project will be an exception, because exceptional situations are actually the norm.
- Whatever project estimation techniques you use for determining your projects’ timeline, ensure you double check your findings with more experienced colleagues or consult lessons learned.
- Working agile with iterations to make the work more tangible is the most suited project management approach for complex environments, where the requirements are not yet concrete.
- When working Kanban, you can use different techniques to predict the velocity of the coming sprints and make sure they're as realistic as possible.
- Finally, creating flow will help you manage the influx of work items and set priorities, and facilitate your prediction process when working Kanban.
About the author
Dimitri Honlet is Project Manager at AMPLEXOR Belgium. For the past 6 years, he’s been delivering successful projects for customers from A to Z, managing teams of skilled consultants and developers, controlling planning, scope, quality and budget. He has gained experience working on numerous projects in different technologies (SDL, AEM, Drupal, SharePoint) for customers active in the banking, manufacturing, retail or public sector. He’s passionate about exploring all new trends and methodologies in Project Management in order to continually improve delivering web development projects according to plan.