Engineering Management: Why are software development task estimations regularly off by a factor of 2-3?
Is it the developer's fault? Is it a management issue? Bad methodology, or lack thereof? Or is it ingrained in the nature of the process?
Answer Wiki
The answers below include a variety of reasons in a variety of categories.
Management Blame and Politics
Client Blame
Relating to Inexperience/Incompete nce
Potential Root Causes (for some of the above):
Suggestions (please feel free to add yours):
This is just a start, please feel free to edit and add more.
Management Blame and Politics
- The insistence of project management to create an unrealistic schedule in the first place.
Client Blame
- The changing needs of clients that impact scope significantly.
- Delays in response from clients.
Relating to Inexperience/Incompete
- The unpredictable stability of code depending on quality.
- Overconfidence of developers.
- Lack of a product champion.
- Lack of committed subject-matter experts.
- Lack of buy-in by users/management.
- Failure to assess previous project scopes
- Failure to assess current rate of production vs. budgeted time.
- Poor discovery work.
- Poor understanding of the project's complexity.
- Unforeseen and unpredictable bugs.
Potential Root Causes (for some of the above):
- The idea of absolute control (over ourselves, other human beings and unforeseen circumstances) combined with the idea that if we plan something hard enough, we can have such absolute control. This is obviously a very bad idea. This is why General Eisenhower once said "Forget the plan. Planning is everything."
- The fact that actual effort depends on decisions not yet taken at the time of estimation
- The software industry as a whole rapidly changes, and to be on the cutting edge requires the use of tools and concepts with which developers have yet to gain decent experience.
- The modern software stack is so massive and complex and constantly changing, that it is almost impossible to predict many of the time consuming issues that inevitably emerge.
Suggestions (please feel free to add yours):
- Pad every estimate you get from your developers by a factor of three.
- Get a project lead skilled at negotiating with stakeholders
This is just a start, please feel free to edit and add more.
83 Answers
Michael Wolfe, CEO, Pipewise, Inc. www.pipewise.com
4022 votes by Heidi Strom Moon, Jeremiah Fellows, Robert H. Heath, (more)
Let's take a hike on the coast from San Francisco to Los Angeles to visit our friends in Newport Beach. I'll whip out my map and draw our route down the coast:

The line is about 400 miles long; we can walk 4 miles per hour for 10 hours per day, so we'll be there in 10 days. We call our friends and book dinner for next Sunday night, when we will roll in triumphantly at 6 p.m. They can't wait!
We get up early the next day giddy with the excitement of fresh adventure. We strap on our backpacks, whip out our map, and plan our first day. We look at the map. Uh oh:

Wow, there are a million little twists and turns on this coast. A 40-mile day will barely get us past Half Moon Bay. This trip is at least 500, not 400 miles. We call our friends and push back dinner til Tuesday. It is best to be realistic. They are disappointed, but they are looking forward to seeing us. And 12 days from SF to LA still is not bad.
With that unpleasantness out of the way, we head off. Two hours later, we are barely past the zoo. What gives? We look down the trail:

Man, this is slow going! Sand, water, stairs, creeks, angry sea lions! We are walking at most 2 miles per hour, half as fast as we wanted. We can either start walking 20 hours per day, or we can push our friends out another week. OK, let's split the difference: we'll walk 12 hours per day and push our friends out til the following weekend. We call them and delay dinner until the following Sunday. They are a little peeved but say OK, we'll see you then.
We pitch camp in Moss Beach after a tough 12 hour day. Shit, it takes forever to get these tents up in the wind. We don't go to bed until midnight. Not a big deal: we'll iron things out and increase velocity tomorrow.
We oversleep and wake up sore and exhausted at 10 a.m. Fuck! No way we are getting our 12 hours in. We'll aim for 10, then we can do 14 tomorrow. We grab our stuff and go.
After a slow slog for a couple of hours, I notice my friend limping. Oh shit, blisters. We need to fix this now... we are the kind of team who nips problems in the bud before they slow our velocity. I jog 45 minutes, 3 miles inland to Pescadero, grab some band-aids, and race back to patch up my friend. I'm exhausted, and the sun is going down, so we bail for the day. We go to bed after only covering 6 miles for the day. But we do have fresh supplies. We'll be fine. We'll make up the difference tomorrow.
We get up the next morning, bandage up our feet and get going. We turn a corner. Shit! What's this?

