Software Engineering as Surgery (part I)

I’m always looking for ways to improve, the main goal of these series of posts is to question what we do (as software engineers) by exploring different ideas.

A Better Analogy

Dan North draws a great analogy between software ‘engineering’ and medical surgery in his talk Beyond Features (~50mins). I’d highly recommend watching.

The Surgery analogy (or metaphor) is in contrast to that of the current Civil Engineering metaphor. In Civil Engineering “bigger is better”, and a lot of up-front planning and design front-loads the risk. For example, once you’ve build a 7.8km bridge you can’t move it 100 metres to the east or scale it to cope with 100x load. However, you can, and do with software.

The surgery analogy makes a lot of sense to me, to quote Dan:

No one wants surgery; people just want to be well

and

No one wants software, they just want the business benefit

Here bigger is not better. Building software (and performing surgery), unlike building a bridge etc., forms a complex adaptive system.

These systems are complicated, and feedback is continually altering the system itself. For example, it is relatively easy to plan building a hospital, especially if you’ve done them before. However, trying to build a (bespoke) workflow system, for example, even if you’ve built many before, each one will be different in different ways due to the feedback and the effect the system has on its users.

Exploring the Analogy

Next time I want to talk about some issues with surgery and how they relate to the software industry. Then I will look into some ways in which software and surgery might look to improve themselves as industries.