Flexible, reliable software : using patterns and agile development - Christensen, Henrik B. (Chapman & Hall/CRC, 2010)