Understanding lean can be the difference between a DevOps implementation that helps you achieve your company's goals and one that's just the same but different.
- Welcome back. In this video, we're going to talk about the second building block of DevOps, lean. Lean, a systematic process for eliminating waste, was originally devised in the manufacturing world by W. Edwards Deming and Taiichi Ohno's Toyota Production System. It revolutionized the Japanese industrial economy after World War II and later made its way back over here to the US. Mary and Tom Poppendiecks' 2003 book, "Lean Software Development An Agile Toolkit," famously adapted these lean techniques to software development. They identified seven principles of lean that apply to software. Similar to the just-in-time credo of lean manufacturing and aligned with the agile idea of being flexible, you try to move fast but delay decisions in enhanced feedback loops and group context. Building integrity in is an important precept and will inform the approaches to continue this integration and testing you'll hear about later in this course. So let's talk about waste. The fundamental philosophy of lean is about recognizing which activities you and your organization perform that add value to the product or service you produce, and which do not. Activities that don't add value are called waste. Lean recognizes three major types of waste, and they all have Japanese names: muda, muri, and mura. Muri is the major form of waste, and it comes in two types: type one, which is technically waste but necessary for some reason like compliance, and type two, which is just plain wasteful. The Poppendiecks also defined seven primary wastes that are endemic in software development. This includes bugs and delays, but it also includes spending effort on features that aren't needed. It didn't take long for Toyota to adapt the lean to product development as well. A recent popular adaptation of that is found in Eric Ries's book "Lean Startup." In the book, he proposes the build-measure-learn loop as a variation of the usual Kaizen plan-do-check-act cycle. You focus on delivering the minimum viable product to customers, get their feedback, and iterate from there instead of trying to analyze what the perfect product would have been upfront. There are a variety of techniques that go along with lean. Kaizen is one, which we discussed back in a DevOps principles video. Another is value-stream mapping, where you analyze the entire pathway of value creation and understand what exact value is added where, how long it takes, and where waste resides in that pathway. In lean product development, that value stream is referred to as concept to cash, the entire pathway from the idea to its realization, including all the production and distribution required to get it to customers. DevOps was only indirectly influenced by lean when it started, but it didn't take long for the ideas and their relevance to what DevOps was trying to accomplish was discovered. In fact, Jez Humble, author of "Continuous Delivery," proposed the modification of the CAMS set of DevOps principles to CALMS to include lean, and John Willis largely agreed with him. "The Goal," "Lean Software Development," "Lean Startup," and "Lean Enterprise" are four good starter books that can teach you the most about lean. Lean has become an important part of DevOps, especially of successful DevOps implementations. The Puppet Labs State of DevOps Report identifies lean management as one of the two key practices that contribute most to organizational success. Later, in the discussion about our DevOps practice areas, you'll see traces of these lean concepts. But first, in our next section, let's talk about previous IT service management concepts in order to understand what DevOps might be replacing.
In this course, well-known DevOps practitioners Ernest Mueller and James Wickett provide an overview of the DevOps movement, focusing on the core value of CAMS (culture, automation, measurement, and sharing). They cover the various methodologies and tools an organization can adopt to transition into DevOps, looking at both agile and lean project management principles and how old-school principles like ITIL, ITSM, and SDLC fit within DevOps.
The course concludes with a discussion of the three main tenants of DevOps—infrastructure automation, continuous delivery, and reliability engineering—as well as some additional resources and a brief look into what the future holds as organizations transition from the cloud to serverless architectures.
- What is DevOps?
- Understanding DevOps core values and principles
- Choosing DevOps tools
- Creating a positive DevOps culture
- Understanding agile and lean
- Building a continuous delivery pipeline
- Building reliable systems
- Looking into the future of DevOps