Humans are terrible at estimating anything complicated that involves novel attempts at problem solving. So getting out of estimates and into appetites has been the single most important thing we have done for our software development process at 37signals.
Instead of asking for a specific estimate to a specific solution, we start with rough-sketch version of the problem, and how we want to go about tackling it. But the specific scope, like what a screen should look like or how we implement it, is left open. We then say, you have six weeks to make a great version of that.
Think of it like a stop loss. If you’re in the stock market, and you’re like, I bought at 100, but if it goes down to 80, I’m out. I’m willing to spend 20 bucks on its way down, but then I’m done. Because it is so common to reach the end of an estimate, and go no, no, no, we’re 90% done. We just need the last 10%. Yeah, except there’s another 90% worth of effort in those last 10%.
Nothing will clog down the momentum and motivation of a software development team like not being able to ship. And nothing will prevent you from shipping like having projects that continuously get pushed out because you want to have all your hopes and dreams happen inside of them.
Then you'll feel like you cannot give up. And that is absolutely the worst position possible to be in, if you’re trying to make rational logical decisions about how to spend your resources. This state of "I gotta dig myself out of this hole". Stop digging.
But it’s also important not hear this, and think, well, just shipping anything, that’s the most important thing. Just push it out at all costs. Absolutely not. The thing you cut is scope, and if you have to cut too much scope, you cut the project. You don’t ship bad software.
Adapted from the episode Your Estimates Suck that just hit The REWORK Podcast. Check it out.