Flexible, Reliable Software : Using Patterns and Agile Development. - Christensen, Henrik B. (Chapman & Hall/CRC textbooks in computing., 2010)
... This book brings together a careful selection of topics that are relevant, indeed crucial, for developing good quality software with a carefully designed pedagogy that leads the reader through an experience of active learning. The emphasis in the content is on practical goals-how to construct reliable and flexible software systems-covering many topics that every software engineer should have studied. The emphasis in the method is on providing a practical context, hands-on projects, and guidance on process. ... The text discusses not only what the end product should be like, but also how to get.