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?
Repost (9)15+ CommentsWiki
 

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.

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
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...
Michael Wolfe
Devdas Bhagat, Just another geek.
Do you want precise estimates, or accurate ones? Accurate estimates... (more)
Devdas Bhagat
Randal Truong, Internet Enthusiast.
Generally it is all of the reasons given in the question.  Some exp... (more)
Randal Truong
Revett Eldred, Grey haired aging geek.
Wow.  Plus ca change, plus c'est le meme chose.  I started developi... (more)
Revett Eldred
It isn't actually complex. Women underestimate their number of sexu... (more)
Jay Kreps
Jim Skinner, Dear Software Engineering, You are m...
There are three areas in which estimates hit the brick wall of real... (more)
Jim Skinner
30 years experience. The biggest reason software is late is because... (more)
UpvoteDownvoteRepost (2)CommentJan 27, 2012
Walt Howard
I think software people make too much of software being "different"... (more)
Lance Walton
I've discussed this with people who work in construction. When they... (more)
UpvoteDownvoteRepost (1)CommentJan 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)
Erik Fair
In 1982, Tom DeMarco wrote in his excellent book Controlling Softwa... (more)
Rachel Willmer
So these 2 clowns who have never walked any distance together, set ... (more)
Tim Panton
Because humans can't estimate complexity very well. It could be com... (more)
Edo A. Elan
Ryan Marsh, Project Manager, Software Developer, ...
There is a reference to conversations with process technologists at... (more)
Ryan Marsh
It is not what you don't know at the beginning,
...
(more)
Anon User
By definition, any software development task of reasonable complexi... (more)
Tom Karlo
I think mainly because progress is not linear in the effort.  What ... (more)
John Kuo
Being off by a factor of 2-3 leads me to think the main driver is a... (more)
Derek Reinhold
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)
Jim Yagmin
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)
Alex Flint
It also doesn't help if you put so much pressure on your developers... (more)
Alwyn Schoeman
Because engineers do not get prompt feedback on the quality of thei... (more)
Tristan Kromer
William Pietri, Cofounder and CTO of NeedFeed; develo...
I think it depends on the fashion in which they are off.
...
(more)
William Pietri
I have a system that helps, I break my backlogs extremely small the... (more)
Anon User
RULE 90/90
90% of the project takes 90% of time....
(more)
Vasyl Mylko
There's also an inherent problem worth mentioning, which is that es... (more)
Ben Stucki
If an accurate estimate was given the project would not be started,... (more)
Bik Toor
If y'all haven't read The Goal or more specifically, Critical Chain... (more)
Philip Crawford
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)
Ken Rossi
Vipul Sharma, Crazy for startup ecosystem, Strong M...
If this is the way projects were estimated, they are bound to miss ... (more)
Vipul Sharma
Anon User
The main reason is the underlying variability in knowledge work. No... (more)
Anon User
Freek Vos, Projectmanager, on- and offline media
A lot of factors, each requiring a lot of space to expand upon. Som... (more)
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)
Michael Maguire
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)
Josef Dietl
Alberto Brandolini, Software development professional & o...
I like seeing software development like a combination of crafting a... (more)
Alberto Brandolini
Mark Conway, EntrepreTechnoAviaPhile
The simplest answer is: because the actual effort required is going... (more)
Mark Conway
In the early 2000's in my first "real" development job, I was lucky... (more)
Gary S. Weaver
because too many people think estimating has to do with how long it... (more)
James Eisenhauer
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)
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)
Sean Duhame
Johan Miyanaga, 宮永 計之介.
2 votes by Bud Wood and Anon User
Let's not over-complicate this folks...
...
(more)
Johan Miyanaga
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)
Joakim Möller
Because software nature is complex and theres nothing you can do fo... (more)
Nicolò Paternoster
Robert Merrill, because software shouldn't be scary.
Organizations don't honor the differences between targets, estimate... (more)
Robert Merrill
Early on in my self-employeed career I read an article or an interv... (more)
Mark Simchock
Konrad Szpirak, exploring mind that doesn't stop.
1 vote by David Urquhart
If the project does not fit into historically predictable template ... (more)
Konrad Szpirak
Obviously everybody knows why, but it will happen again and again. ... (more)
Stefan Riehl
The problem in the post is that the OP didn't feel able to give his... (more)
Andy Rubio
The main reason why the estimations are off is because the people t... (more)
Samir Al-Battran
Martin Jambon, programmer
1 vote by John Bachir
Because there is no value in delivering before the deadline. It is ... (more)
Martin Jambon
Mike Davis, Working in the computer field for ove...
What's happened to our "profession"?
Some of the comments here make...
(more)
Mike Davis
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)
Janno Teelem

