Resilience can be defined in many ways and is often associated with disturbances, however, resilience also refers to the intrinsic abilities a system has to function in the face of change.

Hollnagel et al.1 define resilience as the productive tension between stability and change, always with the aim of producing systems that are “safe”. This view of socio-technical systems is pertinent to modern software engineering where change has become endemic: changing requirements, advanced technologies, complex infrastructure and new security threats. In addition to a changing environment, software production is being automated, which requires repeated re-balancing of this tension. But what is the relationship between resilience and automation?

This project focuses on socio-technical resilience of software development environments, specifically aiming to characterise how automation can best be used to improve socio-technical resilience.

1 Hollnagel, E., Woods, D. D., & Leveson, N. (2006). Resilience Engineering: Concepts and Precepts. CRC Press.