Nowadays we have stoped measuring how many organizations have adopted DevOps practices to start measuring how advanced the implementation of those practices is. This is not really optional anymore but a standard. And yet we still find it hard to define exactly what DevOps is, or how to start from scratch.
We could agree on some general ideas, like that it’s a cultural change, that its main goal is to make the ops team to move at the same phase as devs, and that it helps empowering the dev teams/cells. But on the other hand, some would say it’s better to start from a dev team, others would say it’s better to start from an infra team. Some teams put their focus on pipelines automation, others on deployments and monitoring. And the list of differences goes on and on and on.
As an academic researcher and a DevOps team leader I’ve dedicated a couple of years researching, analyzing and applying DevOps practices trying to figure out which is the best way, if any, to do it. I found, of course, a lot of material to read, watch and listen to, but I decided to go the extra mile, and find the path my way.
Sailing to Unknown Port
The adventure started with some reading. A lot of reading actually. As I said, there are a lot of articles, books, courses, reddit threads, etc. where to look at. Used those as an input to create a list of the common practices, metrics used to measure success, and issues or problems that motivated teams to go the DevOps way.
Then, it was time to start talking to people. With those lists at hand, I started interviewing other DevOps leads and experienced software engineers to get their feedback and thoughts about them. Asked if they have implemented any of the practices listed there, if there was anyone missing, if they have used any of those metrics, or have had those issues. Interesting enough, they gave me pretty similar answers. Practices weren’t implemented the same way, or the metrics used weren’t exactly the same, but there was some sort of pattern to be discovered there. So, it was time for moving forward.
Next step was to create an online survey with similar questions to the interviews, and ask every software company and organization around my city to fill it. It took some time. The quarantine and curfew got in the middle so there wasn’t much to do but wait, but it was worth it. Once I got enough answers, a preliminar analysis started to show what I was expecting, a pattern, a path.
After closing the survey I went full researcher mode. I deep dived into the sea of data points and open answers, and emerged back to the surface (a few months later) with a treasure map.
The Treasure Map
I found that there is actually a possible path for a team or company to follow to go from zero to fully mature a DevOps area. Actually, I believe there are many, my treasure map is simply one of them. A clear and reproducible guide to follow to safety reach the wonderful DevOps bay.
With a map in my hands I was exited to see if it would take me where it was supposed to. So I followed it. Started with a single project, going step by step, slow but steady, cautious, double checking everything before taking the next step. Results were great, but it could’ve been a coincidence, those happen after all.
I tried next with a couple of projects at the same time, from different teams and technologies. Moved a bit faster in this occasion, and got great results as well, and excellent feedback from the dev teams. The map wasn’t lying.
And finally, I got the chance to test it once more, but this time, with the goal of building a DevOps area from scratch on a new company. It took much more time than the previous experiences, but it proved the path we were following was leading us in the right direction. By the time we were half way there, the devs and even the managers had already noticed some big changes for good.
Get the Gold
I don’t want this secret treasure map to remain, well, secret. Being the treasure a well implemented set of best practices related to development, testing, monitoring and automation, I want everyone to get a peace of it, or all of it.
The map ifself consists of a Maturity Levels Matrix, similar to CMMI levels. Each of which have a set of goals to help you achieve the implementation of the best practices related to it. By creating a roadmap based on this matrix, you’ll be able to create and grow a DevOps culture on any team, organization or company.
Explaining and properly teaching this tools and their processes will take me several posts for sure, so I’m inviting you to embark with me on this trip so you can also find and enjoy the gold of the DevOps treasure chest.
EDIT: Check the followup post here.
All Aboard!
Join me on this journey! On the follow up post I’ll start explaining the maturity model in detail.
Top comments (2)
Ay ay Captain, this looks like a fun journey to set off on
Just published the second post :D
dev.to/thesword/evolve-your-devops...