In the age of apps, it's easy to forget how many of our systems depend on complex code -- creating hidden, and potentially dangerous, risks.
The Los Angeles Times reports on one of the most spectacular failures in recent pyrotechnic history: the simultaneous ignition of all 7,000 fireworks on July 4th:
The explanation from Garden State Fireworks, the company responsible for the mishap, is so convoluted no one seems to be sure exactly what happened. It had something to do with an overzealous backup computer file that overlapped with the primary file to accidentally set off all the fireworks at once.
"Contrary to numerous opinions and theories, the simultaneous ignition was not due to any sabotage or massive computer hardware failure," Garden State Fireworks wrote in a lengthy statement that may require a PhD in firework-ology to fully understand." The display sequence started exactly when it was expected to and the systems executed the file the way it appeared. Sadly, the file executed was the double file created in the back-up plan download process."
I have read and re-read the statement and am as perplexed as the Times reporter. But that's part of the point. In the age of apps, it's easy to forget how many of our systems depend on complex code that may be difficult to understand even for information technology professionals with other specialties. This software is sometimes custom-developed and sometimes sold in small quantities. And these systems increasingly interact with each other to create the "seamless" Web.
Our security attention has been focused on viruses, worms, and sabotage. But there's also a complexity risk in as the scope of cloud computing increases -- including risks to backups in the cloud. The Technology Review blog recently presented the concerns of Professor Bryan Ford at Yale University:
"Non-transparent layering structures...may create unexpected and potentially catastrophic failure correlations, reminiscent of ﬁnancial industry crashes," he says.
But the lack of transparency is only part of the story. A more general risk arises when systems are complex because seemingly unrelated parts can become coupled in unexpected ways.
A growing number of complexity theorists are beginning to recognise this problem. The growing consensus is that bizarre and unpredictable behaviour often emerges in systems made up of "networks of networks".
An obvious example is the flash crashes that now plague many financial markets in which prices plummet dramatically for no apparent reason.
The very difficulty of explaining the failure of one of the many specialized programs like fireworks sequencing shows how hard it is to even estimate how large our network risks are -- Rumsfeldian "unknown unknowns."
Will Professor Ford's warnings be taken seriously? Sadly, there is probably too much money to be made by disregarding them, as there was in ignoring danger signs of the bubble. But the San Diego Fourth of July fiasco, though it did not directly involve the cloud, may someday be seen as a harbinger.