Estimation is an exercise in the illusion of control. It allows us to believe we can accurately plan for the future. We estimate because we hate uncertainty.
Hereâs the problem â it isnât possible to know how long something you have never done before will take. The only thing you could somewhat accurately estimate is something that is exactly the same as something done multiple times before. If thatâs the case, and for some reason we arenât automating that, then my slow descent into madness will start to throw it off anyway. Estimation can only be based on the past, but the present is already different, and the future is always uncertain no matter how much we wish it wasnât.
You can spend the time estimating instead of implementing, but it wonât actually change how long things will take to do in reality. If you do happen to have the power to warp time and space to change how long something will take to do by writing a number on it, then do yourself and your team a favour, and put a 1 on everything. Alternatively if you have the power to predict the future absolutely accurately, then there are many lucrative choices for you. Donât waste that power story pointing.
Are we just throwing out all the processes then?
I did hesitate here, but Iâm going to go with ânoâ. There is actually one that is critical. One that if you get it right makes every other process less important. Prioritisation. Good prioritisation is absolutely critical.
In most software projects there is either finite time, or finite money. If you are happy to take a reduced scope if one of those runs out, then the estimation process hasnât really helped. âBut we would have known how much weâll get at the end up frontâ, you cry. Of course you wouldnât have â youâll have gotten a guess. You may get more features, you may get less. Exactly the same amount as if you hadnât estimated.
Now, some people may tell me that if the estimation said they wouldnât get everything in time, then they would just pressure the development team to work a whole lot more hours per week. Please note:- It is still going to take the same amount of actual working time- We really need to have a different chatâŚ
I have some questionsâŚ
**How will know what to work on?**Whatever is top priority.
How will I plan my work? When you finish one thing, do the next highest priority thing.
**How will I know when weâll be done?**You wonât. You never did. Weâre just being honest about that now. Do frequent check-ins with your Stakeholders to show how far you have got. Use that to give them a better idea as you go along of what will and wonât be done, and make sure they constantly re-evaluate the prioritisation of items.
The discussion should always be about getting the most important things done, not the most things done.
**How can I hold my team accountable â I wonât know velocity!**Do you not trust your team? Do you think theyâre slacking off, not working as hard as they could? Who created those estimates previously â if you canât trust the team now, why did you trust their estimates?
**Is there really no value in estimation?**There can be a value in the conversations that things like story pointing sessions allow. When you have an inexperience team, they wonât know what things are complex (especially if you are working on a tangled legacy application) so will struggle to know how to break things down. If you have a large team, communication can be harder, so information sharing about your application or ecosystem takes longer and is more complicated. However there are other ways to have those conversations, and if your focus is âestimationâ it can be easy to lose sight of the fact that the conversation, and not the numbers on the stories, is the key piece.
How do you know youâre right? There is a lot more that can be said here, and I can only speak from my own experiences. There are obviously nuances not covered here. You may agree, you may not. Feel free to comment and let me know, or alternatively give me all the claps. Either way Iâll be playing snap with my planning poker cards while other teams are fighting over whether something is a 3 or a 5.
I hang out on twitter @virtualgill where this conversation started but didnât fit into tweets.