Until now, large-scale software failures have been most associated with the public sector. In 2007, a European Services Strategies Unit report identified 105 UK public sector contracts with substantial cost overruns.
However, Professor Flyvbjerg believes these problems apply equally to private firms.
"People always thought that the public sector was doing worse in IT than private companies - our findings suggest they're just as bad.
"We think government IT contracts get more attention, whereas the private sector can hide its details," he said.
I've worked in IT in both sectors and, frankly, there's little difference, aside from some additional security implications. Let's not forget that most public sector IT contracts (and, at least when I was there, much of the day-to-day stuff) are run by private companies/contractors. I've heard suggestions that the public sector provisioning provides a lack of definition, last minute changes to scope and all manner of other hindrances that cause delays and add time, which costs money.
The short answer is that any large project is hard to deliver and that large IT projects are almost impossible, regardless of which side of the public/private sector divide you sit on. Take a look at the recent story of an IT contractor who paid supplier's invoices twice on behalf of Somerset County Council. They bought an off-the-shelf solution and still got it wrong. Add to this the fact that Technology is constantly changing, as are requirements. A builder doesn't have to worry that the electrical supply, sewers and phone lines will have changed over the course of construction. There are very few standards (that last) in IT by comparison.
That's before we get to the old trick of going in with a low-ball figure to win the contract and then, a few years down the line, turn around and ask for more. Certainly the big contractors (of which there are few) have done that before.
It's the same with companies, once they reach a certain size efficiency is lost. You may gain some bulk-buying power, but it's much harder to manage the minutiae and you'll end up with some dead weight. It also means it takes a huge effort to change anything, like turning an oil tanker, from the company's aims to the stationery supplier.
I can't solve the problems with large IT projects, I'm not sure anyone can, but breaking it down into smaller and smaller chunks, each self-contained but with some sort of standard API to communicate with the outside, would seem the way to go.
Just don't waste your time getting upset when the next announcement of a failure comes.