Should Your Dev Team Stop Using Story Points?
Let me preface this post by saying this: I get Story Points, I
understand how they work, how they should be used and the problem that
they are purported to solve.
Q: So what's the problem? A: Detailed estimates are always wrong. Will always be wrong and can never be accurate except by pure luck.
Q: Why are detailed estimates always wrong?A: Because the real world is a complicated place and it's impossible to see clearly into the future.

Story points answer this by doing something important, they abstract the estimate and allow us to estimate with a larger unit of measurement therefore granting us the freedom to estimate with a lower level of precision.
But the abstraction introduces a new problem. Allow me to illustrate with a couple questions.
- Why do you estimate?
- What is the problem with misestimating your work?
- What is the most concrete and important constraint of a sprint?
- You estimate so that the team has a realistic amount of work in a sprint.
- Misestimation of a sprint is a problem because the team will not have enough time to finish the sprint backlog if they overcommit due to poor estimates.
- The most concrete and important constraint of a sprint is time (unless you have a tool that can stop or slow time, in which case I want in on the beta).
Now in some cases this is a good thing, it's a bit like Mom mashing some cauliflower into the mashed potatoes so we'll eat some real vegetables but I don't see it as something to default to or even a permanent solution to the estimates problem.
So what's the real solution? Combine the best of both worlds.
Estimating in logical time boxes.
Instead of estimating in units of measurements, we estimate in predetermined timeboxes.
A slight tweak should only take a couple of minutes? That falls into the 1 hour timebox. A bugfix should take me the better part of a day? That'll fall into the 1 day time box. What time boxes should your team use? Probably not fibonacci numbers since they'll imply some level of precision which shouldn't be there and tshirt sizes are missing the point of estimating in time as well. The answer is that you should decide with your team but, here are some good ones to start with:
- 1 hour
- 4 hours
- 1 day
- 2 days
- 3 days
- 5 days
- 2 weeks
So what've we learned? A lot actually.
- Detailed estimates are dumb and we shouldn't do them.
- Story Points mask the point of estimating and can potentially sow the seeds of confusion.
- Estimating with time units isn't that different than estimating with story points since you'll still estimate with distinct values rather than detailed units.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Josh Martin replied on Sun, 2011/06/12 - 6:06pm
Points have nothing to do with time, and using anything besides some tracker applications, you will not understand this. Points are measures of complexity and risk, not of time. Forget anything to have to do with time, and consider risk, unknowns, or possible issues and apply them to the points. Task estimates are where you should be applying your time estimates. I have provided some example below;
Do not get them confused! When we want to complete feature X, as an overview estimate, using points is the best thing. 0 for a wording change, 1 for a form field change, 2 for a processing a post parameter (or set of), 3 for adding a new signup form... 50 for something crazy that you have no idea about but are confident with some time you could implement, etc... The usefulness of points exists when you see that a story has several more points than usual (8-13+). This means you should break it down in to a few different stories to reduce complexity and risk that the story may have to the sprint. If you have 13+ point stories, you are either sandbagging your sprint or not even completing them (and I mean full QA and deployed to production in a SASS environment) due to this issue.
Most "sprint" tracking applications do not do this properly, so we have an abundance of developers who try to apply points as if they were time. This is not correct by any means. They are two different concepts. POINTS ARE FOR RISK AND COMPLEXITY NOT TIME!
Take for example: "Add facebook login" as a story. First, we need to hook up oauth, then integrate our authentication system, and finally provide a slick UI. This should be pointed as a single feature, so it will be a single story. I would estimate it somewhere between 3 and 6 points depending on the existing authentication system. This gives product owners an idea of how much effort is needed to complete the feature. It has nothing to do with how long it will take.
Furthermore, tasking out this feature would include exactly what I stated...
So this example story becomes a 9 hour story with 5 points. Given 5 points is "they know what they are doing, but there may be a few issues that may take longer". If it was a 13 point story, it's probably obvious that your developers are either unfamiliar with oauth, or you have a very complex authentication system. These can be taken in to account when selecting which stories the product mgmt team wants to get in to the sprint, but as far as experience,if you have three 13 point stories in your sprint between a few devs, you are basically doomed because of the multiplied risk factors (unless your point calculations are much different than mine).
Oh, and I don't like cauliflower in my potatoes
Jo Gee replied on Mon, 2011/06/13 - 5:22am
I totally disagree with this post.
When you measure a story with x story points, the time that (x/storypoints) represents is variable. In the end the project manager will have a pretty good idea of how much time 1 storypoint represents and will see it vary through time. Normally the time that 1 storypoint represents will decrease with the time of the project.
If you say that something will take y much hours, it doesn't vary in time and measurements will not be as accurate.
Also through my experience
Lots of people put lots of thought into scrum as a new methodology which actually works really well, I wouldn't start changing it.
Matt Block replied on Mon, 2011/06/13 - 12:55pm
Sean Mchugh replied on Mon, 2011/06/13 - 5:58pm
in response to:
Josh Martin
Here's the other thing, I don't want to break each of my stories into tasks for my hours until I've committed to it since that takes effort and any item left outside of the sprint is potentially something that won't make it into the release and tasking it out would create wasted effort.
So if I were to estimate you're facebook login I would probably call it a 2 day feature (or story) and leave it at that. Will I take a full 2 days on it? Probably not but I know that there's some small amount of technical risk and at least three distinct things that need to be done. If everything goes exactly as planned then I might finish early or have a chance to dip back into the backlog but if I run into a problem (found a bug in the existing auth system, didn't see that coming) then I have some time to absorb it. Since nothing ever goes exactly as planned I end up with a pretty accurate estimate for the entire sprint.