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