I recently read a post on DZone which outlined a survey of 2,000 IT executives. What caught my eye was the stat that of the top 10 barriers to DevOps success, company culture is #1. That fits with my experience as well. In talking to many CIOs, I’ve found that the main challenge of DevOps is neither technology nor process, but rather culture.
To put this a different way, to succeed at implementing DevOps within your organization, you’ll have to know how to change your company culture.
With that in mind, here are my top 10 suggestions on how to manage cultural change when implementing DevOps.
- Make sure the very highest levels of your organization are ready to commit to the DevOps philosophy. DevOps will not succeed if introduced from the bottom-up. There are too many processes that need to change and require sign-off from management.
At the same time, the DevOps team needs a free hand in defining their roles and responsibilities. At first, they may define their roles in familiar ways based on old patterns, but as they get more experienced in the ways of DevOps, they will naturally evolve.
Bring in an external coach to educate DevOps team. They will help the team demolish walls and become a single team. Coaches have the experience to know what is and isn’t possible and how best to move forward. Do not make one of your line managers as a coach, as there may too much of a bias/baggage that they may bring to the team.
Even if you start with just a pilot team make sure you start to educate the rest of the teams. Communicate the benefits and the new processes. The pilot team will need help from time to time and if other teams understand the transformation they are more likely to provide that help.
Give your DevOps team the freedom to fail. Hold them accountable for their own actions. The more they fail the more resilient they will be. If they don’t have responsibility, they won’t take ownership. This means eliminating management-run post-mortems where the team becomes defensive and risk-averse. Your mantra should be “fail fast.”
Help the DevOps team to break down their silos. It takes a while to break the silo mentality. Help them understand that it doesn’t matter if you are dev, ops or security, your goal is still speed with quality.
Co-locate the teams as much as possible. When this happens, the team members will help each other. It will help them to mature and function as one team much quicker. Train the teams in doing automating their process.
Leaders should talk to the teams often to see what’s required for success. This should be a collaboration. Otherwise simple issues become roadblocks.
DevOps is by definition a lean, flat organization. Don’t expect or require all the good ideas to come from leadership. Good ideas can come from anywhere, from anyone, at any time.
The upper echelons of the organization should lead by example. Break down silos, collaborate, speed up decision-making processes. All of this can inspire your DevOps team in what can be a difficult transition.
DevOps is transformative, leading to a more agile, reliable, and productive organization. But for DevOps to take hold you’ll need to change your culture. Make sure you factor that into your DevOps implementation plan.