Estimation Pitfalls: Why Software Project Estimates Go Wrong
It’s often the responsibility of a project manager to answer the most frequently asked question: “How long will it take to complete the task?” Even though PMs do their best to give the most well-meant answer but in reality, it is still a big guess. And when it turns out wrong, managers have to explain why software development estimates are so difficult.
Let’s have a look at the analogy by Tim Platt – to understand how hard it is to estimate software development, consider how we estimate car journeys.
For example, you live in London and plan to visit friends in Cardiff. The distance is around 130 miles. If friends ask “What time will you arrive?”, you won’t say “I’ll arrive exactly at 3 pm.” You are more likely to say “I’ll arrive around 3 pm” or “I’ll arrive between 2 pm and 4 pm, depending on traffic.”
In other words, you give yourself a 50% margin of error. Why so? You might be an experienced driver and you might have driven from London to Cardiff before, but you still can’t give a more precise time because of the unpredictable nature of car journeys – traffic jams, roadworks, accidents, random car breakdowns, wrong turns, bad weathers… you name it.
Even though this could be taken into account when making estimates, but without knowing exactly how and when they will happen, it’s impossible to tell precisely how they will affect your travel time. And this aligns perfectly with software development estimates.
- Accidents: any accidents can occur during software development from accidently deleting the database to spilling coffee on the working backup server.
- Infrastructure changes: the team decide they need to upgrade all the network cabling, taking down access to Github, NPM, etc.
- Equipment failure: laptops and servers fail, software licenses expire, team members get ill or quit… the list goes on.
- Technology upgrades: there are always new features (or a new version of your favourite programming languages, IDE, etc.) you have to keep up with.
- Noises: you may have to deal with unplanned mini-projects or urgent meetings that are likely to ruin your time estimates.
- Hidden complexity: there is always hidden complexity in a system as requirements unfold and we discover unplanned interactions between components.
Though project software estimates are difficult to make, there are four strategies that will help you give the most workable answer:
#1. Think beforehand
Look for things that may trip you up. Make sure you discuss them with your team before they become a real problem.
#2. Have a backup plan
Have a plan and prepare mitigations in case your project is going over the deadline.
#3. Regular updates
Every time you make progress, explain what has been improved, what knowledge you have acquired and where you’ll be able to be more precise/accurate. Even if no-one is asking.
Follow a transparent approach when it comes to explaining the major causes of uncertainty – be honest about what you know and what you don’t know. Make sure stakeholders understand the methodology as well as you do – this is how you can agree on the process and its results.