One of the questions that we get all the time is “why can’t you estimate better?” This is a good question, but it’s actually a trick question – and not the right question. What the questioner really wants to know is “why didn’t your actual effort match your estimate?” Now, this is a very good question, and it has a very good answer.
We know that we can think of a story as a request for value; in particular, we usually think of most development stories as if we were being asked for a solution to a problem. The effort it will take to provide the solution (for a story that involves coding) is based on the following four factors:
- the intrinsic difficulty of the story;
- how robust the solution must be;
- how hard it is to integrate the new code into the old codebase; and
- the abilities of your team, including the people, tools, environment, and so on.
Each of these four issues is essentially independent of the others, and each of them is difficult to figure out without doing a lot of upfront analysis and investigation – and even then it would probably not be too accurate.
In fact, the only way we can actually know all these factors is to do the story or, at least, to do enough investigation that you might as well have done (or at least started) the story.
There’s no way we know the actual difficulty of the story until we start analyzing and designing it – and the analysis and design should be part of the story. There’s no way we can know how robust the solution is until we’re having conversations with SMEs about the results we are getting – and these conversations should be part of the story. There’s no way we can know how hard the integration with existing code will be until we start integrating – and this integration should be part of the story. Ok, ok, we may know about our team’s capabilities without doing the story, but three out of the four factors are intrinsically unknowable.
So, it’s no surprise that our actual effort doesn’t match our estimates, is it?
Dan Rawsthorne, PhD, CST
Download the PDF version: Accurate Story Estimation blog