Estimation and points is one of those topics where if I get into it I can rant/talk/discuss for hours. People who I work with no doubt know my views on how much ‘value’ I think estimation brings so I thought I would share my views with everyone to see if I can be convinced to change my view.
Just a simple Google search for ‘Estimation is hard’ brings up numerous results
Some of these reflect my thoughts on the complexity of Estimation but I want to take a different view and look at the Value of estimation.
Points are meant to be taken as an estimate of complexity but so often I hear points coverted to time, then the expected questions arise about why does team ‘A’ deliver X points but team ‘B’ only deliver Y points. Then ensues the discussion once again about how Points != Time and I think this is a natural question for business people when you work on sprints of a fixed time period (2 Weeks / 3 weeks).
From a ‘Project Management’ perspective estimation is seen to bring value as it allows them to plan for when work will be started and completed and when the development team can get started on the next task / project. They can also track ‘points delivered’ for a sprint and report that back to the business so they can see if work is getting faster / slower and even compare points delivered across different teams.
Note: I think comparing estimates across teams is a useless excercise and even comparing points in the same team but on different projects (some of which are new and shiny and others which are a mess of legacy spaghetti code) is a bad thing to be doing and will only lead to frustration.
I guess you are wondering then if I think comparing points brings no value then the whole estimation game brings no value? Well the answer to that is ‘not exactly!’.
I think if you are estimating story points purely for reporting purposes then I think the estimation excercise brings no value. I also think that reporting points back as a metric is also something which is of no value to anyone except the person doing the reporting.
However, I want to look at the other benefit of estimation and that is the encouragement of a discussion between developers about the complexity of a task. I think this does bring value, especially when you have a team who haven’t worked on a particular project before as they tend to ask questions that seem obvious to them but people who have worked on a project for a long time couldn’t see (The age old “Can’t see the wood for the trees”).
In summary I would recommend estimation as a tool for training / discussion but don’t report these estimates to anyone but the team, certainly don’t try and compare estimates and I would even encourage you to think about if ‘points’ is the right tool and look at other ways of estimating. I’ve heard teams using t-shirt sizes for example to prevent the ‘counting’ excercise that points encourages.
Most importantly of all however make sure you encourage the discussion / debate within the team when looking at tasks, I’m a firm believer that the best software design comes from discussion / debate rather than dedicated ‘architects’.