This microbook is a summary/original review based on the book: The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations
Available for: Read online, read in our mobile apps for iPhone/Android and send in PDF/EPUB/MOBI to Amazon Kindle.
Also available in audiobook
Do you work on a tech team that can’t seem to get things done? Do you spend more time arguing amongst yourselves about things that go wrong than actually getting work done? Do you wish there was a more efficient way to complete tasks? “The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations” by Gene Kim, Jez Humble, Patrick Debois, and John Willis is a guide offering three solution models for these common issues. So, get ready to learn a new approach to work that will improve both your organization’s culture and the bottom line!
A “perfect” company would have seamless work and communication channels between the product owners, development, quality assurance, IT operations, and information security teams. As the authors explain, “By working toward a common goal, they enable a fast flow of planned work into production … while achieving world-class stability, reliability, availability, and security.” This style of work promotes a smooth, successful workflow, as well as happier employees and more cohesive, productive teams that help boost profits.
Unfortunately, however, companies in the real world do not often operate this way. This is where DevOps comes into play. Instead of being “adversaries,” development (testing) and IT operations, along with the other departments, must collaborate more seamlessly so that they operate essentially as one department, hence the name DevOps. Instead of having teams operate in separate processes or stages, the testing and operations happen concurrently. All of this will in turn make the customer happy, as it will reduce the time to complete the project while also increasing the quality of the work being produced.
There are three main concepts, or “Ways” that contribute to a smooth DevOps system in your company. The First Way is The Principles of Flow, which will help you evaluate how work moves through various departments and improve workflow processes. The Second Way: The Principles of Feedback, will help you identify and correct problems more quickly, saving time, money, and aggravation in the process. The Third Way: The Principles of Continual Learning and Experimentation, is a guide to learn collectively from mistakes to improve upon them in the future - which should be a regular part of your process into which you invest time and money. After learning these basic principles, you will be able to start implementing them within your team.
Flow describes how work moves from development to operations and, ultimately, to the customer. You can think of Flow as just a straight, left-to-right line from Dev to Ops. The best way to optimize this First Way of work is to make it as “lean” as possible - meaning making all work as “visible” as possible. This is done by limiting batch sizes and work intervals, catching defects before they are sent to the next part of the team to maximize quality, and working to “optimize for the global goals.” This will get the work done at a higher level, but also more quickly.
First, learn to make the work visible, which is particularly important for tech companies where the work is usually invisible. This can become a big issue when a problem that is passed from one team to the next snowballs into a much bigger problem as it gets passed around. Giving the work some kind of visual, representing the work moving from left (development) to right (production) will help avoid many of these common problems. Besides, making the work easier to see, making it visible will speed up the workflow and make clear to each department what work is most urgent in the context of the entire team.
Limiting work in process (WIP) is also uniquely important in technology because of the frequency of interruptions in work. This requires workers to multitask, thereby losing focus, which shows in the quality of the work. This is also why keeping work visible to all is important, because the effects of these disruptions can remain hidden until it’s too late. To prevent this problem, it is best to limit the number of tasks assigned to each team on your vision board and in your work, with no new tasks added until the existing ones are completed. This helps everyone get on the same page and know who is doing what, and when. It will also help prevent issues from developing since everyone will be more focused.
Working in smaller batches is also an important strategy for quicker, better output. So instead of mass production, like at a factory, it is best to strive for what the authors call “single-piece flow,” or focusing on completing one task for one item at a time, instead of trying to do them all at once – which can increase both time and frequency of errors. Similarly, streamlining handoffs between teams also promotes faster, higher quality work.
All of these techniques are ways to improve the flow of work within and between your teams. It will not only make the work easier and quicker for your team members, but most importantly, it will result in higher quality products for your customers.
Feedback describes the back-and-forth between development and operations teams. Using the line metaphor, this would be the flow of left to right and then right to left – a feedback loop. The constant feedback aims to keep the same issues from happening over and over again, and to fix them quickly and efficiently when they do arise. This process ensures “quality at the source” and allows each segment of the team to work at their absolute best, effectively avoiding more serious problems down the road. As this process continues and larger problems turn into smaller ones, the feedback loops will, in turn, improve and get shorter. Each segment of the team, and the team as whole, will have better input as a result. Think of feedback as a more detailed look at the flow of your work.
Technology works within complex systems, so it is nearly impossible for one person or team to fully understand how all the moving parts work together as a whole. This is true outside of tech as well, as we can see in any crisis. When a problem occurs in one segment, it is often difficult to isolate it from the rest of the project, exacerbating the problem more quickly. This also shows us that we cannot just rely on “static checklists and best practices” to prevent major issues, but rather “design a safe system of work” that promotes quick detection of errors before they snowball into bigger issues. No system is infallible, but there are many steps we can take to be as safe as possible.
The first is probably the most obvious: watch for and identify problems as they arise. Constant feedback in each stage of work is crucial in creating this environment, which will help teams adapt quickly if needed. This should be followed by “swarming” the problem before it spreads any further. Not only will these steps help solve the problem at hand, they will help develop deeper knowledge for use in the future, and prevent the team from starting new work and possibly committing more errors. It may seem like swarming would slow things down, but in the grand scheme of things it actually saves more time than letting a problem grow bigger and less manageable. The reality is that when a disaster happens, the authors say, “It is already too late to avert worst outcomes.” Swarming solves problems more quickly, and everyone involved learns something in the process.
A culture of safety is also a culture of quality. Using constant feedback actually decreases time spent because it shows us the “cause and effect” of errors more quickly than if they are discovered down the line. Instead of approvals coming from some far-off department, quality control should come from the source of the work. This gives everyone ownership over the process, which results in better, faster work, and more learning. Similarly, teams should consider the next team as the most important customer, meaning that it must “optimize” the work for that team. This will make their work easier, and so on down the line until it finally reaches the customer.
By working with safety as the first priority, these tools will help you find and fix issues quickly, in as automated a way as possible. Similar to improving your flow, these feedback steps will improve your work so that it is as efficient, resilient, and secure as possible.
The authors say that The Third Way is similar to The Second Way, except there are smaller feedback loops added in between the already existing ones. This describes the general culture that an organization should strive for: one of experimentation and willingness to take risks, paired with trust in one another. This will result in a higher level of learning and work from everyone. The First Way: Flow, combined with The Second Way: Feedback, should result in this higher standard of work. When working with the entire organization in mind, an improvement made by one team could be helpful for everyone. Departments and individuals do not work in their own silos, but are part of a larger group. Just as the Principal of Feedback builds on Flow, Continual Learning and Experimentation builds on both Feedback and Flow.
Most important is the type of culture your organization chooses to adopt. The most fruitful is generative, as opposed to pathological or bureaucratic. Instead of working in fear of punishment, or by a stifling set of rules, the best organizations aim to share information and responsibilities, and make failures an opportunity for learning instead of punishment. This supports and promotes a culture of safety and quality.
This type of culture only works, however, when each team takes responsibility for continuously improving their processes, showing the importance of constant feedback. This prevents the “degrading” of processes and avoids time-consuming workarounds, so that the work remains high-quality with fewer bigger problems down the line. Even approaching the smallest items in this way can have a big impact later. As a result, your team’s work will improve on a much deeper level, ultimately making your company more competitive. This should be as much part of your daily work as the tasks themselves. Furthermore, knowledge acquired in teams should be used to help and improve the entire organization, so that every team is as informed as possible with this “collective knowledge,” allowing everyone to operate on the same page, as one.
Additionally, this type of culture promotes a habit of resiliency, which in turn encourages experimentation rather than adding unnecessary equipment or staff to solve problems. Focusing on improving operations is a better use of time, and much less expensive and wasteful with a better result. Somewhat counterintuitively, constantly “introducing tension” helps everyone’s performance better than anything else could.
Finally, such a culture cannot exist without the right kind of leadership. Instead of setting all the goals themselves, leaders should work together with their employees to come to decisions, since the employees are closer to the actual work and leaders know the larger organization. Instead of promoting specific goals, leaders should promote a culture of learning and problem solving. Approaching the work scientifically at all levels of the organization will help create final products that satisfy both internal and external customers.
By having a strong connection among team members and between teams, your entire organization will be able to learn and grow more as you try new methods. Even when you do make mistakes, these will be learning opportunities as well. This will be a great improvement over just mindlessly following the same processes over and over again, since it will likely lead to better processes, better work, and more satisfied customers.
The key to implementing a DevOps system at your organization is to understand the principles of Flow, Feedback, and Continual Learning and Experimentation. These concepts promote a culture of agility and safety in your work, and improve everyone’s abilities while creating better products. Once you understand these concepts, you can implement them in your organization in a way that will maximize benefits for your work.
If you want to improve both the quality and efficiency of work at your tech company, you should learn the Three Ways of DevOps: Flow, Feedback, and Continual Learning and Experimentation. These principles will transform your work culture from one of inefficiency and errors to one of learning and high quality.
Patrick Debois coined the term DevOps in 2009 and is the di... (Read more)
John Willis is another founder of the DevOps movement and is senior director of the Global Transformation Off... (Read more)
Jez Humble is a technology advocate for Google Cloud and has a background in code, infrastr... (Read more)
Gene Kim has been a chief technology officer and is an expert on high-performing technology organizations. He has written several books on... (Read more)
Now you can! Start a free trial and gain access to the knowledge of the biggest non-fiction bestsellers.