Introducing DevOps is not about slapping a bunch of tools onto a broken process or firing all your ops teams and/or hiring great coders. To be successful, DevOps practices require careful consideration, planning, and a matching organizational culture. Much has been written about the technology side of DevOps. Let’s take a look at the cultural practices my team observed over the years in leadership teams in support of a lasting DevOps transformation of large organizations.
One of the best-known secrets of successful DevOps implementations is the fact that it is not about technology first. Focusing on technology first is the natural inclination of teams embarking on their DevOps journey. Most likely, the majority of people involved in a DevOps transformation have a strong background in tech. They are IT professionals in operations or have been developers for most of their careers. And as they say, “when you have a hammer…”
While of critical importance, a successful DevOps adoption depends on more than the effective use of tools or learning and implementing new processes. Meaningful and lasting success also demands a transformation of a different kind. Traditional cultures, sometimes established over generations of teams, are often in the way of modern IT and development processes that are essential to the success of DevOps implementations. A DevOps transformation must go hand-in-hand with some well-planned and carefully introduced adoption of cultural practices.
What are the cultural practices organizations might want to explore? Who is impacted? How do you go about introducing them?
Back to the Roots
Plenty of definitions have been written, many opinions been shared, about what DevOps stands for. Even I made an attempt. But, in the first few seconds of this now famous video, Adam Jacob, working with Opscode in 2010, eloquently defined DevOps once and for all: “DevOps is a cultural and professional movement. Period. That’s it. It’s culture, it’s about your job. That’s it. It’s all it is”.
Since his presentation in 2010 at the Velocity conference a lot of code has been written and DevOps is on its way to become more and more mainstream. Initially DevOps was often considered only something startups would adhere to. Cash strapped or otherwise compelled to forgo a dedicated operations staff they follow a “you build it, you run it” approach. Over time, more and more teams in the largest enterprise organizations discovered the all too obvious benefits of DevOps and its practices.
While there is no one blueprint for how to “do DevOps”, there are a number of common behaviors supporting the long-term success of DevOps practices in order to deliver value to customers through software more effective and efficient. A number of core technology practices like CI/CD, automated testing, and others represent a core set of DevOps Practices.
All practices connect to technologies, tools, and products. There are literally millions of lines of code, written to use, combine, and effective apply endless permutations of toolchains to improve software delivery processes.
Observing successful organization you find all code and tools are only as good as the supporting organizational culture. You can develop complex processes, use the most sophisticated tools; if your culture does not display certain habits, much of the work goes to waste.
These are common cultural practices noticed in organizations that successfully kicked off a DevOps transformation:
Don’t try to boil the ocean. With your team, define a narrow enough scope to get you started. Early successes, they may be small, are an essential encouragement for the team.
Don’t avoid making mistakes. Only if you empower teams to fail will they learn. This allows for an iterative process to discover the best approach. The faster they fail the better they become.
Refrain from expecting a fully baked plan going into a DevOps journey. With the discovery of every failure, your processes will adjust. They will become stronger. Allowing to start the journey with a few assumptions the team will incrementally refine improve any plan. Trust your team!
You as a leader are here to support your team. Delegate responsibility and decision-making. Shield your team from outside influence. Try to minimize bureaucratic overhead for the team.
Your team is the best. Give your team the confidence that they can do it. Everyone is a professional. Create an environment where people don’t fear to say they don’t know (yet).
Last but not least what we consider the key ingredient of a DevOps culture: Communication. It starts with the regular stand-ups but must go way beyond. Carefully involve business leaders in your communication about progress. Consider setting up a place where everyone can find out about its current state. Install regular meetings to celebrate successes and to share lessons learned. Become an evangelist for your team.
This short list is certainly not a comprehensive inventory of cultural practices and it goes without saying, in order to enable a culture built around these habits, you need to find the individuals willing to and capable of working in such environment. Later posts will look at the cultural practices supporting a DevOps transformation in more details and share additional observations from real-world engagements.
Here’s to your successful DevOps transformation