Estimations are such an intricate topic. The psychology of it, the biases that we have impacting it are numerous.
In many cases the estimation process itself is abused. Pushing people, negotiation, and “Dead lines.”
First we need to understand the context of estimations. Estimations are usually referred to when doing something and we need to know the cost (Time and money) to achieve the “Done” state of that work. I will focus on the time aspect as it affects money and it is the resources that we can never get back.
Furthermore, we need to understand that in simple situations or repeated work estimation is much easier. How much time would it take you to drive from work to home. You memorized the route and can answer to a high level of confidence. What about driving to a different area, or there is some event that causes closures along the way. Even google cannot give you an accurate estimate there.
So the hardest thing with estimates is getting high level of confidence in types of work that is relatively new to us.
Let us first break down the common mistakes with estimates and move towards a better way of estimating.
With minimal context, the concept of points was conjured to avoid time estimate. The concept helps team members understand the relative effort between the different stories and have a healthy discussion about how to approach it in an effective way. If you bring it back to estimation you will get into a lot of problems, such as sandbagging and micromanagement.
And since story points are a relative effort, each team builds an understanding of what that means for them. If you get someone from a different team they most probably do not have the same relative effort.
So comparing the stories of velocities across teams or even trying to enforce a standard will take away the value of the discussion.
This is such a famous problem that I will only address slightly and with a story. I remember a client we had and when we provided estimation he would always and without fail say… why? it is only an IF Statement.
If senior members in the team sees it differently, they should have the right conversation and coach junior members for estimates to be closer and never enforce it.
The solutions?? Empiricism, use yesterdays weather.
It baffles me how little time teams provide to understand the variables of their previous work, challenges they had in the past, and create an estimation model that would help them better predict future works effort.
Here is the simplest example? We are doing a page, with 3 buttons, 2 API calls, ….etc. How much time should it take us? Well, have we done something like it? It is probably around that time? Maybe a bit better if we improved as a team. But for predictability, the same.
The first thing I do when I work with teams is improve their predictability. To make sure they finish what they commit to finish in the sprint. Without that, speed is just an illusion like running a race care with no tires.
Here is a short video that speaks to some challenges with estimations and planning in general with a focus on biases in human thoughts.