Implementing DevOps: Keep CALMS (in mind) & Carry On

The DevOps concept has been gaining increasing attention over the last decade or so, as it has produced some impressive results in terms of shortening release cycle times (i.e. from months to minutes) and minimizing the negative impacts of these releases. (See Amazon, Google and Facebook, among many others.)

While it’s not my nature to embrace the latest ‘fad’ to come down the pike, I have to admit I’ve become a bit of a ‘DevOps’ disciple. With apologies to Hugh MacLennan (and my many exasperated Canadian Literature professors) it seems to me to be a very logical way to forge a bridge between the ‘two solitudes’ of the I.T. world: Development and Operations.

However, if I am a disciple, I am ‘Doubting Thomas’. Actually, I should probably be called ‘Cautious Thomas’, as I do not doubt that DevOps can deliver tremendous benefits to an organization, but I feel we should be cautious about believing that DevOps can render these benefits painlessly and in all cases. We need to keep in mind that each organization is unique, and so there is danger in thinking that adopting a ‘cookie cutter’ approach to implementing DevOps will produce the desired results.

This begs the question: “How can organizations give themselves the best chance of successfully implementing DevOps?” While researching this topic, I came across an article in the May 29, 2019 edition (Volume 17, Issue 2) of ACMQueue magazine, entitled “The DevOps Phenomenon: An Executive Crash Course”. The authors use the acronynm ‘CALMS’ to identify the areas which they believe to be critical when deploying the DevOps model and I feel this list serves as a useful framework for optimizing the chances for DevOps success.

CALMS stands for:

  • Culture
  • Automation
  • Lean
  • Measurement
  • Sharing

In the DevOps context, these terms are defined as follows:

• Culture. Integration of mutual trust, willingness to learn and continuous improvement, constant flow of information, open-mindedness to changes and experimentation between developers and operations.

• Automation. Implementing deployment pipelines with a high level of automation (most notably continuous integration/continuous delivery) and comprehensive test automation.

• Lean. Applying lean principles such as minimization of work in progress, as well as shortening and amplification of feedback loops to identify and minimize value flow breaks to increase efficiency.

• Measurement. Monitoring the key system metrics such as business or transactions metrics and other key performance indicators.

• Sharing. Sharing knowledge in the organization and across organizational boundaries. Team members should learn from each other’s experiences and proactively communicate.

The article itself goes on to provide substantially more detail about CALMS and illustrates why understanding these components is essential to implementing DevOps. Therefore, if this is an area of particular interest to you, I encourage you to read the entire article: https://queue.acm.org/detail.cfm?id=3338532

 

Leave a Reply

Your email address will not be published. Required fields are marked *