Ever wondered what is a Continuous Delivery and what it the reason everyone is so obsessed with implementing one? This book got you covered.
I am starting a new heading of reviewing the books I am reading. Let's start with A Practical Guide to Continuous Delivery by Eberhard Wolff.
What it is all about
Mr. Wolff starts to explain what are the issues of the conservative approach with an example of "Big Money Online Commerce Inc.", a fictional company developing their own e-commerse website. The short story contains all sorts of issues: the new update caused the site down, it was hard to understand the reason so the site was down for a few days, and the update a month later caused the same kind of issues. All of those can be solved with Continous Delivery approach, Mr. Wolff says, and I totally agree.
The book gets you through different aspects of CD: How to setup the delivery pipeline with different technologies available(Chef, Puppet, Vagrant, Docker) in part 1 , which tools you want to use if Java/Kotlin is your technology of choice, how to implement different tactics of testing(acceptance testing, performance and exploratary testing), when to apply automated testing and when not to in part 2 and how to manager and organize everything in part 3. Mr. Wolff does a great job walking you from different aspect of Continuous Delivery and shows the link with Lean Delivery, demonstrating how to minimize waste and optimize the Value Stream with this approach.
What I liked and what not
What I absolutely loved in this book is the systemic approach to the topic: you understand why CD is a good approach for software development, what tools you will require, the practical examples of using those tools and instructions how to try them( I finally understand how to build a Docker image! ), and how Continuous Delivery helps business to grow. I also loved the examples which made the book feel alive despite being a deeply technical one.
What actually could be improved for future versions is the technological landscape. Despite the tools described are really well known in the Java microservices world, just a few words said about the Frontend Web Development, and virtually nothing mentioned about the Mobile development. I also didn't find much information about practical usage of Cloud technologies. I mean there was a mention or two, but I personally would love to have more of it covered.
If you're in the first part of your career journey, say you're a student or a junior/middle developer, you absolutely have to read this book. It will help a lot with the systemic view on the systems built and spot the inefficiencies of them in the future. There is a little chance you will actually applied anything the next day on your job, but it will help to understand what is going on and speak to your colleagues on the next level, which typically helps to advance your career.
Senior engineers already have to understand the major parts of the concepts covered. However if your project still struggles with releases, you are afraid of rolling out a new version to production, this book is for you.
Lead Engineers and Solutions Architect should already master the approach. The book can still be useful as a good material to consult with for some details.
I am still setting my rating system up; I would give the book 4 out of 5 for the systemic view and ease of reading while still missing important details(for my self).
If you liked the review, be sure to Subscribe for future updates as I plan to cover other books, for example Critical Chain.