This post was originally published here.
I just read from Martin Fowler’s Bliki that a new book in his signature series is out, “Continuous Integration: Improving Software Quality and Reducing Risk”. If you’re not familiar with Fowler’s signature series, check out the books on that list:
- Patterns of Enterprise Application Architecture, Martin Fowler
- Test Driven Development: By Example, Kent Beck
- Beyond Software Architecture: Creating and Sustaining Winning Solutions, Luke Hohmann
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, Gregor Hohpe, Bobby Woolf
- User Stories Applied: For Agile Software Development, Mike Cohn
- Refactoring to Patterns, Joshua Kerievsky
- Refactoring Databases: Evolutionary Database Design, Scott W. Ambler, Pramodkumar J. Sadalage
- Implementing Lean Software Development: From Concept to Cash, Mary Poppendieck, Tom Poppendieck
- xUnit Test Patterns: Refactoring Test Code, Gerard Meszaros
- Continuous Integration: Improving Software Quality and Reducing Risk, Paul Duvall, Steve Matyas, Andrew Glover
That’s quite an impressive list of books to be in one series. Many of these books follow the “Duplex Book” pattern, where the book is split into two sections. The first is a smaller section designed to be read cover-to-cover. The next section(s) provide prescriptive guidance that can be read end-to-end, or in bits and pieces as necessary.
As an aside, I’ve felt that nothing impacts or enables success quite as much as continuous integration. In my (admittedly limited) experience, CI seems to open the doors to other Agile practices like “Whole Team”, unit testing and test-driven development, pair programming, and others. CI is the low-hanging fruit that solves many obvious and common problems in development, while subtly introducing the team to several core Agile values, like communication and feedback.