socio-technical systems
Ian Sommerville 2006
Mission control system (NASA)


There is an increasing acceptance that our overall approach to the design of software for complex computer-based systems is significantly flawed. Software is built according to some requirements which focus on the functionality of the software rather than its purpose in a wider organisation and the practicalities of its use in its operational environment. As a consequence, because of failures to consider the influence of organisational and operational factors, software is often obsolete before it is delivered, is unwanted by its users and fails to deliver the organisational benefits that were anticipated when it was procured.

The area of socio-technical systems engineering addresses these problems by taking a holistic approach to systems design which is predicated on the notion that a comprehensive understanding of social, political, organisational and operational factors is essential and should be a major influence in informing the design of software. Knowledge of the realities of system use, how people work around problems and the information they need to recover from problems is fundamental.

I have been involved in work in this area since around 1990 and was one of the first people to investigate how ethnographic studies can be used to inform systems design. For information on my work, see

The Coherence project

Patterns of Interaction

Ethnography and software testing