All official surveys on large IT projects show a very high failure rate (greater than 70% on average) regardless of the country, company, platform culture or methodology used.

I have long suspected that this indicates that the core approach to software development is wrong. How else can you explain such a massive rate of failure across all situations for large enterprise projects.

The simple fact of the matter is that what are often given as reasons for failure, are in fact themselves just the symptoms of a deeper set of issues.

I think you will find that it all boils down to the fact that, with all current approaches to software development, the COMPLEXITY of the developed system very quickly becomes unmanageable.

This provides the environment for key programmer dependencies to be abused, and for managers to start shifting goal-posts to be able to claim success.

The complexity quickly reaches a point where the gap between the original anaysis and development plans that management were working too and the actual implemented code have very little relationship.

This makes it difficult for management to even discuss the problem.

This provides a fertile environment for the consultants to come in and charge on a time and materials basis and make a killing, leaving the clients high and dry.

You can't fix a problem until you correctly identify its root cause. It is no good dealing with the symptoms as that just leads to a fire-fighting exercise.

In my opinion, the problem between management and IT is unmanageable complexity.

This problem has to be identified and understood before suitable solutions can be put forward.