Engineering Management

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?
16+ CommentsPost (15)Wiki
 

Answer Wiki

 
The answers below include a variety of reasons in a variety of categories.

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
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...
101+ CommentsPost (50)Jan 27, 2012
Michael Wolfe
Devdas Bhagat, Just another geek.
182 votes by David Urquhart, Hutch Carpenter, Paul Loy, (more)
Do you want precise estimates, or accurate ones? Accurate estimates... (more)
8+ CommentsPostJan 27, 2012
Devdas Bhagat
Randal Truong, Internet Enthusiast.
Generally it is all of the reasons given in the question.  Some exp... (more)
3 CommentsPost (1)Jun 23, 2010
Randal Truong
Revett Eldred, Grey haired aging geek.
Wow.  Plus ca change, plus c'est le meme chose.  I started developi... (more)
6+ CommentsPostJan 30, 2012
Revett Eldred
It isn't actually complex. Women underestimate their number of sexu... (more)
5+ CommentsPostJan 27, 2012
Jay Kreps
30 years experience. The biggest reason software is late is because... (more)
CommentPost (2)Jan 27, 2012
Walt Howard
Jim Skinner, Dear Software Engineering, You are m...
There are three areas in which estimates hit the brick wall of real... (more)
2 CommentsPost (1)Jan 27, 2012
Jim Skinner
Lance Walton, Father, Programmer, Failing Composer
I think software people make too much of software being "different"... (more)
1 CommentPostJan 27, 2012
Lance Walton
I've discussed this with people who work in construction. When they... (more)
CommentPost (1)Jan 31, 2012
Chris Moschini
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)
1 CommentPostJan 28, 2012
Erik Fair
In 1982, Tom DeMarco wrote in his excellent book Controlling Softwa... (more)
1 CommentPostJan 28, 2012
Rachel Willmer
So these 2 clowns who have never walked any distance together, set ... (more)
1 CommentPostJan 29, 2012
Tim Panton
Ryan Marsh, Project Manager, Software Developer, ...
20 votes by David Urquhart, Marcus Zarra, Jim Yagmin, (more)
There is a reference to conversations with process technologists at... (more)
CommentPostJan 29, 2012
Ryan Marsh
Because humans can't estimate complexity very well. It could be com... (more)
CommentPostJan 27, 2012
Edo A. Elan
By definition, any software development task of reasonable complexi... (more)
1 CommentPostJan 30, 2012
Tom Karlo
It is not what you don't know at the beginning,
...
(more)
CommentPostJan 31, 2012
Anon User
I think mainly because progress is not linear in the effort.  What ... (more)
1+ CommentsPostJan 28, 2012
John Kuo
Jim Yagmin
7 votes by David Urquhart, Anon User, Andreas Pizsa, (more)
Hard to beat that hiking metaphor, but the simple answer is good es... (more)
CommentPostJan 28, 2012
Jim Yagmin
Being off by a factor of 2-3 leads me to think the main driver is a... (more)
3 CommentsPostJan 28, 2012
Derek Reinhold
It also doesn't help if you put so much pressure on your developers... (more)
CommentPostJan 31, 2012
Alwyn Schoeman
Because engineers do not get prompt feedback on the quality of thei... (more)
1+ CommentsPostJan 28, 2012
Tristan Kromer
Alex Flint, Aspiring Rationalist
6 votes by Anon User, James Osterberg, Taryn East, (more)
Planning fallacies have been documented in controlled trials and ap... (more)
CommentPostJun 13, 2011
Alex Flint
I have a system that helps, I break my backlogs extremely small the... (more)
1+ CommentsPostJan 27, 2012
Anon User
William Pietri, Maker, starter, writer.
I think it depends on the fashion in which they are off.
...
(more)
1 CommentPostAug 21, 2010
William Pietri
Philip Crawford, Software entrepreneur
If y'all haven't read The Goal or more specifically, Critical Chain... (more)
1+ CommentsPostJan 27, 2012
Philip Crawford
Vasyl Mylko, I am Director of R&D at SoftServe. Ma...
RULE 90/90
90% of the project takes 90% of time....
(more)
1 CommentPostJan 31, 2012
Vasyl Mylko
Vipul Sharma, Crazy for startup ecosystem, Strong M...
If this is the way projects were estimated, they are bound to miss ... (more)
2 CommentsPostJan 30, 2012
Vipul Sharma
There's also an inherent problem worth mentioning, which is that es... (more)
2 CommentsPostJan 27, 2012
Ben Stucki
Josef Dietl, Results through Brilliant Teams
2 votes by John Kuo and Jonah Williams
It's not (just?) that developers make bad estimates - it's the inte... (more)
1 CommentPostFeb 1, 2012
Josef Dietl
Bik Toor, thought Xperience
If an accurate estimate was given the project would not be started,... (more)
CommentPostJan 31, 2012
Bik Toor
Ken Rossi, Creative Director @ USTA/US Open
4 votes by David Urquhart, Jason Kowal, Anon User, and Christina Reddington
I think it's a simple equation
...
(more)
CommentPostJan 30, 2012
Ken Rossi
Anon User
The main reason is the underlying variability in knowledge work. No... (more)
CommentPostFeb 1, 2012
Anon User
Freek Vos, Projectmanager, on- and offline media
A lot of factors, each requiring a lot of space to expand upon. Som... (more)
CommentPostFeb 1, 2012
Freek Vos
Michael Maguire
3 votes by Anon User, Zac Ruiz, and Chris Thomson
Because if one could predict the future, one would not have to deve... (more)
CommentPostFeb 1, 2012
Michael Maguire
Keinosuke Johan Miyanaga, 宮永 計之介
2 votes by Bud Wood and Anon User
Let's not over-complicate this folks...
...
(more)
CommentPostFeb 4, 2012
Keinosuke Johan Miyanaga
In the early 2000's in my first "real" development job, I was lucky... (more)
CommentPostJan 31, 2012
Gary S. Weaver
Robert Merrill, because software shouldn't be scary.
3 votes by Anon User, Eugene Hlyzov, and Steven Trieu
Organizations don't honor the differences between targets, estimate... (more)
CommentPostJan 30, 2012
Robert Merrill
Anon User
1 vote by David Urquhart
If the project does not fit into historically predictable template ... (more)
CommentPostJan 27, 2012
Anon User
because too many people think estimating has to do with how long it... (more)
CommentPostJan 28, 2012
James Eisenhauer
Alberto Brandolini, Software development professional & o...
I like seeing software development like a combination of crafting a... (more)
CommentPostFeb 1, 2012
Alberto Brandolini
Mark Conway, EntrepreTechnoAviaPhile
The simplest answer is: because the actual effort required is going... (more)
1 CommentPostJan 31, 2012
Mark Conway
The problem in the post is that the OP didn't feel able to give his... (more)
1 CommentPostJan 27, 2012
Andy Rubio
Mike Schwab
2 votes by Dan Zahler and Anon User
You can't look at your brain thinking and predict the results of ea... (more)
3+ CommentsPostJan 31, 2012
Mike Schwab
Ravi Kalidindi, Software Solution Delivery Expert
1 vote by David Urquhart
I enjoyed the post! The problem here is the order of magnitude diff... (more)
1 CommentPostJan 31, 2012
Ravi Kalidindi
Sean Duhame, Artist / Designer / Craftsman
1 vote by David Urquhart
I see this happen continually in groups where engineers don't allow... (more)
CommentPostJan 31, 2012
Sean Duhame
Charles H Martin, Consultant, I predict things
1 vote by Miguel Paraz
Because a bunch of Fraggles could do a better job of running a soft... (more)
CommentPostMay 14, 2012
Charles H Martin
Because software nature is complex and theres nothing you can do fo... (more)
CommentPostJan 28, 2012
Nicolò Paternoster
Stefan Riehl, Founder, Developer, Internet & Mobile...
1 vote by David Urquhart
Obviously everybody knows why, but it will happen again and again. ... (more)
CommentPostJan 31, 2012
Stefan Riehl

