Continuous Integration: Improving Software Quality and Reducing Risk

Paul M. Duvall, Steve Matyas, Andrew Glover (2007)
Review date: August, 2010
Summary

Not surprisingly, the first chapter lays the foundation by introducing basic CI concepts: build, CI server, test, inspection, and deployment. Here we also encounter the may metaphor used in this book, the "Integrate Button". It's a metaphor for how simple it should be to run an entire CI cycle.

Chapter two is about core CI practices. If you want to know what continuous integration is composed of, this is the chapter. Next comes a pitch for how risks are reduced, followed by some additional advice on making CI actually happen. Chapter four concludes part one of the book.

The second part is devoted to actual practices and contains many code examples. Chapters 5-8 are about database integration, testing, inspection and deployment.

Chapter 9, "Continuous feedback" discusses feedback mechanisms; both their value, and actual implementation.

The book also contains a rich appendix with lots of pointers to CI-related software.

Opinion

This is definitely my type of book: covers an isolated topic, has plenty of examples, and is quick to read. Praising from the first line. It deserves to be said again: getting through this book is very easy, but if you know all of its contents and can apply that knowledge, then you know more than enough about continuous integration.

I've decided to put it in the testing category, because all that's hard about CI is about setting up automated tests and fostering a certain culture, very similar to the one adopted by people doing TDD.

In the first chapter, the authors introduce the "Integrate Button", which ties the entire story together. According to their metaphor, performing full CI should be as easy as pressing a single button. The various chapters cover different aspects of that button. Nice organization of text.

One thing that makes this book sand out is the fact that its examples are written in different languages and frameworks, not only Java and JUnit. That's quite cool, and should make a broader audience interested.

Part one, the "theory" part successfully explains what CI actually is, and what it takes to get it, while part two contains enough examples of practical techniques to make the work happen. I think that the examples are kept at a very good level. Code makes them more down to earth than fuzzy descriptions, but they are simple and shallow enough to stay interesting.

As always, I found some gems that I scribbled down in my notes...

There's a section on what prevents teams and developers from adapting CI. I recognized many of the explanations, and I always like when people systematize such knowledge. I also liked the story about the magic machine, a machine that can build a software project, while no other machine in the entire company can (because it has lots of manual fixes and hardwired). Another deja vu.

From an inspirational point of view, I liked all references to different tools. I knew about most of them, but haven't tried them all. Examples of this are JDepend, Simian, and CPD. Using coupling metrics, as suggested in the inspection chapter, isn't mentioned in every book either. Good stuff.

I don't really have anything bad to say about this book. It's a good mix of simplicity and content, and leaves a good reading aftertaste.

Who should read this book

This book has examples in .NET and Java, so beginners in continuous integration from either camp will find this book easy and quick to read. Project managers, Scrum Masters, and architects may find some interesting sections here as well.




News

  • 2015-09-29

    It's been almost one and a half year since I reviwed a book! I've been too absorbed by Writing my own. Anyway, I'm back with Jeff Patton's relatively...
  • 2014-01-04

    New category! Performance! Reviewed The Every Computer Performance Book. Check it out!
  • 2013-09-10

    Reviewed a book that' slightly less technical, but much more fun to read. It's I.T. Confidential.
  • 2013-08-13

    Reviewed yet another book on Visual Studio 2012 and TFS. I also created a "Microsoft" category and moved the other TFS book there from the "Tools"...
  • 2013-08-05

    Updated the FAQ. Included information about getting a book reviewed.