Friday, September 16, 2011

Pick One Measurement

I've been working with a new client who is attempting to use a variation on Scrum. They have two week sprints; and each sprint starts with the whole team getting together and talking through the stories on the backlog, estimating them, and then committing to them. Each sprint ends with a demo and retrospective. They're using Rally, so they have a burndown chart that shows their progress through the sprint, and accepted stories, etc. This is all fairly standard.

They're also making a very common mistake: measuring the same thing two ways. They measure points and they measure hours.

Stories are sized by points: 1, 2, 3, 5, or 8 points. Points are relative indicator of how large the story is. A 1 point story is pretty small, and a 3 point story is larger than a 2 point story but smaller than a 5 point story. An 8 point story is code for "we dunno, but it's huuuuge!"

Tasks are estimated in hours: 1 hour, 2 hours, etc. This is purely free form; any value is allowed.

Here's the thing, though. Stories are made up of one or more tasks. This effectively means that stories are estimated at some number of hours, where the number of hours is the sum of all the task estimations. (Rally, incidentally, is happy to do the summation for you.)

Now stories have both points and hours, and they're both trying to get at the same thing: "This is how much effort we need to accomplish this story".  We end up with a list like this:
Story 1: 2 points, 10 hours
Story 2: 3 points, 11 hours
Story 3: 2 points, 6 hours
Story 4: 1 point, 8 hours

That's mostly just confusing. The 1 point story is going to take longer than a two point story? Two stories that are the same number of points are going to take fairly different amounts of time (6 hours versus 10 hours)? That's a lot to reconcile.

If this were source code, we'd be cringing and saying, "But it's not DRY!" It's roughly equivalent to having a do_stuff and do_stuff_2, where do_stuff_2 is a copy of do_stuff but uses integers instead of floats for the math. They're almost but not quite direct copies of each other.... confusing!

Same goes for our sprint stories. We're trying to accomplish one thing: estimating effort. Let's accomplish one thing one way. It'll cut down on the confusion, and reduce the amount of time we spend micromanaging stories and tasks in an attempt to achieve consistency.

Pick one. Points or hours, it really doesn't matter. Just pick one and only one.

No comments:

Post a Comment