I’ve become increasingly passionate about and involved in the DevOps movement over the last several years. It’s so exciting to see all the impact DevOps is having on individuals and organizations coming from the innovation happening in the industry. However, DevOps is also such a broad (vague? confusing?) term that everyone has their own take on what it is (including me) and their own perspective on how “DevOps-y” an organization is.
“DevOps is about technology!” “No, DevOps is about process!” “No, DevOps is about people!” Well, they’re all right (although I agree most with that last person).
So what are the key aspects of DevOps?
At the first DevOpsDays conference in the U.S. in 2010, two pillars of the DevOps movement, John Willis and Damon Edwards, coined the acronym “CAMS” to describe the aspects of DevOps. “CAMS” stands for “Culture, Automation, Measurement, and Sharing”. Jez Humble, author of the ground-breaking Continuous Delivery book, later added the “L” for “Lean” to give us “CALMS”.
Let’s describe each one of the aspects of “CALMS” so we can have a clearer picture of where an organization is in its DevOps journey.
Peter Drucker, the famous management guru, realized how important culture was to the performance of an organization. He’s alleged to have said, “Culture eats strategy for breakfast.” More recently, Dr. Ron Westrum advocated for a “Three Cultures Model” that describes attributes and observable behaviors of a corporate culture and how it processes information. His three culture types are: Pathological (power-oriented), Bureaucratic (rule-oriented), and Generative (performance-oriented). For example, is an organization the kind of place where messengers are shot and failures are covered up (pathological)? Or are messengers trained and failures viewed as opportunities to learn (generative)? Culture has an impact on organizational performance in countless ways – for better or for worse.
Computers are terrific at doing the same task the same way really fast over and over again. Humans… not so much. Automating repetitive, time-consuming, error-prone tasks can yield big dividends. Have you implemented the foundational elements of continuous integration, automated testing, and automated builds? Are you ready for infrastructure-as-code and continuous delivery pipelines? You might even be adopting ChatOps. Whatever your state of automation is, the possibilities for automation to improve speed, consistency, and quality are endless.
We’re seeing the same Lean practices that were applied to manufacturing in the 1980’s being applied to IT now. Do we understand the end-to-end process we use to deliver value (in this case, with software) to our customers? Do we know where the inefficiencies and waste in that process are? Do we have a plan for reducing that waste? The primary Lean tool in our toolkit is value stream mapping. You’ll also hear a lot of Japanese words associated with the gold standard of lean practices: the Toyota Production System.
You might have heard the expression, “You get what you measure.” We want faster feature flow into production, higher quality, and more value – so we need to track metrics associated with these outcomes and then use the information to drive feedback loops and decision-making. One of the DevOps unicorns, Etsy, takes measurement to the extreme by measuring virtually everything within their enterprise. You might not be tracking the quarter million time-series metrics like Etsy does (in 2013!), but measuring important aspects of your engineering and business operations will yield valuable insights so you can respond faster and improve more.
Friction-free information improves organizational performance. The degree to which an organization shares information is directly influenced by its culture (see the first aspect). How does information flow between people, teams, functions, and levels within the organization? There are all kinds of indicators of sharing, like peer code reviews, information radiators, lunch-and-learn meetings, process ceremonies, and any number of feedback loops from one person or group to another. The more open an organization is when it comes to sharing and communication (i.e., the closer to a generative culture it has), the better it will perform.
No two organizations are the same and therefore no two organizations “do the DevOps” the same way. “CALMS” gives us a clearer way of looking at what an organization is doing, and identifying what is working and what might be opportunities for improvement. “CALMS” can be a powerful tool to accelerate an organization along its DevOps journey toward better results and helping it win in the marketplace.
Do you want to hear more from Jeff Gallimore? Check out the video series, ‘Provocative Things Jeff Says!’