DevOps Maturity Assessment - A Navigator on your DevOps Journey
DevOps is a conventional term now, and a lot has been talked about, planned, and brought into practice around DevOps. No need to mention the mammoth tools and technologies around DevOps. DevOps is a practice with the end goal of unifying efforts of development(Dev) and operations(Ops) teams to facilitate the software development process with much more efficient resource utilization, better performance, and increased productivity. Starting from the ideation and high-level architecture design to integration, testing, releasing, deployment, and infrastructure management, DevOps aims at automating the process with monitoring throughout to get insights. There are 3 ways to achieve the product development goal.
DevOps believes in shorter development cycles, with feedback and reviews at each stage which result in a much more dependable release. This is true because DevOps is not a one-day process or an application that can be installed at your workplace. It is an organizational change in practices and the way projects are executed.
No Point in singing, “I did it my way”
I always ask my fellow technocrats/customers if they have started any DevOps initiatives in their team or organization. The answer to this question has radically changed in the past 3 years from ‘NO’ to ‘YES,’ or to at least “we are planning,” now that everyone realizes the benefits of adopting DevOps practices. If the answer is ‘Yes’, then my next question to them is, “have you measured effects of before and after DevOps?” to which I get a face with a big look of “are you kidding me?”. There is always a quantifiable outcome that you expect out of every effort you put into anything, and DevOps is no exception. So, there is no point in just implementing DevOps practices, sitting back and singing “I did it my way” (of course on Frank Sinatra’s tunes). You should understand whether the practices you are implementing are serving the purpose or not. If they are not, then it is defying the whole idea behind DevOps. Though there is no tool as such to measure the impact of DevOps, it is necessary to measure the success of the practices you are implementing. This is where the DevOps metrics come into the picture.
DevOps Maturity Scale
DevOps enables your Dev and Ops teams to collaborate on all possible fronts to foster the organizational culture, processes, and technological advancements, which can be achieved with the help of various automation tools, technologies, and cultural changes in the organization. It is very important to understand where your organization is positioned on the DevOps maturity scale to set goals for DevOps and formulate a roadmap to achieve them. Below mentioned maturity scale will help you get the exact idea of DevOps maturity for your organization:
What is DevOps Metrics? Why do you need it? Which Metrics to choose?
‘CALMS,’ which stands for Culture, Automation, Lean, Measurement, and Sharing, are fundamental values of DevOps. Much attention has always been paid to Culture, Automation, Lean, and Sharing part, but the measurement part always remains unattended or neglected to some extent.
Metrics is a system or a standard of measurement, and as the name suggests, DevOps metrics are a way to measure the success of your DevOps. It will give you an idea of where you were, where you are, and where you want to be. It will identify the areas which are performing as expected or performing beyond expectations or underperforming and need improvements. There are various standards or metrics that can be used to measure your DevOps success. Continuous Delivery Maturity Metrics assess aspects that affect the development and release of your software/application; DevOps Values Maturity Metrics, DevOps Maturity, Ideation Maturity, Release, and Deployment Maturity, etc. These are some of the standard metrics. It is very important as to which metrics to choose. Sometimes, you will have to choose a combination of metrics. In broader terms, DevOps metrics are categorized in:
- People/culture: People and culture are the most important part of any organization, irrespective of the industry it is operating in, because a contented workforce in a contented work environment is the most important factor for an organization’s productivity. These metrics assess soft elements, which are sometimes hard to quantify. It includes knowledge sharing, cross-skilling, working culture across teams, turnover and response time, capabilities, team autonomy, and decision-making processes, etc.
- Process: Any SDLC (Software Development Lifecycle) involves lots of processes, starting from ideation to validation, development, deployment, integration, etc. So, the metrics in the process category assess easily measurable and easy-to-identify processes and their effectiveness, like lead time to development, deployment time, response time, the speed of different processes, the time taken to attend to and solve customer tickets, etc.
- Technical and financial aspects: This is another easily quantifiable metric that can include things like projects per quarter, code quality, customer ticket volume, failure rate, uptime, availability, number and cost of resources deployed and idle, etc.
What are the things to be measured?
All DevOps metrics involve a mixture of the parameters to be measured mentioned in the above categories. But some of these parameters are easily measurable and can determine the direction your DevOps is taking your organization in:
- Projects completed and frequency of release: should be as high as possible and signifies ROI for the organization
- Percentage of successful/unsuccessful deployments: successful deployments should be as high as possible
- Mean time to recovery (MTTR): signifies the time taken to resolve an incident from the time it is reported; ideally, it should be zero; practically, it should be as low as possible
- Lead time (from development to deployment): time from starting a new code to its deployment in production
- Frequency of new deployment: how often a new code is deployed by the team?
In addition to this availability, code quality, velocity, frequency of outage, and time to resolve defects are some other parameters which can be easily recorded.
DevOps without DevOps Metrics is like firing darts in the dark; you are firing towards your aim, but you won’t know if you are hitting it or not. DevOps Metrics provides an analysis of your current DevOps initiatives and their impact on your organizational goals. It gives you an idea of your current state and helps you define your future state and roadmap to get there. These common set of goals provide a guideline for your team to foster an environment of cooperation and collaboration, improve performance, and increase productivity and efficiency. DevOps metrics help in understanding the interconnection and interdependencies of various processes. Also, it helps in assessing processes that need modifications, health, and performance issues associated with the processes that can affect the overall organization in the long and the short term.
There are certain things that need to keep in mind while choosing metrics for your DevOps. You should not choose many metrics as too many results will be fuzzy and cast uncertainty over decision-making. The selected metrics should help in finding root causes if any, expose the challenges, and help in finding the solutions and relevant results.
Opcito Technologies is always helping clients in their DevOps maturity assessment with DevOps metrics. Colwin Fernandes, CTO and co-founder of Opcito Technologies, on his recent visit to Australia in September, conducted DevOps assessment workshops for 3 organizations. The main motive behind these workshops was to help our clients understand desired future state of their DevOps, set goals, understand motivations, analyze the existing tools in use and select and build a toolchain, and lastly, the most important part, formulate a roadmap. Contact Opcito, and we will be more than happy to have you with our DevOps workshop.