Amateurs!...
(more)
David Urquhart
It is often said that the last 10% of functionality takes 90% of th... (more)
Chui Tey
Brian Roy, entrepreneur, technologist, president...
The ONLY appropriate to this question is to understand the definiti... (more)
Brian Roy
Francis Fish, Agile nut, Rails developer, programmi...
I think the walking analogy right at the top makes perfect sense - ... (more)
Francis Fish
Anon User
Known unknowns and unknown unknowns.
...
(more)
Anon User
Marcos Polanco, Guru Apparatchik
It is material that estimates are consistently 2-3X off. The reason... (more)
Marcos Polanco
To me, this seems like a experience question.  After 15 years in th... (more)
Jason Mark
Ed Bradford, Political Analyst
Why are software development task estimations regularly off by a fa... (more)
Ed Bradford
This has been touched on, but needs to be pointed out.
The rest of ...
(more)
Doug Gibbs
Dave Cline, Anectdotal hyperbolist
Software is art. Software is not a mechanics job. Software is not a... (more)
Dave Cline
The same question would be: "Why are 40% of sick days Mondays and F... (more)
Julian Reischl
Sean Gilbertson, Software Engineer
1 vote by John Bachir
The only way to generate a 'nearly-accurate' estimate is to design ... (more)
Sean Gilbertson
You can't look at your brain thinking and predict the results of ea... (more)
Mike Schwab
Pella Bergquist, Senior UX Architect & Science Fiction...
Of course, most responses here are correct, in their own way, and t... (more)
Pella Bergquist
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)
Percy Stilwell
Could it be, that the estimates are low initially in order to 'land... (more)
Ryan Schultz
we have to distinguish between software design & development and in... (more)
Antonio Ancibug
Chris Rutherford, http://about.me/ChrisRutherford
#1 Cause = Projects fail to take into account Hofstadter's Law
Chris Rutherford
A factor of 10 is not unusual it's in the nature of programmers to ... (more)
Wil St. Hill
Because our brain has difficulty envisioning accurately the future ... (more)
Orlin Todorov
First thing that comes to my mind are poorly defined stages and wor... (more)
Roman Urbanovski
Danii Oliver, CDO, Creative Technologist, SavvyAuntie
We come across many clients who have the issue of time when it come... (more)
Danii Oliver
Some software development task estimations are spot on. For estimat... (more)
Peiran Guo
Scott Rosenburg's Dreaming in Code is a great book about the compli... (more)
Andy Ennamorato
Sandro Pasquali, Motivator
1 vote by Dimitri Gnidash
Failure in task estimation here refers to time and cost overruns.
...
(more)
Sandro Pasquali
Anon User
What i see is the following.  Everyone has / is going agile.  In do... (more)
Anon User
Anon User
1 vote by John Bachir
How long is a piece of string?
Anon User
Sometimes I wonder if it's not the tools provided to think outside ... (more)
Michelle Shields
I have to commend Michael Wolfe's wonderfully told analogy although... (more)
Michel Floyd
Software development estimates are wrong because people like to bra... (more)
Andrew Bell
John S. Richards, http://johnsrichards.com
1 vote by Josef Dietl
Mark Twain: "Predictions are difficult, especially about the future... (more)
John S. Richards
 
Add Answer