DevOps thinking is taking over organizations. DevOps seems to be everywhere, but the speed and the rate of adoption varies greatly. Some organizations are still living in strictly controlled waterfall environments, some are just learning about continuous integration servers and continuous deployments and some rare early adopter organizations are functioning almost automatically without manual intervention. The question is, how can you tell, how far an organization is to their DevOps transformation journey?
It is difficult to determine, what is the DevOps maturity level of an organization. Different businesses and industries require different kinds of organizations to function and are subject to different regulations and rules. That’s why, to determine the DevOps maturity, you have to ask a lot of questions from many different stakeholders. Like really, really many questions, about the whole DevOps pipeline, from start to finish.
There are different ways of thinking about organizational DevOps maturity. DevOps maturity can be modelled as maturity levels ranging from 1 to 5, from immature to mature [1]. Below is listed these five maturity levels and what kind of organizations they roughly outline:
Do any of these descriptions match an organization you have previously worked in or with?
Let’s go deeper and ask more questions. Start by analyzing what is the current state of DevOps in the organization. Try to get the big picture by asking simple questions: How is version control handled? What is the build and package process? How is testing managed? Are there automated tests? What is the deployment process? Who are the gatekeepers? How are environments provisioned and maintained? How are they monitored? Is there constant monitoring of production and instant notifications of anomalies? What kind of feedback loops are there?
Let’s think more about cloud and microservices. How far in cloud transformation is the organization? Is most of the data hosted on-premise or in a cloud service or both? Do apps live on self-hosted servers or are they running in AWS, Azure or Google Cloud? How are the apps and their containers orchestrated and monitored? What about microservices? Are there still big monolithic applications that do all of the work from user access handling to data-intensive calculations? Or is the functionality split down into smaller microservices that do one single thing well and work together in a coordinated manner?
Huh, that’s a lot of questions.
Well, here’s the final one, I promise. After thinking about all those different questions and reading about the maturity levels, think about your current client organization: What is their DevOps maturity level?
References:
[1] DevOps MasterClass, Venky Chennapragada, June 2019