Estimating the positive effects of change (is hard)

Tasked with producing a blog post each day, it’s inevitable that not all will contain concrete solutions. This is one of those more-observation-than-answer posts I will do my best to keep few and far between.

User stories are pretty new to me. Aside from a bit of Dev Bootcamp practice, I’d never broken problems down in this way. The focus it lends to my work is wonderful — building Battleship based on stories has been an infinitely smoother and more focused experience than doing so without them.

In theory, part of the draw of working from stories is estimation. This is 100% new territory for me. You’d think it would be fairly straightforward to look at a small task an decide how long it will take you to complete. You don’t even need to settle on one number — you’re allowed 3 estimates: optimistic, realistic and pessimistic. Our Battleship iterations last three days, with about 3 points of work assumed for each iteration.

For my first iteration, I estimated everything at 1 point, or half a day. Half a day is so much time! Most small tasks can definitely be accomplished in half a day. Or so it seemed. I completed the work I committed to, but not without bringing it home with me more than I was comfortable with.

So the next iteration I played it safe: overestimating whenever I wasn’t sure a task would take less than an hour. Again, my numbers were mad inaccurate. While it’s a bit fun to see “8.25 points” under my last iteration’s completed work, it’s a pretty scathing indictment of my estimation skills.

This iteration, I tried for estimate moderation, but who knows. Right now, the biggest source of inaccuracy seems to be refactor time and effect:

The amount of time it will take to “build” a feature varies wildly depending on how the necessary changes effect the rest of the system. The possible negative effects of change are obvious to anyone who’s done even a little bit of coding, but I’ve found myself unprepared to account for the positive effects of system change on my estimates. Last round, my highest-point user story was 3.25 points, or just over a day and a half. I spent 1 point / a half day refactoring, then finished the feature in an hour and a half. That 3+ point estimation was based on the state of my system at during my estimation meeting. I wasn’t sure I’d be refactoring so much until I wrote the first test saw the need for restructuring.

As I said before, no real answers from me today. I’ll let you guys know if I figure any of this out :)