The problem with software estimates is that they're both entirely right and entirely wrong.
Yes there's a 3 week version of something. And a 6 week version. And a 4 month version. And a 12 month version. That's correct.
Yet, you'll almost always be wrong whichever you pick. Because estimates aren't walls — they're windows. Too easy to open and climb through to the next one.
The 3 week version will turn into the 6 week version will turn into the 12 week version. You can see right through.
Software that encourages you to estimate how long something will take makes it even worse. That software is part of the problem. You know which products I'm talking about.
So what to do instead?
Set an appetite.
A appetite is like a budget. Not "we think it'll take 4 weeks" but "we're only giving it 4 weeks." That's all we've got set aside for it. Then the team tasked with the work has to get creative and figure out the 4 week version of that feature. There is no 6, 8, 10, or 12 week version when the appetite is 4 weeks. Just like there's no $7,000 vacation when you only can afford a $2500 one. And you know how that ends up if you overspend.
Are there times when you need to give something another week? Maybe even two? Yes. There's some margin for that because it can only happen once per project, and it's commensurate with the time spent. You don't double the time, maybe you give it 10% more time if you need to. A little margin for error and reality is built in there. This isn't absolutist, this isn't fundamentalism.
And yes, there are times when things aren't completed within the time allotted, and there's no obvious, honest path to finishing it with a touch more time. In those cases the project dies, we internalize, and hope that doesn't happen again. It rarely does here at 37signals, but it has. It's part of the cost of doing things this way. The payoff is huge, the downside is limited — that's a tradeoff we can live with.
Yes there's a 3 week version of something. And a 6 week version. And a 4 month version. And a 12 month version. That's correct.
Yet, you'll almost always be wrong whichever you pick. Because estimates aren't walls — they're windows. Too easy to open and climb through to the next one.
The 3 week version will turn into the 6 week version will turn into the 12 week version. You can see right through.
Software that encourages you to estimate how long something will take makes it even worse. That software is part of the problem. You know which products I'm talking about.
So what to do instead?
Set an appetite.
A appetite is like a budget. Not "we think it'll take 4 weeks" but "we're only giving it 4 weeks." That's all we've got set aside for it. Then the team tasked with the work has to get creative and figure out the 4 week version of that feature. There is no 6, 8, 10, or 12 week version when the appetite is 4 weeks. Just like there's no $7,000 vacation when you only can afford a $2500 one. And you know how that ends up if you overspend.
Are there times when you need to give something another week? Maybe even two? Yes. There's some margin for that because it can only happen once per project, and it's commensurate with the time spent. You don't double the time, maybe you give it 10% more time if you need to. A little margin for error and reality is built in there. This isn't absolutist, this isn't fundamentalism.
And yes, there are times when things aren't completed within the time allotted, and there's no obvious, honest path to finishing it with a touch more time. In those cases the project dies, we internalize, and hope that doesn't happen again. It rarely does here at 37signals, but it has. It's part of the cost of doing things this way. The payoff is huge, the downside is limited — that's a tradeoff we can live with.
-Jason