In this article series, we're discussing the following three principle-based DevOps frameworks. The first DevOps framework was The Three Ways as described in The Phoenix Project and The DevOps Handbook. The second was Accelerate's Technical and Management Practices of High-Performing DevOps Teams.
Today we'll look at the CALMS DevOps framework.
Created by Jez Humble, co-author of The DevOps Handbook and Accelerate, the CALMS framework is used as a means of assessing whether an organization is ready to adopt DevOps processes, or how an organization is progressing in their DevOps transformation.
It is based on the following five pillars:
Culture: Before silos can be torn down, there needs to be a culture of shared responsibility, or at least a group of people devoted to establishing a culture of DevOps best practices in a grassroots type of way, with management approval and support.
Automation: Similar to the technical practices centered around continuous delivery mentioned above, the CALMS DevOps framework says teams undertaking a DevOps transformation should be devoted to automating as many manual tasks as possible, especially with respect to continuous integration and test automation.
Lean: Development teams are making use of lean DevOps practices to eliminate waste and optimize the value stream, such as minimizing WIP, making work visible, and reducing hand-off complexity and wait times.
Measurement: The organization is devoted to collecting data on their processes, deployments, etc., in order to understand their current capabilities and where improvements could be achieved.
Sharing: A culture of openness and sharing within and between teams (and enabled with the proper tools) keeps everyone working toward the same goals and eases friction with hand-offs when issues arise.
As you looked at the different frameworks in this article, I'm sure you noticed several recurring DevOps best practices, themes, and common elements among them. In this section, I want to distill three key DevOps practices that help promote a virtuous cycle — positive outcomes that continue to be reinforced and strengthened as they are iterated on — as you mature DevOps in your organization.
These three high-level concepts encompass so many of the principles discussed in more detail above, and when they're tackled in order, a continuous, virtuous cycle can gradually gain momentum.
They are the 3Cs: - Culture - Collaboration - Continuous Improvement
Once again, culture is a broad term that can mean different things to different people. But as we discussed in our DevOps definition article, DevOps culture change is one of the foundational aspects of DevOps that other technical and management practices must be built upon to succeed.
As Accelerate authors discuss, Ron Westrum's culture typologies for organizations can range from pathological (power-oriented) to bureaucratic (rule-oriented) to generative (performance-oriented). A generative culture is one in which bridging between teams is encouraged, risks are shared, and failure leads to inquiry, rather than finger-pointing. Working toward these cultural paradigm shifts — and giving them time to take hold through practice — is an important first step.
Once the groundwork of a generative culture is laid — one in which everyone feels safe enough to "put themselves out there," experiment, admit failures, and try again without fear of punishment or shame — greater collaboration can begin to be unlocked within and among teams.
Empowered employees are more open to sharing and receiving feedback, and the more those actions are witnessed, the more others on the team will begin to emulate similar behaviors. Overall performance and shared goals begin to be prioritized over protecting oneself or one's silo.
Finally, once the teams are collaborating well, with everyone taking personal responsibility for performance, the continuous improvement piece begins to take care of itself. Here is where leadership can continue to reinforce a learning culture as well, one where taking time outside of the usual job responsibilities to work on personal and organizational improvements is key to keeping this virtuous cycle's momentum going.
Every organization will implement these DevOps practices differently. For example, some may choose Kanban over Scrum as means of collaboration; some may prefer Travis over Jenkins for CI/CD. What's important to realize is that, regardless of implementation details, decisions should be guided by and also reinforce the concepts of Culture, Collaboration, and Continuous Improvement.
This post was originally published as a Sonatype Guide, a part of our Sonatype Community. The Sonatype Community is a place where you can ask questions to other Sonatype users and our team. It also provides content and learning paths from a team of experts that help make using the Sonatype platform even easier. If you haven't spent time there, I definitely recommend it.