Classic Mistakes Updated

  1. Posted on June 15, 2007 10:07:PM by Steve McConnell to 10x Software Development
  2. Management, classic mistakes, white paper, Articles

In Rapid Development I wrote that, "Some ineffective development practices have been chosen so often, by so many people, with such predictable, bad results that they deserve to be called 'Classic Mistakes.'" That was in 1996. At that time I was self-employed and most of my experience had come from working with only a handful of companies.

New Classic Mistakes

After founding Construx, a decade of work with hundreds of companies has enabled us to identify several new classic mistakes. Here are the additional classic mistakes we've identified:

  • Confusing estimates with targets
  • Excessive multi-tasking
  • Assuming global development has a negligible impact on total effort
  • Unclear project vision
  • Trusting the map more than the terrain
  • Outsourcing to reduce cost
  • Letting a team go dark (replaces the previous "lack of management controls")
Next Step: Hard Data on Classic Mistakes 

The next step in our work is to identify just how "classic" these classic mistakes really are. Are they really made very frequently, and is the impact really very bad when the mistakes are made? To answer those questions, we've launched a Classic Mistakes Survey, and I invite you to take it. The survey lists 42 classic mistakes and asks you to rank the frequency and severity of each mistake in your experience.

When we have enough responses we'll post the results of the survey. People who complete the survey will receive a summary of the survey at least 30 days sooner than the general public.

So please, take the survey!

The 36 Original Classic Mistakes

For the record, the table below lists the original classic mistakes from Rapid Development. And here is a link to the full text of the original Classic Mistakes chapter from Rapid Development).

People-Related Mistakes     Process-Related Mistakes     Product-Related Mistakes     Technology-Related Mistakes  
1. Undermined motivation

2. Weak personnel

3. Uncontrolled problem employees

4. Heroics

5. Adding people to a late project

6. Noisy, crowded offices

7. Friction between developers and customers

8. Unrealistic expectations

9. Lack of effective project sponsorship

10. Lack of stakeholder buy-in

11. Lack of user input

12. Politics placed over substance

13. Wishful thinking

14. Overly optimistic schedules

15. Insufficient risk management

16. Contractor failure

17. Insufficient planning

18. Abandonment of planning under pressure

19. Wasted time during the fuzzy front end

20. Shortchanged upstream activities

21. Inadequate design

22. Shortchanged quality assurance

23. Insufficient management controls

24. Premature or too frequent convergence

25. Omitting necessary tasks from estimates

26. Planning to catch up later

27. Code-like-hell programming

28. Requirements gold-plating

29. Feature creep

30. Developer gold-plating

31. Push me, pull me negotiation

32. Research-oriented development

33. Silver-bullet syndrome

34. Overestimated savings from new tools or methods

35. Switching tools in the middle of a project

36. Lack of automated source

Take the survey!

Paulo Eduardo Neves said:

June 16, 2007 8:38:PM

Hope it means that a new edition of "Rapid Development" is coming soon:-)

Chris Norton said:

June 16, 2007 11:40:PM

I think lists of "classic mistakes" are extremely useful in software development. Speaking from an educational perspective, it's good for students (and educators) to be able to see the kinds of things that go wrong in real-world software projects and to come up with strategies for how to avoid them. This also teaches them the benefits of risk management. :)

It'll be interesting to see the new list of classic mistakes!

Mike Ramm said:

June 20, 2007 10:31:AM

Last night had my first public speech. I was invited at a seminar organized by the Bulgarian Association of Software Developers (BASD) and I spoke about the classic mistakes of the software development. I was inspired by your book Rapid Development ever since I read it the first time about 10 years ago and I'm still fighting against them.

I think it was just about time to make an update to the list and to evaluate the frequency and the impact of the classic mistakes these days. To make a survey is a great idea - I took it immediately and I encourage my colleagues and the readers of my blog to take it too. I believe it will give us more exact information what are the most common and the most dangerous mistakes that we make.

Thank you, Steve!


Maksym Shostak said:

June 21, 2007 11:36:AM

Does the survey correlate with techologies used (Java, .NET) and what of that communities have better support or understanding in importance of learning core programming principles?

My classic mistake is described in Code Complete 2 chapter 3.1 - where you write about dedication of laymen (managers) in prerequisites of construction...

Currently I'm looking for a job. :-)

Steve McConnell said:

June 23, 2007 10:20:AM

The survey doesn't correlate with techologies used (Java, .NET, etc.). If you look at the specifics, there are a couple mistakes related to uncritical adoption of technologies, but the mistakes aren't based on details of any specific technology.  

imran said:

June 23, 2007 8:03:PM

It's soemtime unfortunate that software development has come along way and yet, there are these classical mistakes that are dealt with in most cases. Reading the list brings back a lot of 'ah yes - i've been there' situations. The sad part is it though that these are known things but get overlooked or neglected when people are slaves for time. when the time in concern is not planned properly, most of these mistakes arise. IMHO a basic rule that defines a golden triangle; "Requirements-People(Effort)-Cost" in projects. And when this is negelected, i think we dive into most of the mistakes described here.

I think the classical mistakes should be a check-list for all decission makers, planning folks when engaging in a project. The list should be checked during initiation, planning, implementation and tracking of a project. Thanks for this list.

Travis Jensen said:

August 7, 2007 10:44:AM

This is a great list.  It would be interesting to view a prioritized list (from your viewpoint).  Personally, my experience has shown (in each category) uncontrolled problem employees, wasted time up front (followed closely by code-like-hell programming as a result), feature creep, and switching tools to be most destructive.

Many of these mistakes I've seen forced into a project by non-technical management, either further up the engineering management chain or outside of engineering altogether.


Application said:

November 15, 2014 5:07:AM

please does anyone have the answer to the case study ?

Post a Comment:


Steve McConnell

Steve McConnell is CEO and Chief Software Engineer at Construx Software where he consults to a broad range of industries, teaches seminars, and oversees Construx’s software development practices. In 1998, readers of Software Development magazine named Steve one of the three most influential people in the software industry along with Bill Gates and Linus Torvalds.

Steve is the author of Software Estimation: Demystifying the Black Art (2006), Code Complete (1993, 2004), Rapid Development (1996), Software Project Survival Guide (1998), and Professional Software Development (2004). His books twice won Software Development magazine's Jolt Excellence award for outstanding software development book of the year.

Steve has served as Editor in Chief of IEEE Software magazine, on the Panel of Experts of the SWEBOK project, and as Chair of the IEEE Computer Society’s Professional Practices Committee.

Steve received a Bachelor’s degree from Whitman College, graduating Magna Cum Laude, Phi Beta Kappa, and earned a Master’s degree in software engineering from Seattle University.
Contact Steve