Recent Changes - Search:

Main.SideBar (edit)



WhyProjectsFail

A long time ago I was asked at an interview "Why do projects fail"... my response was that there is no single reason and my unvioced view was "If I knew the answer to that I'd be rich". But it is something that has interested me ever since. This morning whilst driving to work I had an insight that seemed worth sharing.

Software development is often comapred to construction. I have worked in both industries and there are some key differences that mean in reallity there is very little similarity between the two industries.

  • In construction the design space is physical and separate from the construction space. In software development the design and development space are the same thing (a computer).
  • In construction there is a high cost of materials. In software there are negliable material costs.

These two distinctions have far reaching implications. In constuction the site can be physically measured, an obvious requriement is that the thing being deisgned must fit the available space. The fact that the space is remote from the designers means they can't just "try things out". They must collect the data they need and then do the design.

The fact that there are costly materials invloved in construction means that every item is detailed and double checked. Someone has to order every nut, bolt, washer, reinforcing bar, cubic metre of concrete, etc. This means that everything must be detailed and measured and ordered, which in itself is a checking process.

All of this adds up to one thing, a lengthy design process. Sometimes it takes years or decades to get a new construction project from concept through outline design, planning, detailed design and into construction. When did that ever happen with software.

And that is the insight - We do not spend the right amount of time on the early parts of the design process. The thing that really got me to this line of thinking was that I am putting together a Sales/Invoicing/Stock Cotnrol system for a friend and I have spent a long period of time looking for a suitable open source solution on which I can build. It's not that I have spent every hour for months evaluating solutions, it is that I have spent about 5-10 hours over the last 3 months looking at candidate solutions. A few weeks ago I came up with a proposal and we were all set to get started when I found a better solution. So now we are reconsidering.

Some people will see this as "analysis paralysis" - the tendancy to always look for something better and never get on with the task. And it is true that in most projects I have worked on, this would be unacceptable. We always have to rush head-long into detailed design, even when that rush is clearly yeilding bad decisions.

Pretty much all the projects I have ever worked on have delivered, at least in part, and of the few that have failed I now think they did so because of schedule commitments to deliver certain things by certain dates regardless of quality; and that the up front outline design period was way to short. I am not advocating abonding schedules and just letting things run and run with no control. What I am saying is increase the time spent on outline design and/or package selection. I really have seen situations where a package was selected because a dealine needed to be hit, even though there was a more suitable package available, but its vendor did not get a tender in on time. What kind os madness is that?

I once went on a course about Creating New Ideas. One of the objectives of the course was to convince us that one does not need to be a creative person to come up the good new ideas and another objective was to demonstrate techiques for generating new ideas in a time constrained situation. I liked the course and enjoyed what we learned, it was helpful, but it is simply not true that anyone can come up with the best ideas, neither is it true that the best ideas can be forced into existence in a short period of time.

Chris Hunter - 2005

Edit - History - Print - Recent Changes - Search
Page last modified on May 12, 2006, at 08:38 PM