Friday, February 29, 2008

Plan to do New Mistakes...

Ever imagined yourself to be Michael Schumacher or Fernando Alonso when you drive your car? I hope most of the formula one aficionado at some point would have wondered what it takes to be a formula one driver. Other than amazing levels of fitness (click here to understand the level of fitness we talk about), a formula one driver should also be mentally strong, with supreme driving abilities and split level reflexes.

Compare a formula one driver to a good driver on the road. Though it is nice to have the talents and skills of a formula one driver, it is not necessary that all those are needed to be a good driver on the road. People say that you don’t have to do anything different, but it is enough if you avoid doing the common mistakes. The common mistakes can be anything like talking on a cell phone while driving or driving aggressively or over speeding or tailgating.

The point is that to be a good driver, you don’t necessarily need the driving skills of a F1 driver, and most of the times it is enough if we don’t do the well known mistakes. What holds for driving also holds for Project Management. Most of the projects that we do, doesn’t require the equivalent of a F1 driving skill in project management. It is enough if we ‘not do’ certain mistakes. If you are wondering what these ‘mistakes’ are, just read on…

Documented history of projects is available since 1960s. The study of the data available has shown that some acts of people are repeated often, irrespective of the fact that ‘it’ has an adverse impact on the outcome of the project. Books have been written around some of these topics. For e.g. the case of uncontrolled problem employees is covered by Gerald Weinberg’s Psychology of Computer Programming. Adding late people to a project is cited as a mistake by Fred Brooks in his book the Mythical Man Month. The effect of noisy and over crowded offices on programmers is studied in the book Peopleware by Tom DeMarco and Lister.

While browsing Steve McConnell’s book Rapid Development: Taming Wild Software Schedules over the week end, I came across this chapter called Classic Mistakes Enumerated. Steve McConnell* say’s that some of the mistakes are so often repeated (like adding more people to a project that is already running late or believing in Heroic Acts to salvage projects), that they deserve to be called Classic Mistakes. These are classified into four categories, namely

  1. People related mistakes.
  2. Process related mistakes.
  3. Product related mistakes.
  4. Technology related mistakes.

Following is the detailed list of those mistakes, listed under the four different categories.

People-Related Mistakes

  • Undermined Motivation
  • Weak Personnel
  • Uncontrolled Problem employees
  • Heroics
  • Adding people to a late project
  • Noisy Crowded offices
  • Friction between developers and customers
  • Unrealistic expectations
  • Lack of effective sponsorship
  • Lack of Stake holder buy in
  • Lack of user input
  • Politics placed over substance
  • Wishful thinking

Process-Related Mistakes

  • Overly Optimistic Schedules
  • Insufficient risk management
  • Contractor failure
  • Insufficient planning
  • Abandonment of planning under pressure
  • Wasted time during fuzzy front end
  • Short Changed upstream activities
  • Inadequate design
  • Short changed quality assurance
  • Insufficient management control
  • Premature or too frequent convergence
  • Omitting necessary tasks from estimates
  • Planning to catch up later
  • Code like hell development

Product-Related Mistakes

  • Requirements gold plating
  • Feature Creep
  • Developer Gold plating
  • Push me – Pull me negotiation
  • Research Oriented Development

Technology-Related Mistakes

  • Silver Bullet Syndrome
  • Overestimating savings from new tools or methods
  • Switching tools in the middle of a project
  • Lack of automatic source code control

I hope we get to manage most of the projects we do, by avoiding these mistakes and committing new mistakes (we all make them most of the time, don’t we?). Not only will the projects be successful, we also get to contribute to the History of Software Engineering, through a new mistake. Ok. That part was just a joke. :-)

I personally believe that the list is so comprehensive that any so called new mistake is actually a manifestation of one of the mistakes mentioned above.Most of the mistakes mentioned above are self explanatory. By understanding these mistakes in detail, I hope we won’t repeat these mistakes when we manage our projects.

3 comments:

  1. Nice article and seems a reasonable list of mistakes (Often they are realized as mistakes only after the fact)

    - Adding people to a late project(or is it adding people late to a project: What are the options available to a Proj Manager to bring the late running project back into the schedule?

    - Feature Creep : Given the market conditions, this is certain to happen for most projects. The question is how to allow or plan for feature creep in the schedule rather than calling it as a mistake and attempting to avoid it altogether.

    ReplyDelete
  2. question: Adding people to a late project(or is it adding people late to a project: What are the options available to a Proj Manager to bring the late running project back into the schedule?

    Please refer to my article on Trying to understand why projects fail at the following link. http://mysticmundane.blogspot.com/2008/02/graph-and-trying-to-understand-why.html.

    There are two good options available to a project manager. one is decreasing the scope of the project, so that you deliver on the agreed date a project with decreased scope. This is the best option available to all the stake holders if acceptable.

    The other is modifying the end date of the project and delivering the entire scope on a date that is much later than the agreed date. Usually this option is not used as projects, if delayed have a business impact and hence the sponsors dont want the delivery to be delayed.

    The bad choice.

    The third option that is usually chosen is keeping the scope and the end date as the same and adding more resources. But what managers usually forget is that communication is an over head and there are other factors that people tend to overlook ( they look at everything in an optimistic manner) because of which the delivery date that is usually expected to be met is not.

    ReplyDelete
  3. Feature Creep : Given the market conditions, this is certain to happen for most projects. The question is how to allow or plan for feature creep in the schedule rather than calling it as a mistake and attempting to avoid it altogether.

    It is true that as a project manager, you have to expect that change will happen and plan accordingly. The important point to note is that we have to differentiate between wanted changes and un wanted changes and ensure that the wanted changes alone happen.

    Also, note that if it happens to our knowledge, it is called Change Management and not feature creep or scope creep. :-)

    If it happens without the project manager being aware, it is called feature creep or scope creep.

    If you have a good change management process in place, then you can ensure that feature creep doesnt happen.

    ReplyDelete