You know as I read it, I had to laugh because it reminds me very much of my previous employment. I believe a lot of failed projects are due to:
1. Project Manager; bad selection dooms a project right from the start.
2. Scope creap; constantly changing the projects direction/outcomes can be disasterous.
3. Bad analysis & design; failing to plan is planning to fail.
4. Refactoring; constantly “improving” existing code.
5. Unskilled workers; learning “on the job” is a disaster for a time pressured project.
All 5 of these areas affected a recent project I worked on at my last job – a project that continues 2 years after it was started and still lacks 50%+ of the functionality of the software it was supposed to replace. Software that had it’s fundamentals coded up in roughly 6 months – it’s a sad sign of the times that buzz words and patterns these days are more interesting to some programmers than getting a project completed.