Such disasters are often blamed on bad software, but the cause is rarely bad programming.
As systems grow more complicated, failures instead have far less technical explanations: bad
management, communication or training.
�In 90 percent of the cases, it�s because the implementer did a bad job, training was bad, the
whole project was poorly done,� said Joshua Greenbaum, principal analyst at Enterprise Applications
Consulting in Berkeley. �At which point, you have a real garbage in, garbage out problem.