This book, DevOps For The Modern Enterprise, from Mirco Hering, is the product of decades of experience transforming enterprises, distilled into 220 pages of wisdom. It should be read by any leader in software development.
It is not a technology book. Sure, some are mentioned; but, these are brief, in passing, and hardly the focus. Instead it is a book about culture, organisations, and how teams can adopt modern DevOps practices.
Though about culture it is also not a vague piece from an ivory tower. It is the product of direct experience running successful transformations across multiple organisations.
This reveals itself over the course of 220 pages where very detailed, specific advice, case studies, and actions are documented. This detail throughout makes it a valuable read.
Each chapter ends with actionable tasks to execute the next step in the transformation. These are specific and precise directions. You do not need to follow them to a tee, but you certainly can. It is great advice and fits with my experience in large organisations.
An engineering manager, CTO, etc. could certainly do far worse than simply following these steps to improve and transform their organisation.
The book is broken into 3 parts, each covering a different area of the DevOps journey, with several chapters per part. In broad terms these cover:
the steps to prepare for the DevOps journey,
managing, organising, preparing all stakeholders, including developers and platform teams; and,
This part begins with a review of the existing IT landscape. It provides methods to review the current delivery process, governance, and metrics. These exercises will document the situation prior to transformation, but also give suggestions for quick wins.
Part A also covers the existing application landscape. This includes documenting applications, both in-house and off-the-shelf, and deciding on their strategic importance to your organisation. Also covered are vendors and how these relationships can be managed in the future.
Again, the details here are important. These methods include specific lists of actions or questions to ask yourself about your relationships with vendors and how they can be improved. The checklists, littered throughout the book, help fill gaps even for those that have gone through similar transformations.
Part B has more focus on how the transformation itself will occur. It begins with the process required to get a shared understanding of the problem among all the important stakeholders. It continues with how the new teams will be structured post-transformation.
As before there are precise templates that you can follow, to the level of names for work artefacts, how teams can be organised, etc. These are not dictums but can instead be adapted to your organisation as required.
The last part finally deals directly with technology. Even here there is no code and specific technologies are only treated with a light brush.
Different deployment models are covered: continuous delivery, cloud delivery, and containers. Interestingly serverless functions are mentioned in passing, but not covered in detail. I agree that serverless platforms, while still in their infancy, benefit from the principles described here for older deployment models. This part is worthwhile even for those moving to serverless platforms.
Application architectures and microservices are also covered. This includes strategies to transform a monolith to microservices. We also get this great comment about the maturity of organisations moving to microservices: “…you need to be mature in your engineering practices and have a well-oiled deployment pipeline with 'automated everything' (continuous integration, deployment, testing). Otherwise, the effort and complexity in trying to maintain this manually will quickly outweigh the benefits of microservices.”
One chapter is devoted alone to testing. This matches the importance of testing—both to produce quality and for efficient practices to delivery new or modified software—something often overlooked.
The final bonus chapter comparing manufacturing to IT delivery provides interesting ideas and is well worth reading. The sections on offshoring and outsourcing in particular are brief and insightful.