Estimates or #NoEstimates: Lessons from Hurricane Irma
With Hurricane Irma on the way, I needed to board up my windows. I had made shutters for about two thirds of my windows in preparation for a previous season’s storm that turned away early. I had enough sheets of plywood to make shutters for the rest. I’ve done enough woodworking to know how fast I can measure and cut plywood, but I’d never hung shutters before. I had no idea how much effort it would take, or how much time.
With no basis to start from, I decided to use story points. Here’s the breakdown:
· Six windows facing onto porches. Easy access, no need to use a ladder. One point each.
· Seven small windows on the ground floor. The pieces of wood are light enough, but because of the house’s crawlspace, these windows are high enough to require a ladder. That complicates matters a little. Two points each.
· Nine large windows on the ground floor that require a ladder. Heavier pieces. Three points each.
· Seven small windows on the second floor. Flat roof, so once I’m up, access is easy. But I have to haul the shutters up there, so I called them two points each.
· Two large windows on the second floor. Heavy pieces to haul up, plus I’ll have to drill into masonry to secure them, and I think that’s going to be even more complicated. Five points each.
A total of seventy one points. That told me that this project would be a little more than twice as complicated than I would have thought by merely counting windows. Although I still didn’t know how much time to allow, the story points allowed me to get started, then estimate the remaining time.
That night, I did a test with one of the porch-facing windows. It took about seven minutes to hang the shutter. If that was representative of the rest of the work, I could do about eight story points an hour. I scaled that expectation back to six points to allow time for things like water breaks, recovering tools from bushes when I inevitably dropped them, and so on.
With seventy points left, I was looking at about eleven to twelve hours of work. Given where Irma was, and where she was going, I decided to start the next day.
Around eight o’clock on Friday morning, I got started. An hour later, I had put up:
· Two more windows on the porch
· Two small ground floor windows
· One large ground floor window
Nine points, slightly ahead of schedule. I knew I’d get tired as the day wore on, though, so I thought it would even out.
Five hours later, including an hour break for lunch, I had finished hanging all the shutters I already had made. I’d averaged about six points per hour. I had nine windows left, totaling forty points. Add in the two hours it would take to cut new shutters, I had about nine hours left.
I cut the remaining plywood into shutters, had dinner, and then waited out a small rain delay. I spent another two hours putting up shutters before I ran out of energy and had to stop. But I felt secure that the remaining twenty seven points could be completed early the next day, and I was right. I finished by about noon.
Contrast the window project with the other major piece of hurricane preparation I needed to complete: trimming the kapok tree in our back yard, which had several large limbs overhanging the house. For this project, I didn’t estimate. I simply got up on the roof with my pole saw and started cutting. I’m no arborist, so every step was probe-sense-respond. Make a small cut, see where the limb fell, adjust for the next cut. And it was a very time-driven project: I only had a couple of hours to work before the brush disposal site closed. I spent two hours trimming and an hour hauling the brush away.
In this case, estimates would have been a waste of effort.
I know I’m not proving any point in the estimates/no estimates war. After all, before I estimated the window project, I already knew a lot about the work: what tools I would use, my general approach to the project, and the exact scope of the work. That’s not often the case in software projects.
But I didn’t spend much time on the estimates — just enough to give me a rough idea of the scope of work. And that was the value of doing the exercise. As I worked, I could always check how I was doing against the plan, and feel comfortable about my progress and pace.
Are estimates worth doing?
I had thirty one windows. If I’d simply called them all one point, and estimated three points an hour, I wouldn’t have been far off the mark. On the other hand, the granular nature of what I’d done helped me to think about which window I would do next when I knew I’d need to break soon.
I think it’s a matter of who story point estimates are for, and how they are used. For a project with a reasonable scope, I suppose they can be valuable. If a team wants to load a Sprint with some kind of confidence, it might be useful to know that one story is two points and another is five — we can add the former but not the latter. And they have to be for the team’s use only.
The problem with estimates is that we often spend way more time on them than the value provided. That’s incredibly wasteful. Worse, stakeholders will usually get ahold of the estimates, and the team’s velocity, and think they’ve got some meaningful way to measure the team’s performance. That only leads to gaming the system, which is time not spent delivering valuable software.
What I know from this exercise was that spending ten minutes putting story points on my window project helped me understand how soon I needed to start, gave me a way to measure my progress, and provided some peace of mind as I worked.