Amateurs!...
(more)
CommentPostJan 27, 2012
David Urquhart
Samir Al-Battran, Founder of TweepsMap, Co-Founder of R...
4 votes by Anon User, David Urquhart, Mark McQuillan, and Ethan Resnick
The main reason why the estimations are off is because the people t... (more)
CommentPostJan 28, 2012
Samir Al-Battran
Early on in my self-employeed career I read an article or an interv... (more)
CommentPostJan 27, 2012
Mark Simchock
Martin Jambon, programmer
1 vote by John Bachir
Because there is no value in delivering before the deadline. It is ... (more)
CommentPostJan 27, 2012
Martin Jambon
Joakim Möller, DRY C++ and C# development
1 vote by Freek Vos
Because when you have finally worked out all quirks doing the estim... (more)
CommentPostJun 24, 2010
Joakim Möller
Sandro Pasquali, Motivator
1 vote by Dimitri Gnidash
Failure in task estimation here refers to time and cost overruns.
...
(more)
CommentPostFeb 11, 2012
Sandro Pasquali
Janno Teelem, I have 10+ years of experience in sof...
1 vote by Jason Martinez
First, I think it's definitely important to estimate tasks otherwis... (more)
1 CommentPostJul 26, 2010
Janno Teelem
Ed Bradford, Political Analyst
Why are software development task estimations regularly off by a fa... (more)
CommentPostFeb 1, 2012
Ed Bradford
Mike Davis, Working in the computer field for ove...
What's happened to our "profession"?
Some of the comments here make...
(more)
CommentPostJun 15, 2011
Mike Davis
It is often said that the last 10% of functionality takes 90% of th... (more)
CommentPostJun 24, 2010
Chui Tey
Francis Fish, Agile nut, Rails developer, programmi...
I think the walking analogy right at the top makes perfect sense - ... (more)
CommentPostFeb 8, 2012
Francis Fish
Brian Roy, entrepreneur, technologist, president...
The ONLY appropriate to this question is to understand the definiti... (more)
CommentPostJan 31, 2012
Brian Roy
Sean Gilbertson, Software Engineer
2 votes by John Bachir and AJ Cantu
The only way to generate a 'nearly-accurate' estimate is to design ... (more)
CommentPostJan 31, 2012
Sean Gilbertson
Scott Rosenburg's Dreaming in Code is a great book about the compli... (more)
2 CommentsPostJan 27, 2012
Andy Ennamorato
To me, this seems like a experience question.  After 15 years in th... (more)
CommentPostFeb 1, 2012
Jason Mark
First thing that comes to my mind are poorly defined stages and wor... (more)
CommentPostFeb 1, 2012
Roman Urbanovski
Anon User
Known unknowns and unknown unknowns.
...
(more)
CommentPostJan 27, 2012
Anon User
Marcos Polanco, Guru Apparatchik
It is material that estimates are consistently 2-3X off. The reason... (more)
CommentPostJan 27, 2012
Marcos Polanco
Percy Stilwell, Co-founder of Resource Guru - resourc...
We're developing a web app and so far it's bang on time. We spent t... (more)
1+ CommentsPostFeb 1, 2012
Percy Stilwell
This has been touched on, but needs to be pointed out.
The rest of ...
(more)
CommentPostFeb 1, 2012
Doug Gibbs
David Santoro, carbuzz.co.uk Co-founder & CTO, Coder...
Estimates in software development often don't work because of the u... (more)
2 CommentsPostMay 25, 2012
David Santoro
Chris Rutherford, http://about.me/ChrisRutherford
#1 Cause = Projects fail to take into account Hofstadter's Law
CommentPostJan 31, 2012
Chris Rutherford
The same question would be: "Why are 40% of sick days Mondays and F... (more)
CommentPostJan 30, 2012
Julian Reischl
Pella Bergquist, Senior UX Architect & Science Fiction...
Of course, most responses here are correct, in their own way, and t... (more)
CommentPostJan 31, 2012
Pella Bergquist
Because our brain has difficulty envisioning accurately the future ... (more)
CommentPostFeb 1, 2012
Orlin Todorov
Could it be, that the estimates are low initially in order to 'land... (more)
CommentPostJan 28, 2012
Ryan Schultz
we have to distinguish between software design & development and in... (more)
CommentPostJan 29, 2012
Antonio Ancibug
A factor of 10 is not unusual it's in the nature of programmers to ... (more)
CommentPostJan 31, 2012
Wil St. Hill
Danii Oliver, CDO, Creative Technologist, SavvyAuntie
We come across many clients who have the issue of time when it come... (more)
CommentPostFeb 1, 2012
Danii Oliver
Dave Cline, Anectdotal hyperbolist
Software is art. Software is not a mechanics job. Software is not a... (more)
CommentPostJan 31, 2012
Dave Cline
Some software development task estimations are spot on. For estimat... (more)
CommentPostJan 31, 2012
Peiran Guo
Anon User
What i see is the following.  Everyone has / is going agile.  In do... (more)
4+ CommentsPostJan 27, 2012
Anon User
Sometimes I wonder if it's not the tools provided to think outside ... (more)
CommentPostJan 28, 2012
Michelle Shields
Anon User
1 vote by John Bachir
How long is a piece of string?
CommentPostJan 31, 2012
Anon User
John S. Richards, http://johnsrichards.com
1 vote by Josef Dietl
Mark Twain: "Predictions are difficult, especially about the future... (more)
1 CommentPostFeb 1, 2012
John S. Richards
Software development estimates are wrong because people like to bra... (more)
1 CommentPostFeb 1, 2012
Andrew Bell
Building construction is fairly cut and dried, right? How wrong can... (more)
CommentPostMay 21, 2012
Scott Mullins
I have to commend Michael Wolfe's wonderfully told analogy although... (more)
1 CommentPostJan 31, 2012
Michel Floyd
 
Add Answer