There’s no faster way to kill a conversation among a non-technical crowd than to begin discussing DevOps. For many, DevOps is that “technical thing” that IT teams do to automate testing. Or, to paraphrase an actual conversation I once had with a client:
“Doesn’t DevOps use that guy Jenkins to monitor something called technical debt so that we can have a cleaner Git, which somehow allows our Kubernetes to Docker? All I know is that our operations people don’t like it when we release on demand, and our annual software releases just deliver last year’s trends too late.”
There are many of us who probably own a small share of the responsibility that has brought about that sort of (mis)understanding. Part of creating an environment that will help a business survive and thrive in the post-digital economy is to do better at explaining the “why” as much as the “what.” To begin making amends for my previous DevOps shortcomings, let’s focus on the “why” of DevOps, and how it led to the recent refactoring of the SAFe® DevOps courseware.
The SAFe Approach to DevOps
After more than a decade of experimenting and learning, the DevOps community has discovered that effective DevOps entails a deep appreciation for culture, automation, Lean flow, measurement, and sharing (CALMS). In other words, DevOps requires that energy be directed toward each of these areas—not necessarily equally, but in balance—to achieve desired outcomes. SAFe echoes this belief, with one modification: sharing is a natural component of culture, which makes room for ‘recovery’ as a new element. Hence, SAFe’s CALMR approach to DevOps. What’s more, we aim to explore the notion that DevOps only applies to technology. In fact, we’ve found great success applying the CALMR approach throughout our business.
Culture. In SAFe, DevOps leverages the culture created by adopting the Lean-Agile values, principles, and practices of the entire Framework. Nearly every principle of SAFe, from Principle #1, take an economic view, to Principle #10, organize around value, applies to DevOps. DevOps enables shifting some operating responsibilities upstream, while following development work downstream into deployment, and operating and monitoring the solution in production.
Automation. DevOps recognizes that manual processes are the enemy of fast value delivery, high productivity, and safety. This is because manual processes tend to increase the probability of errors in the delivery pipeline, particularly at scale. These errors in turn cause rework, which delays desired outcomes. Automating the Continuous Delivery Pipeline via an integrated ‘toolchain’ accelerates processing time and shrinks feedback cycles. It’s this feedback—from customers, stakeholders, solutions, infrastructure, and the pipeline itself—that provides objective evidence that solutions are (or aren’t) delivering the expected value.
Lean flow. Agile teams and trains strive to achieve a state of continuous flow, enabling new features to move quickly from concept to cash. The three keys to accelerating flow are reflected in Principle #6, visualize and limit WIP, reduce batch sizes, and manage queue lengths. All three are integral to the ongoing optimization of the Continuous Delivery Pipeline. I describe each one below in the context of DevOps.
Measurement. Achieving extraordinary business outcomes with DevOps requires optimizing the Continuous Delivery Pipeline. Solutions, the systems on which they run, and the processes by which they are delivered and supported must be frequently fine-tuned for maximum performance and value. What to optimize, how to optimize it, and by how much are decisions that need to be made on a near-constant basis. These decisions are rooted in Principle #1, take an economic view, and Principle #5, base milestones on an objective evaluation of working systems—not merely on intuition. Thus, the ability to accurately measure delivery effectiveness and feed that information back into relentless improvement efforts is critical to DevOps success.
Recovery. To support frequent and sustained value delivery, the Continuous Delivery Pipeline must be designed for low-risk releases and fast recovery from operational failure. Techniques to achieve a more flexible release process are described in the Release on Demand article.
Refactoring DevOps with DevOps
At Scaled Agile, we do our best to “Be SAFe.” With that directive, we constantly seek ways to apply the mindset, values, and principles behind the Framework to our daily work. During the continuous exploration cycle within our last PI, Product Management discovered an opportunity to improve our DevOps course to better suit the post-pandemic way of learning. Leveraging our culture, we were able to successfully DevOps DevOps in the PI that followed. Here’s what we did.
Measurement. By investing in and monitoring measurement, the team was able to identify an abnormality in the system before it materialized into something larger.
Culture of shared ownership. Instead of figuring out who was to blame for the findings, the team focused on figuring out what was taking place in the system and what we could do to resolve it. We conducted customer research, market research, member interviews, and instructor interviews. And we discovered that the reason why people weren’t teaching the DevOps course was that we hadn’t prioritized it for online learning enablement. In short, DevOps was not one of our most taught courses, so economics hadn’t yet dictated that enabling that courseware was the most important job to be done. The people who worked on the refactor were a truly cross-functional group. There were technical team members, such as the Framework SME, design experts and exam designers, and non-technical members, including the Product Owner, Product Manager, operations, business development, and legal.
Lean flow. With the work identified, we broke down the DevOps course update into stories and managed everything based on the cross-functional capability of the dev team. We prioritized the work based on the economies of job bundling, sequenced it based on dependency, and ranked it based on need. We focused first on updating course content based on known defects and 5.1 updates: a shippable unit of value. We based redeveloping the course storyline on new team capabilities and market feedback: another shippable increment of value. Next, we focused on developing, deploying, and validating the digital classroom based on the newly created assets and the capabilities of SAFe® Collaborate—yet another shippable increment of value. Finally, with all the assets live through a dark launch, we were able to release on demand based on optimal timing for our training partners.
Recovery. As mentioned, we released the SAFe® DevOps course update and digital classroom via a dark launch. Meaning that the assets were live and ready to use but available only to a small number of test instructors. As these instructors delivered the updated training via the virtual classroom, team members could note improvement opportunities, correct defects in real time, and in the event of a catastrophic failure, revert the class to an alternate learning environment at a moment’s notice.
Room for growth: automation. As the team worked through the DevOps update, it became apparent that we overlooked a particular aspect of CALMR in our own adoption: automation. As an organization that creates many digital and print assets with a varying degree of content redundancy, we noticed that we missed an opportunity to save time and better ensure quality through automation. In its most simplistic form, we recognized the benefit of managing a repository for commonly used assets. In a more advanced state of automation, we thought it would be cool to leverage a content management system that would allow us to update all instances of an artifact across all assets from a single repository.
DevOps, like SAFe, Agile, or Lean, is a never-ending pursuit of relentless improvement. Our team was again reminded that no matter how good you are, even if you’re the people writing the playbook, that there are always ways to do things better. DevOps was developed to bridge the gap between software project teams and operations teams to better assure quality and speed within delivery cycles. DevOps comes from the same software-centric roots as Agile, and we’re learning that applying DevOps also extends beyond the problems which it was initially designed to solve.
How may the concepts of CALMR support the type of work you do? Join the conversation and share your experience in the forums on the SAFe® Community Platform (login required).