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/Incompetence
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/Incompetence
- 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.
- Not knowing and honoring the difference between targets, estimates, and commitments
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
- Use project history when estimating, as well as task-based approaches
- Shift the uncertainty out of the cost and schedule and into the scope by switching to an agile method.
- Forge consensus when making the plan, as opposed to deciding on the plan. Work through the arguments of those who believe it takes longer and either convince them or adjust the plan.
This is just a start, please feel free to edit and add more.
86 Answers
Michael Wolfe, CEO, Pipewise, Inc. www.pipewise.com
4353 votes by Heidi Strom Moon, Jeremiah Fellows, Michael Howard, (more)Loading...
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...
Devdas Bhagat, Just another geek.
182 votes by David Urquhart, Hutch Carpenter, Paul Loy, (more)Loading...
Randal Truong, Internet Enthusiast.
74 votes by Dan Stocker, Ryan Doherty, Leighton Wallace, (more)Loading...
Revett Eldred, Grey haired aging geek.
83 votes by Rob Dodson, Valentin Zberea, David Urquhart, (more)Loading...
Jim Skinner, Dear Software Engineering,
You are m...
46 votes by Heidi Strom Moon, Anthony H. Pham, Kevin Yen, (more)Loading...
Lance Walton, Father, Programmer, Failing Composer
34 votes by Channing Walton, David Urquhart, Daniel Yokomizo, (more)Loading...
Erik Fair, Software Engineer, Investor, skier.
16 votes by Anon User, David Urquhart, Anon User, (more)Loading...
Software Engineers are optimists. In fact, all engineers are optimi... (more)
Ryan Marsh, Project Manager, Software Developer, ...
20 votes by David Urquhart, Marcus Zarra, Jim Yagmin, (more)Loading...
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
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
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
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
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
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
William Pietri, Maker, starter, writer.
4 votes by Robert Merrill, Bud Wood, Roy Eaton, and Anca Mosoiu
Philip Crawford, Software entrepreneur
5 votes by Anon User, David Urquhart, Robert Merrill, (more)Anon User, David Urquhart, Robert Merrill, Alejandro Garcia, and Sid Probstein
Vasyl Mylko, I am Director of R&D at SoftServe. Ma...
4 votes by Thomas Paine, David Urquhart, Bud Wood, and Darian Hickman
Vipul Sharma, Crazy for startup ecosystem, Strong M...
4 votes by David Urquhart, Ben Dang, Joseph Ryan, and Swasti Sharma
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
Ken Rossi, Creative Director @ USTA/US Open
4 votes by David Urquhart, Jason Kowal, Anon User, and Christina Reddington
Freek Vos, Projectmanager, on- and offline media
3 votes by Marco Mariani, Chris Thomson, and AJ Cantu
Robert Merrill, because software shouldn't be scary.
3 votes by Anon User, Eugene Hlyzov, and Steven Trieu
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
David Urquhart, Puberty and depression stalled my exp...
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
Samir Al-Battran, Founder of TweepsMap, Co-Founder of R...
4 votes by Anon User, David Urquhart, Mark McQuillan, and Ethan Resnick
Mike Davis, Working in the computer field for ove...
2 votes by Philip Crawford and Durjoy Ace Bhattacharjya
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)
Question Stats
- Latest activity May 25, 2012.
- This question has been viewed 140065 times; it has 4 monitors with 18321 topic followers and 1 alias exists.
- 1003 people are following this question.