Introduction

When I was a computer science undergrad in university, I received a coffee mug for Christmas. You may have seen this mug, it has a number of tongue-in-cheek expressions and quotes about software development and software programmers on it. Here’s a random sampling:

If a program is useless, it will have to be documented.

If a program is useful, it will have to be changed.

The value of a program is proportional to the weight of its output.

Any program will expand to fill any available memory.

Program complexity grows until it exceeds the capability of the programmer to maintain it.

Hare’s law of large programs: Inside every large program is a small program struggling to get out.

A carelessly planned project takes three times longer to complete ...

Get Sustainable Software Development: An Agile Perspective now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.