Coming up in October, I will be speaking at JAX London about DevOps metrics and KPIs. Ahead of the event, I sat down with the folks at JAX to talk about continuous delivery, microservices, and how we can be better at DevOps. Check out the interview below.
JAX Magazine: How can one achieve success with DevOps? How important is it to measure and track your DevOps efforts?
DevOps is a process that works best when teams work in a continuous improvement mode - the improvement in the quality of the daily work is more important than the absolute quality of the daily work. In any continuous improvement environment, measurement and evaluation of important metrics are important to maintain and improve the quality of the work.
What mistakes do teams often make when trying to measure their DevOps performance?
There are several pitfalls to avoid when selecting and implementing metrics. It is important to avoid vanity metrics, gameable metrics, and shaming metrics and instead focus on metrics that are objective, actionable, and focus on outcomes.
What kind of key performance indicators should teams be on the lookout for?
Make sure you look at metrics that cover both efficiency and effectiveness. Efficiency covers things that are related to the cost and effort involved in releasing software. Effectiveness covers how well those efforts satisfy the needs of the customers, including customer satisfaction. It's also important to pay attention to cultural metrics and employee satisfaction.
Let's say a company decides to adopt DevOps. How can the management get engineers on board?
Frankly, it's often the other way around - grassroots support exists and it's the company leadership that needs to be brought on board. That said, it's very important to focus on the actual constraints that limit organizational improvement. It is important not to focus resources on efforts that don't eliminate the current constraints - that's wasted effort. Metrics help us focus on where the delays and impediments to better performance are located.
In your view, what are the most suitable tools that should be part of a ready-to-use "DevOps kit?"
One of the most important aspects, as demonstrated in the 2017 State of DevOps report, is automation. Organizations that continue to rely on manual processes will continue to suffer the consequences: lack of reliable, repeatable software releases. From a metrics perspective, automation becomes a source of much of (though not all) the data related to software pipeline efficiency and even effectiveness.
Containerization is here to stay and a lot of people say that it hasn't peaked yet. Organizations use containers in pre-production on a daily basis but that doesn't mean everyone is ready to use them. What do you think, will the proliferation of containerization into production accelerate?
We are pretty much at the peak of the containerization hype cycle right now. Adoption will continue to accelerate as the tooling matures and measurable benefits are achieved. In production environments, containerization yields the most benefit in microservices architectures, where there are many small services that, composed together, provide application functionality. It is certainly possible to benefit from containers without loosely coupled architectures, but the benefits will be less apparent.
A lot of people say that microservices should not be used if the company is not embracing DevOps principles. Do you agree?
I largely agree. One of the few benefits of a monolithic architecture is that they can be less complex to deploy and operate. It's a lot easier to deploy a single WAR file than it is to coordinate the deployment of 150 WAR files representing 150 different services. To fully take advantage of microservices, an organization must be able to rapidly and reliably set up and destroy environments on the fly, as well as layer the microservices on top of that infrastructure. In addition, monitoring and logging become more difficult, and also more critical, when running microservices. Organizations starting with a blank sheet of paper should strongly consider microservices. For legacy code, it's less clear what the correct approach is.
Is DevOps the key to achieving full agility?
At this point, I see DevOps as a logical extension of Agile (but get ten DevOps/Agilists in a room, and you'll have at least eleven opinions on this matter). Agile has always been about the delivery of software to customers, but the reality is that many organizations still practice so-called water-scrumfall where the agile portion is practiced only in a portion of the software pipeline, usually by the engineering teams, after which release and deployment efforts still use old techniques. DevOps helps organizations "plumb the last mile" from development all the way into production, as well as working to establish feedback loops back into development efforts.
What is the biggest misconception about DevOps?
The biggest misconception is that you can buy DevOps in a box. I say this as a platform vendor in the space: you need tooling, but if you think that's all you need to be successful at DevOps, you will fail, and probably waste a bunch of time and money in the process. DevOps is about process, tooling, and culture. All three legs of that stool need to be addressed to realize the payoff that DevOps demonstrably provides.
What can attendees get out of your talk?
This talk will be a frank examination of what it takes to use metrics to support DevOps transformations. Attendees will come away with actionable content they can use in their own organizations to implement metrics that are actionable and goal-focused. We will cover all aspects of the software pipeline and the types of metrics that are useful at each stage.
My talk "Measuring DevOps: the Key Metrics that Matter" is a part of the DevOps & Continuous Delivery track, which contains eight sessions. DevOps' transformative power derives from the fact that it's simultaneously occurring on a technological, procedural, and cultural level. Aligning business, development, and operations leads to extraordinary new heights of high performance and agility. Get deep insights in the lessons learned from the pioneers of the DevOps movement! Join us at JAX London!