Simplicity considered harmful (sometimes)
Ian Sommerville, University of St Andrews, UK (retired)Abstract | Biography | Homepage | Twitter |
The notion of simple software is a beguiling one. We all have experience of bloated products where we only use 20% of the features. Who wouldn’t want a simpler system? Simple software is easier to learn and use and is potentially, easier to create and maintain.
However, in this talk, I will argue that for some types of software, simplicity can be a siren song that is luring us into designing software that only displaces complexity to elsewhere in the overall system. Drawing on examples from complex, socio-technical systems that we have studied, I will highlight a number of situations where simplicity was not the answer. I suggest that a focus on simplicity can lead to brittle software that does not meet the real needs of its stakeholders. The software may be simpler but the overall system is less useful and less resilient.
To create the resilient systems that we need to run future cities, healthcare and government, I will suggest that we need holistic approaches to requirements engineering that consider organisational as well as technical issues. These approaches should reveal the inherent complexity of these systems and help engineers make decisions about how to manage that complexity and so define a socio-technical system that can cope with technical and human failure.
Ian Sommerville wrote his first program in 1970 and has been involved in software engineering teaching and research since 1979. Since 1990, his research has been concerned with socio-technical systems with a particular focus on how ethnographic field studies of these systems can be used as part of the requirements engineering and systems design processes. He was Professor of Software Engineering at the Universities of Lancaster and St Andrews and is the author of a widely used textbook on software engineering. Since retiring in 2014, he has rediscovered the fun of programming and now develops small-scale software systems in Python.
Requirements Engineering for High Assurance Autonomous Systems in the Face of Uncertainty: A Multidisciplinary Perspective
Betty Cheng, Michigan State University, USAAbstract | Biography | Homepage |
High assurance systems domains, such as cyber-physical systems usually must achieve a higher level of robustness and reliability because they control real-world physical processes or devices upon which we depend, frequently, in a critical way (e.g., medical devices, automotive and flight systems, etc.). Increasingly, these systems need to dynamically adapt its behavior at run time in response to changing conditions in the supporting computing and communication infrastructure, as well as in the surrounding physical environment. A significant challenge posed to the developers of such systems is how to deal with uncertainty.
Three key types of uncertainty must be addressed. First, uncertainty about the physical environment can lead to suboptimal, and sometimes catastrophic, results as the system tries to adapt to unanticipated or poorly-understood environmental conditions. Second, uncertainty in the cyber environment can lead to unexpected and adverse effects, including not only performance impacts (load, traffic, etc.) but also potential threats or overt attacks. Finally, uncertainty can exist with the software features themselves and how they interact under various environmental conditions, including unexpected and unwanted feature interactions.
Each of these sources of uncertainty can potentially be identified and mitigated at design time and run time, where requirements engineering (RE) plays a central role in both cases. Based on the related literature and our investigations performed with industrial collaborators, we argue that the field of RE necessarily must leverage and integrate techniques from multiple disciplines within and outside of computing in order to address the numerous RE and assurance challenges posed by uncertainty.
Betty H.C. Cheng is a professor in the Department of Computer Science and Engineering at Michigan State University. Her research interests include self-adaptive systems, requirements engineering, model-driven engineering, automated software engineering, and harnessing evolutionary computation to address software engineering problems. These research areas are used to support the development of high-assurance adaptive systems that must continuously deliver acceptable behavior, even in the face of environmental and system uncertainty. Example applications include intelligent transportation and vehicle systems. She collaborates extensively with industrial partners in her research projects in order to ensure real-world relevance of her research and to facilitate technology exchange between academia and industry. Previously, she was awarded a NASA/JPL Faculty Fellowship to investigate the use of new software engineering techniques for a portion of the shuttle software.
She works extensively with industrial collaborators, including one sabbatical working with the Motorola Software Labs investigating automated analysis techniques of specifications of telecommunication systems. She was awarded an international faculty scholarship to explore research techniques for specifying and managing uncertainty in high-assurance systems. Recently, she has launched new multidisciplinary projects in the area of model-driven approaches to sustainability, cyber security for automotive systems, and feature interaction detection and mitigation for autonomic systems, all in the context of operating under uncertainty while maintaining assurance objectives.
Her research has been funded by several federal funding agencies, including NSF, ONR, DARPA, NASA, AFRL, ARO, and numerous industrial organizations. She serves on the editorial boards for Requirements Engineering Journal and Software and Systems Modeling; she recently completed a second four-year term on IEEE Transactions on Software Engineering. She was the Technical Program Co-Chair for IEEE International Conference on Software Engineering (ICSE-2013), the premier and flagship conference for software engineering. Each year, she serves on the program board and program committees for the major conferences in her field (e.g., ICSE, FSE, MODELS, and RE).
How Design Thinking Works (@ SAP)
Romana Oehmig, Lead Design Thinking & Business Model Innovation, SAPAbstract | Biography |
In the keynote, Romana will introduce the Design Thinking methodology in general. She will show some examples on how Design Thinking is used in SAP’s development area to solve problems, improve the usability and drive innovation. Romana will shortly mention, how this approach was introduced to a global organization and how SAP's customers benefit from it.
The session will also include hands-on exercises to allow the audience to experience the Design Thinking approach.
At the end, Romana will share some links and recommendations on how to learn more on Design Thinking.
Joined SAP in 1998 working as e-learning consultant and project manager. She has driven knowledge transfer projects for consultants, partners and SAP employees and has several times introduced new tools and methodologies.
Since 2007 Romana acts as Design Thinking Coach with deep knowledge of Business Model Innovation.
Since 2015, Romana is the lead of the team “Design Thinking & Business Model Innovation” in the area Products and Innovation. In this role, she supports the product teams to create desirable, viable and feasible products. The team and the network of DT coaches support the transition to the cloud for SAP product teams, SAP partners and customers.
Romana created the online course “Developing Software using Design Thinking” which includes a virtual group work and online collaboration options in close cooperation with the openSAP team and the HPI platform team.