In a previous post I said I thought that problems in IT are caused by complexity, and not by the pace of change, poor management or lack of skills (although any of those may contribute).
Here are some interesting thoughts from David Gelernter. Gelernter is Professor of Computer Science at Yale.
In his book Mirror Worlds he says:
"Information structures are, potentially, the most complicated structures known to man. Precisely because software is so easy to build, complexity is a deadly software killer."
"Programs that amount to a quarter of a million lines of text (there are about 7000 lines in this book, so picture 36 volumes of programs) are not in the least unusual." "It is very hard to make programs come out right. After a decent amount of effort they tend to be mostly right, with just a few small bugs. Fixing those small bugs (a bug can be small but catastrophic under the wrong circumstances) might take ten times longer than the entire specification, design, construction, and testing effort up to this point."
"If you are a software designer and you can't master and subdue monumental complexity, you're dead: your machines don't work....Hence "managing complexity" must be your goal."
I don't think many businesses or customers of IT fully recognise this. They think of IT as fiddly, not for them, full of jargon. They are happy to say they don't really understand it. They don't realize that hardly anyone does!