- 07921 465358
Paul M. Duvall with S. Matyas and A. Glover
Continuous Integration seems a popular topic at the moment judging by the success of my recent blog post on the subject. Much of the theory of that post comes from this excellent book, another in the Martin Fowler Signature series.
This book provides a thorough discussion of the idea of Continuous Integration. It starts by launching straight into the details of how to build software at every change. This opening chapter sets the scene for the rest of the book - it is very hands on and instantly accessible.
When reading books, I like to see an example first and the learn the ‘why’ behind the example afterward, as I find that an example provides a context for learning ‘why’.”
The practical details of how to setup a CI server are covered including sample configuration files for CruiseControl and sample build scripts for Ant. The beauty of CI is that you don't need the ‘why’ explaining - as soon as you read the examples it is obvious why this would be a fantastic idea!
The book continues as it starts, with plenty of practical examples for getting an entire CI system setup. I found the chapter on Continuous Inspection particularly useful as it includes a good description of key code metrics such as Afferent Coupling and Efferent Coupling (fan in and fan out). Alongside the explanations are suggestions as to what actions can be taken to mitigate any risks. This comes back to the strap line of the book - improving software quality and reducing risk.
It could be said that this book uses a lot of words to explain what is actually a fairly simple idea. When I came to implement a CI system I found the devil was in the detail; how to actually get PHP Code Sniffer to understand my particular stylistic nuances! That said, the layout of the book (similar to others in the series) makes the book very useful.
With Continuous Integration, the best is definitely saved until last. The chapter on Continuous Feedback includes the suggestion of using an Amibient Orb as one of the feedback mechanisms - excellent!
If you're interested in CI, I would recommend this book because it gives you everything you need to know in a well organised package. That said, you can probably get the key ideas from reading a few blog posts and experimenting with your own CI system.