It is almost summertime, so time to dust off your reading material and cozy up with a good book. Recently I asked our expert panel from our most recent DevOps webcast what was their number one resource they would recommend to a friend if they wanted to brush up on the ins-and-outs of Enterprise DevOps. And in truth, they had a hard time narrowing it down to just a few. But if you're looking to stock up your bookshelf on all things DevOps then you can't go wrong with this list of the Top DevOps Reading List.
The Phoenix Project
In almost every podcast, webcast or event I’ve attended in the past 12 months this book gets mentioned at least once. The Phoenix Project is about a large public company that just can’t seem to get things together. Their IT department is constantly putting out fires in some chaotic way, the developers are putting out spaghetti code, and the business is consistently falling behind their competitors. It’s very much a case of the left hand not knowing what the right hand is doing. Gene Kim, Kevin Behr and George Spafford present all of this in such a way that you can actually feel your heart rate increase because you remember going through some of the issues he describes in the book. This is when the main character in the book, acting VP of IT operations, starts learning about and implementing DevOps and more efficient IT operations. He eventually learns to work not only within operations, but also development, marketing, sales, etc., etc. He gains an understanding that allows IT to enable all of the other departments in the company.
Dr. Eliyahu Goldratt wrote his seminal book, “The Goal: A Process Of Ongoing Improvement” in 1984. It’s a Socratic novel about Alex Rogo, a plant manager who must fix his cost and due date issues in ninety days, or his plant will be shut down. This book has been incorporated into many MBA curriculums and has influenced multiple generations of business leaders. The Phoenix Project in some respects is a homage to this book while making it more contemporary and dramatic. In “The Goal,” Dr. Goldratt starts to describes the steps in the Theory of Constraints (TOC) methodology. Briefly, the five original TOC steps are: 1) Identify the constraint, 2) Exploit the constraint, 3) Subordinate all other activities to the constraint, 4) Elevate the constraint to new levels, and 5) Find the next constraint.
The Theory of Constraints and its Thinking Process
In its 20-year history, Goldratt's Theory of Constraints (TOC) methodology has evolved into a systems methodology that links elements of both soft and hard systems methods. The major component of TOC that underpins all the other parts of the methodology is the TOC Thinking Processes, a suite of logic trees that provide a roadmap for change. And we all know we need that when it comes to DevOps! They guide the user through the decision making process of problem structuring, problem identification, solution building, identification of barriers to be overcome, and implementation of the solution. Tree-builders make recourse to a set of logic rules, which provide the analytical rigour usually associated with hard scientific approaches. This paper briefly outlines the TOC methodology, and discusses the similarities and differences between TOC and other systems methods, particularly the Rational Model of decision-making. It makes a great companion piece to The Goal and will help you on your DevOps journey to better understand some of the underlying principles and philosophies driving the movement.
Implementing Lean Software Development
This is the missing link to anyone doing Agile software development. Many enterprises have been using Agile successfully for years but, as with any process, there is always room to improve. Beyond the basic framework that an Agile process provides, many of the challenges that arise are specific to the the organization or the customer. While Agile processes provide the mechanism to address these issues (e.g. retrospectives), they don't offer as much as they could when it comes to specific techniques. Thus, finding a method or direction for improvement can be difficult and often seems to take longer than it should. Lean, as illuminated by this book, is a great starting point to tackle organization-specific challenges quickly and effectively. The techniques described here have proven to be exceptionally effective for anyone on the DevOps bandwagon. Not only does this book provide useful techniques, but it eloquently states the arguments that need to be made to convince stakeholders to try things that seem counter-intuitive at first.
The Principles of Product Development Flow
This is the first book that comprehensively describes the underlying principles that create flow in product development processes, principles that have produced 5x to 10x improvements, even in mature processes. It combines a lucid explanation of the real science behind flow and a rich set of practical methods. Its underlying principles are organized into eight major areas, focusing on practical methods to improve economic decisions, manage queues, reduce batch size, apply WIP constraints, accelerate feedback, manage flows in the presence of variability, and decentralized control. Nobody is better suited to explain these ideas than Don Reinertsen. For over 25 years he has been recognized as a leading thinker on product development issues. This book begins where other books on product development end. It is guaranteed to change the way you think about product development and DevOps.