Live data from Hacker News

Why are software development estimates regularly off by a factor of 2-3?

michaelrwolfe.com

81–90 of 173 posts

Re: Why are software development estimates regularly off by a factor of 2-3?

#81

This post was originally an answer on Quora to the question posed in the title [1]. The question has so far received 222 answers - some of them arguably better, though not as popular as this one. [1] http://www.quora.com/Engineering-Management/Why-are-software...

This blog article is more popular than the quora post because this blog article doesn't require people to sign up to read it.

There was a trick posted recently to HN for reading Quora articles without signing up:

Tell HN: Add ?share=1 to Quora URLs to display content without login

https://news.ycombinator.com/item?id=6300856

Re: Why are software development estimates regularly off by a factor of 2-3?

#82
post #68
post #58

Earlier quoted context omitted.

First of all, don't overly aggrandize what we do. 99% of it is derivative in most ways. Although I've enjoyed doing the work on many of my projects, I'm not under any illusions that what I was doing was ground-breaking. Besides, most of the things you mention can be accounted for. If part of your development process involves iterating through the design with the customer every couple of weeks then you build that into…

99% of what some people do is derivative. But if what they're doing is software, that's expressive duplication, and it's worth trying to DRY it up. I think we have different intuitions here because it sounds like you're more in a service business than specifically writing software. I agree that a lot of any service business is standardizable, because it's mainly about people and their needs; that has a lot of regular…

I think you're wrong.

Perhaps you weren't around in the early 2000s when the RAD tools were all the rage.

Perhaps you missed out on the colossal frameworks of the late 2000s when everything was a factory and understanding HTTP was actually a disadvantage as the whole thing would blow up if you actually tried to access the request body.

We went down the road you talk of. It was horrible. Now the pendulum swings to the opposite ends, the light-weight APIs which don't try and abstract away all the details which it turns out mattered a lot as everyone has to do pretty much the same thing, but ever-so-slightly differently. Tiny tools that do one job well.

All you are talking about is writing HTML and doing server config, neither of which are software or programming. When someone in 2000 came to you and said 'I need a website, therefore I need a software programmer to write html and setup a server' they no more needed a programmer back than then they needed one today. Just back then it was developers who knew the markup language and how to configure servers and they weren't about to turn away silly money just because there was not much actual coding involved.

Re: Why are software development estimates regularly off by a factor of 2-3?

#85
To extend the analogy further: add the fact that you need to meet up with several other groups that are providing essential supplies and they are hiking from several different locations in the Central valley.

Some of the groups are showing up on time and are waiting for you, some are late, all won't have all the supplies you need.

And to make it more realistic: half way through the hike, your friends call to say the lunch has been moved to San Diego and is now a formal dinner party at which you will need to wear tuxedos. And can you bring the Champagne as well?

Re: Why are software development estimates regularly off by a factor of 2-3?

#86

I really love this article. In practice a good strategy for companies is reduce unknown to a minimum, the Steve Jobs strategy, just focusing on very few products, with each having the less complexity possible(simplify and simplify). Only focusing on very few products you could make perfection possible, estimates will be off, they always are when there is unknown, but at least completion will be finite (you will compl…

Reducing the complexity of products is an enticing ideal, but in reality, some products are inherently complex. Let's take one of Steve Jobs' products, iOS, as an example. No matter how much you try to simplify it, it's going to be a huge piece of software (I'm guessing hundreds of developers and supporting staff). Apple's success has depended on keeping customers engaged by regularly coming out with improved versions of products, so they need to estimate fairly accurately what the release dates are going to be: being six months late could be disastrous for marketing efforts and the company's stock price (e.g., you want to get the next version of the iPhone in the stores by Christmas). So you can be sure that there are people at Apple whose job it is to make very careful estimates of how long it will take to develop stuff.

Re: Why are software development estimates regularly off by a factor of 2-3?

#87
post #18

So the article tries to describe the hidden complexity of software with a hiking analogy but then it leaves a huge part missing. Let's extend the analogy somewhat... this isn't your first hiking trip. In fact, you've been on dozens and dozens of hiking trips. You're an experienced hiker. Yet, why do you continue to give meaningless as-the-crow-flies estimates of how long it will take you to get to your destination? T…

Part of the problem is good estimates take time. For many things you can't give a good estimate after 10 minutes of analysis much less the 10 seconds some people ask for.

Because of this I offer two estimates: one that might be off by a factor of 100x, and those that are fairly accurate but take more time to make. My boss usually goes for the former.

Edit: also there's two types of estimates. One measures how much of my time it will take. The other measures the date it will be done and/or live. The two are oftentimes different numbers, and as a developer I can't always control the 2nd.

Re: Why are software development estimates regularly off by a factor of 2-3?

#90
post #18

So the article tries to describe the hidden complexity of software with a hiking analogy but then it leaves a huge part missing. Let's extend the analogy somewhat... this isn't your first hiking trip. In fact, you've been on dozens and dozens of hiking trips. You're an experienced hiker. Yet, why do you continue to give meaningless as-the-crow-flies estimates of how long it will take you to get to your destination? T…

It's more like this: you've been on dozens and dozens of hiking trips. Except these trips generally go through seismically unstable territory and war zones. You just never know when you'll have to dig a tunnel underneath a battlefield to get to the next river you'd have to cross — a river unmarked on your map, or perhaps the result of some aggressive "engineering" by someone since your map was drawn.

Then you get an urgent message from your customer: you weren't supposed to hike from SF to LA after all. You actually need to go from New York to London, on a submarine. Specs require that you do this without surfacing or refueling. So you need to design a nuclear reactor, figure out a way to put it on the leaky old U-Boat your customer just happens to have lying around. All within the same timeline as before, and in the same budget.

You've had all this happen to you a few dozen times, so you factor in the time you know you need to build submarines (all just different enough, of course, that you can't reuse parts, even if the customers let you adapt, say, the propeller shafts to a new customer's design: I hear that in software, this is called "DRY" and "using libraries and frameworks" and "refactoring") — and you give an honest estimate: "it'll take eight months of full-time work, and will cost you about X hundred thousand dollars (a bargain for a nuclear submarine, if you ask me)" — and the customer will then go to someone else, leaving you wondering how you'll pay your bills.

Post reply on HN