Book Review: Continuous Delivery

In case you’ve been hiding under a rock for the past few years, Continuous Delivery is the practice of making software releasable at all times. It is the practice that allows companies like Facebook, Google and Amazon to release software often (many times per day or even hour or minute!) in a safe manner, which helps them keep ahead of their game.

The book I’m reviewing today is precisely on this topic: “Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation”. The book is by Jez Humble and David Farley and is part of Martin Fowler’s Signature Series with Addison-Wesley.

Structure

The book is well structured, starting from the motivation for Continuous Delivery and the main concepts involved, then presenting the Deployment Pipeline as a framework for Continuous Delivery. The book is divided into three parts:

  • Foundations, describing what Continuous Delivery is and why it’s desirable. It also gives an overview of the core practices that enable Continuous Delivery and introduces the Deployment Pipeline as a concept.
  • The Deployment Pipeline, describing the process with the same name. It details the goals of each step of the process, in the same order as they would run in a real pipeline.
  • The Delivery Ecosystem, which goes into more detail into some aspects that cut across the phases of the delivery pipeline. It also proposes a maturity model for Continuous Delivery.

Writing Style

The writing is very clear, in my opinion, with very little prior knowledge required. The authors also take care not to present the content rigidly or as a dogma, explaining the underlying concepts instead, describing what has worked for them and what should be avoided.

There are sections with the authors’ war stories, which, besides illustrating some of the their points, helps in keeping the book light and easy to read for long periods.

Presentation

I read this on my Kindle and things like diagrams and tables are sometimes hard to read because of the small screen. I’ve had the same problem with many technical books and consider it more of a Kindle issue than a presentation issue of the book.

Timelessness

I would expect the content to age well, since I don’t expect Continuous Delivery to vanish any time soon. Of course, references to tools might become obsolete, but these references are not the book’s prime value and, when they appear, they are usually there to demonstrate a broader concept.

Overall impression

This is one of the books that I can safely say has had a huge impact on the way I see software development. I’m really passionate about Continuous Delivery and this book is what started it. I usually categorize books on software development as:

  • hard technical books, which are developer-centric. These usually do an in-depth presentation of a particular tool or practice and are typically narrow in scope
  • soft technical books, which are more business-centric and focus on a broader, shallower view of software development. Rather than being very detailed, these are more generic books that can be seen as more philosophical than technical, really

I find this book, despite leaning towards the technical side of things, strikes a nice balance between the two, considering not only the business side of things (why you should consider Continuous Delivery, what the software delivery process looks like as a whole) but also the technical side (what tools are out there, what basic features they have/should have). In my opinion, anyone involved in delivering software can read this book and take something valuable away, although the technically inclined will come away with more.

I had been thinking about doing reviews for a while now and decided to try it out. While deciding which book to review first, this one immediately stood out, which I think says a lot. I really can’t recommend it enough.

See the book on Amazon.com


Share this

Tweet Share on LinkedIn