A recent article on the May 2010 flash-crash made the point that computer science education does not prepare us for the governance of critical “systems of systems” (SoS) created and operated by independent business entities. Predicting the behavior of SoS exemplars such as high-speed trading systems is extremely difficult, since the components of SoS were created for purposes of competition as much as cooperation, and are constantly being modified to benefit their owners.
You don’t need to look into the dark arts of securities trading or travel reservation ecosystems to find SoS, because SoS is now the norm for new application development. Cloud applications are now routinely built as SoS because it is extremely cheap and fast to do so. If startup programmers didn’t have off-the-shelf components to build software with, we could never see the rate of new software creation that we do. And all these components are built and operated for the benefit of their owners.
Cheap and fast software built using components whose provenance is opaque comes at a price. With no enforceable SLAs, no data chain of custody, and no expectation of performance, mass outages of popular software services such as Netflix are not usual, they are a certainty. For anyone concerned with privacy, security, ownership, application availability, reliability, predictability and operability, “SOS” is the right acronym indeed.
As the author’s note, educators are not preparing us for SoS. But it’s doubtful that they ever could. As the Internet has made software a pervasive presence in our lives, software has become the tool of our collective human intentions and needs, whether greed, or lust, or power, you name it.
I recommend a close reading of Shakespeare or a minor in Ecology rather than better CS courseware.