An estimate serves 3 main purposes.
- Informs timeline, budget, and staffing for project/task planning
- Sets realistic expectations between stakeholders and the delivery team
- Promises the stakeholders that the delivery team will communicate before the project goes off the rails
And this is why estimates are not lies.
Estimates are invaluable for us to project plan.
For example, we know a project requires 12 weeks of work from 2 people. But we have a deadline of 9 weeks from now.
We may choose to staff 4 people on it to gain that extra few weeks of efficiency.
Notice this plan doesn't cut the delivery time in half even though we doubled the size of the team 🙃
Most important, estimates are an agreement between us and our stakeholders. They help us communicate expectations. And if we slip away from the original timeline, we’ll notice and won’t leave the stakeholder in the dark.
If we tell them the project will be done in 9 weeks, they won’t be wondering what’s taking so long at week 4.
If they’ve added scope (scope creep!) or our assumptions were wrong, we might reprioritize work. Regardless, we’re promising that we’ll have those conversations with stakeholders so they’ll always be in the know.
You may have seen an estimate given as a range. Why?
Estimates will never be 100% accurate. After all, no one can predict the future. Range or low/high estimates can help set better expectations. They show what would happen in a perfect world versus the worst case scenario.
Ideally, the diff between the low and high should be <= 20%. The larger the diff, the more we need to learn for a better estimate.
Estimates play a crucial role in project planning, keeping expectations realistic, and ensuring open communication with stakeholders.
They're the trusty tools that help us steer our software projects in the right direction.