Goddamn map doesn't show this shit! We have to walk 3 miles inland, around some fenced-off, federally-protected land, get lost twice, then make it back to the coast around noon. Most of the day gone for one mile of progress. OK, we are *not* calling our friends to push back again. We walk until midnight to try to catch up and get back on schedule.
After a fitful night of sleep in the fog, my friend wakes up in the morning with a raging headache and fever. I ask him if he can rally. "What do you think, asshole, I've been walking in freezing fog for 3 days without a break!" OK, today is a loss. Let's hunker down and recover. Tomorrow we'll ramp up to 14 hours per day since we'll be rested and trained... it is only a few more days, so we can do it!
We wake up the next morning groggy. I look at our map:

Holy shit! We are starting day 5 of a 10 day trip and haven't even left the Bay Area! This is ludicrous! Let's do the work to make an accurate estimate, call our friends, probably get yelled at, but get a realistic target once and for all.
My friend says, well, we've gone 40 miles in 4 days, it is at least a 600 mile trip, so that's 60 days, probably 70 to be safe. I say, "no f--ing way... yes, I've never done this walk before, but I *know* it does not take 70 days to walk from San Francisco to Los Angeles. Our friends are going to laugh at us if we call and tell them we won't see them until Easter!
I continue, "if you can commit to walking 16 hours a day, we can make up the difference! It will be hard, but this is crunch time. Suck it up!" My friend yells back, "I'm not the one who told our friends we'd make it by Sunday in the first place! You're killing me because you made a mistake!"
A tense silence falls between us. The phone call goes unmade. I'll call tomorrow once my comrade regains his senses and is willing to commit to something reasonable.
The next morning, we stay in our tents til a rainstorm blows over. We pack our stuff and shuffle off at 10 a.m. nursing sore muscles and new blisters. The previous night's fight goes unmentioned, although I snap at my idiot friend when he leaves his water bottle behind, and we have to waste 30 minutes going back to get it.
I make a mental note that we are out of toilet paper and need to stock up when we hit the next town. We turn the corner: a raging river is blocking our path. I feel a massive bout of diarrhea coming on...
The line is about 400 miles long; we can walk 4 miles per hour for 10 hours per day, so we'll be there in 10 days. We call our friends and book dinner for next Sunday night, when we will roll in triumphantly at 6 p.m. They can't wait!
We get up early the next day giddy with the excitement of fresh adventure. We strap on our backpacks, whip out our map, and plan our first day. We look at the map. Uh oh:
Wow, there are a million little twists and turns on this coast. A 40-mile day will barely get us past Half Moon Bay. This trip is at least 500, not 400 miles. We call our friends and push back dinner til Tuesday. It is best to be realistic. They are disappointed, but they are looking forward to seeing us. And 12 days from SF to LA still is not bad.
With that unpleasantness out of the way, we head off. Two hours later, we are barely past the zoo. What gives? We look down the trail:
Man, this is slow going! Sand, water, stairs, creeks, angry sea lions! We are walking at most 2 miles per hour, half as fast as we wanted. We can either start walking 20 hours per day, or we can push our friends out another week. OK, let's split the difference: we'll walk 12 hours per day and push our friends out til the following weekend. We call them and delay dinner until the following Sunday. They are a little peeved but say OK, we'll see you then.
We pitch camp in Moss Beach after a tough 12 hour day. Shit, it takes forever to get these tents up in the wind. We don't go to bed until midnight. Not a big deal: we'll iron things out and increase velocity tomorrow.
We oversleep and wake up sore and exhausted at 10 a.m. Fuck! No way we are getting our 12 hours in. We'll aim for 10, then we can do 14 tomorrow. We grab our stuff and go.
After a slow slog for a couple of hours, I notice my friend limping. Oh shit, blisters. We need to fix this now... we are the kind of team who nips problems in the bud before they slow our velocity. I jog 45 minutes, 3 miles inland to Pescadero, grab some band-aids, and race back to patch up my friend. I'm exhausted, and the sun is going down, so we bail for the day. We go to bed after only covering 6 miles for the day. But we do have fresh supplies. We'll be fine. We'll make up the difference tomorrow.
We get up the next morning, bandage up our feet and get going. We turn a corner. Shit! What's this?
Goddamn map doesn't show this shit! We have to walk 3 miles inland, around some fenced-off, federally-protected land, get lost twice, then make it back to the coast around noon. Most of the day gone for one mile of progress. OK, we are *not* calling our friends to push back again. We walk until midnight to try to catch up and get back on schedule.
After a fitful night of sleep in the fog, my friend wakes up in the morning with a raging headache and fever. I ask him if he can rally. "What do you think, asshole, I've been walking in freezing fog for 3 days without a break!" OK, today is a loss. Let's hunker down and recover. Tomorrow we'll ramp up to 14 hours per day since we'll be rested and trained... it is only a few more days, so we can do it!
We wake up the next morning groggy. I look at our map:
Holy shit! We are starting day 5 of a 10 day trip and haven't even left the Bay Area! This is ludicrous! Let's do the work to make an accurate estimate, call our friends, probably get yelled at, but get a realistic target once and for all.
My friend says, well, we've gone 40 miles in 4 days, it is at least a 600 mile trip, so that's 60 days, probably 70 to be safe. I say, "no f--ing way... yes, I've never done this walk before, but I *know* it does not take 70 days to walk from San Francisco to Los Angeles. Our friends are going to laugh at us if we call and tell them we won't see them until Easter!
I continue, "if you can commit to walking 16 hours a day, we can make up the difference! It will be hard, but this is crunch time. Suck it up!" My friend yells back, "I'm not the one who told our friends we'd make it by Sunday in the first place! You're killing me because you made a mistake!"
A tense silence falls between us. The phone call goes unmade. I'll call tomorrow once my comrade regains his senses and is willing to commit to something reasonable.
The next morning, we stay in our tents til a rainstorm blows over. We pack our stuff and shuffle off at 10 a.m. nursing sore muscles and new blisters. The previous night's fight goes unmentioned, although I snap at my idiot friend when he leaves his water bottle behind, and we have to waste 30 minutes going back to get it.
I make a mental note that we are out of toilet paper and need to stock up when we hit the next town. We turn the corner: a raging river is blocking our path. I feel a massive bout of diarrhea coming on...
Revett Eldred, Grey haired aging geek.
78 votes by Rob Dodson, Valentin Zberea, David Urquhart, (more)
Jim Skinner, Dear Software Engineering,
You are m...
43 votes by Heidi Strom Moon, Anthony H. Pham, Kevin Yen, (more)
Erik Fair, Software Engineer, Investor, skier.
16 votes by Anon User, David Urquhart, Anon User, (more)
Software Engineers are optimists. In fact, all engineers are optimi... (more)
Ryan Marsh, Project Manager, Software Developer, ...
18 votes by David Urquhart, Marcus Zarra, Jim Yagmin, (more)
Anon User
9 votes by Erik Fair, Grishma Udani, Patrick Harkins, (more)Erik Fair, Grishma Udani, Patrick Harkins, Anon User, Stefan Riehl, Lyn Stumfall, Alex Negrea, Ben Sizer, and Kristina Pifer
Tom Karlo, Product Guy
6 votes by David Urquhart, Lance Walton, Mike Rishworth, (more)David Urquhart, Lance Walton, Mike Rishworth, Roy Eaton, John Bachir, and Chris Thomson
Derek Reinhold, Process Expert, Learner, & Business P...
5 votes by David Urquhart, Benoit Xhenseval, Peter Dulimov, (more)David Urquhart, Benoit Xhenseval, Peter Dulimov, John Bachir, and Chris Thomson
Jim Yagmin
7 votes by David Urquhart, Anon User, Andreas Pizsa, (more)David Urquhart, Anon User, Andreas Pizsa, Anon User, Anon User, Okechukwu Nnamdi, and Roy Eaton
Alex Flint, Aspiring Rationalist
6 votes by Anon User, James Osterberg, Taryn East, (more)Anon User, James Osterberg, Taryn East, Anon User, Anon User, and Zbigniew Lukasiak
Tristan Kromer, I build stuff. GrasshopperHerder.com
8 votes by David Urquhart, John Bachir, Katy LaVallee, (more)David Urquhart, John Bachir, Katy LaVallee, Thad Guidry, Dave Myron, Skyler Drake Leigh, John McGeehan, and Hynek Vychodil
William Pietri, Cofounder and CTO of NeedFeed; develo...
4 votes by Robert Merrill, Bud Wood, Roy Eaton, and Anca Mosoiu
Ben Stucki, Founder of DAIO (http://daio.com).
6 votes by David Urquhart, Philip Crawford, Les Spiro, (more)David Urquhart, Philip Crawford, Les Spiro, Douglas Warshaw, David Citron, and Sid Probstein
Philip Crawford, Software entrepreneur
5 votes by Konrad Szpirak, David Urquhart, Robert Merrill, (more)Konrad Szpirak, David Urquhart, Robert Merrill, Alejandro Garcia, and Sid Probstein
Ken Rossi, Creative Director @ USTA/US Open
4 votes by David Urquhart, Jason Kowal, Anon User, and Christina Reddington
Vipul Sharma, Crazy for startup ecosystem, Strong M...
4 votes by David Urquhart, Ben Dang, Joseph Ryan, and Swasti Sharma
Alberto Brandolini, Software development professional & o...
3 votes by Marco Mariani, Paolo Perrotta, and Matteo Vaccari
Mark Conway, EntrepreTechnoAviaPhile
4 votes by Joe Cullin, Jake Dacey, Simon Bigg, and Daniel Kornev
Robert Merrill, because software shouldn't be scary.
3 votes by Konrad Szpirak, Eugene Hlyzov, and Steven Trieu
Mike Davis, Working in the computer field for ove...
2 votes by Philip Crawford and Durjoy Ace Bhattacharjya
David Urquhart, Solving problems since 1972
7 votes by Andy Bakun, Bill McDonald, Guus Bosman, (more)Andy Bakun, Bill McDonald, Guus Bosman, A. Jesse Jiryu Davis, Benoit Maison, Anon User, and Michael McAndrew
Chris Rutherford, http://about.me/ChrisRutherford
#1 Cause = Projects fail to take into account Hofstadter's Law
Michel Floyd
1 vote by David Urquhart
I have to commend Michael Wolfe's wonderfully told analogy although... (more)
6 Answers Collapsed (Why?)
Downvoted:
2nd order ignorance: "I don't know that I don't know something"
In other words: "S... happens" and we should rather take this into account when estimating projects
In other words: "S... happens" and we should rather take this into account when estimating projects
Gregory Joyce, more than enough
Nobody's made the glib remark that knowing how to do something before it's done is "NP Hard"?
Needs Improvement:
Bud Wood, Engineer by training, artist by incli...
I've always wanted to hike along the California coast, as was suggested here. However, after surveying that project prior to my first attempt, I've always opted for cars and airplanes.Too bad such choices aren't available for many of the other projects in which I've gotten involved.
This answer may need to be a more direct response. (more)
The mere fact that you have posed this question means you will not understand the answer. It also means you're a manager. Please go away.
This answer may need to be a more direct response. (more)
Michael McCafferty, serial entrepreneur, mentor, software...
Read Fred Brooks' book "The Mythical Man Month" (the story and lessons learned while he ran IBM's software development project for the IBM 360 computer systems in the mid-'60s.
This answer may need to be a more direct response. (more)
John Cowan
1 vote by Mike Schwab
Take your best shot, double it, and move up to the next larger time unit. Thus 1 day = 2 weeks, 1 week = 2 months, 1 month = 2 years.
This answer may need to be a more direct response. (more)
Question Stats
- Latest activity Feb 15, 2012.
- This question has been viewed 121396 times; it has 4 monitors with 16289 topic followers and 0 aliases exist.
- 863 people are following this question.
NB if you checked up on me, you would find many mistakes.