Unfounded Optimism

4.6 Unfounded Optimism

Optimism assails software estimates from all sources. On the developer side of the project, Microsoft Vice President Chris Peters observed that "You never have to fear that estimates created by developers will be too pessimistic, because developers will always generate a too-optimistic schedule" (Cusumano and Selby 1995). In a study of 300 software projects, Michiel van Genuchten reported that developer estimates tended to contain an optimism factor of 20% to 30% (van Genuchten 1991). Although managers sometimes complain otherwise, developers don't tend to sandbag their estimates—their estimates tend to be too low!

Tip #20 

Don't reduce developer estimates—they're probably too optimistic already.

Optimism applies within the management ranks as well. A study of about 100 schedule estimates within the U.S. Department of Defense found a consistent "fantasy factor" of about 1.33 (Boehm 1981). Project managers and executives might not assume that projects can be done 30% faster or cheaper than they can be done, but they certainly want the projects to be done faster and cheaper, and that is a kind of optimism in itself.

Common variations on this optimism theme include the following:

  • We'll be more productive on this project than we were on the last project.

  • A lot of things went wrong on the last project. Not so many things will go wrong on this project.

  • We started the project slowly and were climbing a steep learning curve. We learned a lot of lessons the hard way, but all the lessons we learned will allow us to finish the project much faster than we started it.

Considering that optimism is a near-universal fact of human nature, software estimates are sometimes undermined by what I think of as a Collusion of Optimists. Developers present estimates that are optimistic. Executives like the optimistic estimates because they imply that desirable business targets are achievable. Managers like the estimates because they imply that they can support upper management's objectives. And so the software project is off and running with no one ever taking a critical look at whether the estimates were well founded in the first place.

 Python   SQL   Java   php   Perl 
 game development   web development   internet   *nix   graphics   hardware 
 telecommunications   C++ 
 Flash   Active Directory   Windows