Estimation is a big topic and there are many posts to write on it, but first let’s address one confusion about Software Engineering estimates:
Estimates are not delivery commitments
Maybe that sounds daft or maybe it’s obvious but far too many companies that I talk to are asking their team to estimate in hours, make a deadline at the sum of those hours and then hold the team to that deadline. Guess what – these deadlines get missed. Pretty much always.
noun: estimation; plural noun: estimations
a rough calculation of the value, number, quantity, or extent of something.
Expectations of delivery date come from a plan, not from an estimate. Plans take in to account availability, team makeup, blockers and dependencies. Estimates do not. Creating a realistic plan can be an art form but it is essential to convert estimates to a timeline that the team and company can believe in. If this process is collaborative or otherwise achieves team buy-in then you have something that people can commit to delivering.
And if your team has committed to a realistic deadline then you have a much better chance that the company can rely on it’s delivery date.
In a future post we will discuss how to get a good estimate quickly and how abstractions like Story Points can lead to better plans.