by Bernie Cohen
I attended the Schloss Dagstuhl conference in December 2009. my argument was that critical systems evolve because they are embedded in socio-technical ecosystems. This subsequently became a paper published in IEEE Computing in collaboration with Philip Boxer, with the following abstract:
Classical engineering fails to model all the ways in which a critical sociotechnical system fits into a larger system. A study of orthotics clinics used projective analysis to better understand the clinics’ role in a healthcare system and to identify risks to the clinics’ evolution.
The paper was part of a special issue bringing together software engineering researchers and practitioners focused on evolving critical systems. The introduction identified five game changers framing the research agenda in this field:
- Software ubiquity. More software is being deployed in more consumer devices, meaning that failures are more likely to affect ordinary people.
- Software criticality. As software embeds itself deeper into the fabric of society, single software failures have greater potential to affect more people. This increases the potential for software to be considered critical even when it isn’t complex.
- People-in-the-loop. As software is deployed to control systems in which human actors participate, the issue of human interactions with software becomes more important.
- Entanglement. Software dependencies have become more complex, and much real-world software is entangled with software developed by third-party providers.
- Increased evolution tempo. The tempo of evolution will continue increasing as users expect more from software. The software market is often unforgiving when even small changes can’t be done cheaply and quickly.