Hofstadter’s Law – It always takes longer than you expect, even when you take Hofstadter’s Law into account.
- Douglas Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid
At least once a week, I sit across from an entrepreneur or business person with an early stage concept for a software application. And every week they ask some variant of a question that’s been weighing on their minds for months, probably.
“So… how much do you think some software like this would cost to build?”
The problem with this question is that I suck at software estimation. Just like, as it turns out, everyone else in the world. In the past, I would mumble something about not having detailed requirements and try to change the subject .
Not anymore. Here’s how I handle the question today:
“Ms. Entrepreneur, the software that Pathfinder has built that comes closest to resembling your idea cost $1 million. If you believe in Steve McConnell’s Cone of Uncertainty in Software Estimation the way I do (and I believe in it the way some people believe in an omnipotent God), that means I can fairly confidently predict that your application will cost somewhere between $250,000 and $4 million. That’s a big range, but it’s really the best I can do. Your choice now is how you want to go about narrowing that down.”
And then I lay it out very clearly.
- Option A – A forced march of waterfall-style planning, analysis and specification. Culminating in a ton of documentation, much of it immediately obsolete, and fees totaling nearly a third of your budget. And after all that, I’ll be able to narrow my estimate to something like $1.3 million to $3 million.
- Option B – Set a budget cap based on what you can afford or the value the application has to you. Start software development as soon as possible, using the Agile development method and aggressive, two week Iterations. In eight weeks, we’ll have a lot of working, tested code. And we’ll know pretty confidently which of your desired features will and will not be complete within the budget you’ve set.
Of course, some potential customers choose Option C – hire one of Pathfinder’s competitors. But that’s fine – they’ll be happier with someone else, and so will we. Far fewer end up going that route than I might have expected. Best of all, I can look my clients in the eye when I answer their question about development costs. And just like software development, the price of that is pretty damn high.


I wholeheartedly agree.
I would explicitly label the quote “Hofstadter’s Law” to make the self-referentiality even clearer.
Good idea Mark. Thanks!
Nice. And there are a few apps out there that can help with estimations, too. For instance: http://ballparkitapp.com. But your point is clearly understood.
It takes maturity and confidence in oneself to realize that sometimes the best option is to let them walk away.
Can’t tell you how many times we get asked the same question. And your answer is probably the best I’ve seen recently. Glad to see others are taking a similar approach to what we try to tell clients. I just wish more of them realized the futility of Option A. Isn’t it interesting how we are asked to estimate the development of something at a time when we know the least about it?
Very nice comments and options offered for producing an estimate. All though my company’s development is targeting the construction industry as an estimating platform, soon to be a full blown portal, we are addressing the “cone of uncertainty” as stated above. By increasing the accuracy of an estimate and alleviating the guess work. However, with that being said, that does not mean we have taken all the guess work out of producing an estimate for other industries.