The DevOps idea is simple, but DevOps implementation is tricky. The premise? If you increase communication and collaboration between software developers and operations, you can create higher-quality software more quickly.
Many organizations race to adopt Git, Jenkins and Docker. But training your employees on these is only half the battle. Becoming a DevOps organization requires a fundamental change in culture—a sea change in how you release software.
Here are four key DevOps implementation challenges and their solutions…
Challenge 1: DevOps often requires corporate culture change
A strong command-and-control, rule-based culture is likely to find DevOps to be strange and uncomfortable. DevOps best practices call for self-organizing teams with employee-led decision-making and problem-solving. Some managers may be skeptical about ceding this amount of control. Transitioning from known processes to new processes can feel uncertain and unsafe.
Solution: Identify cultural barriers to DevOps implementation. Then, develop a formal change management strategy—a plan of action for overcoming these barriers. Your goal? To foster open communication and help employees adapt to their new roles and responsibilities.
Challenge 2: Silos create DevOps implementation barriers
Take an e-commerce platform, for example. Today, software developers in R&D might build it. Then, they hand it off to IT. With DevOps, there are no handoffs. Developers and operations work together as a single, cohesive team.
Often, Dev and IT communicate poorly, if at all, due to being siloed with separate management. Even if communication is collaborative and cordial, the two organizations may use completely different tools and processes. And with DevOps, who’s in charge?
Solution: While DevOps implementation requires support and advocacy from the C-suite, some organizations are accelerating the culture change through grassroots methods. For example, you can train a group of software developers who are enthusiastic on how to implement DevOps. Then, you can populate your teams with these DevOps engineers who can start changing the culture and breaking down silos from within.
Challenge 3: Some companies think they have to choose between revenue-generating work and internal operations projects.
There’s a perception that DevOps implementation will slow your momentum.
Some engineering managers think, “There’s only so much time and money to go around. Do you invest in building a new feature that you can sell? Or do you invest in automating and streamlining processes, so that you can deliver more/better/faster in the future?”
Adopting DevOps isn’t an either/or, black-and-white calculation. It’s a “both/and” decision. Yes, there are short-term costs, including a learning curve that may mean a temporary slowdown in momentum. But the intermediate- and long-term payoff is likely to eclipse the short-term inconvenience.
Solution: Consider incremental approaches that honor your current release schedules. You can begin training engineers on DevOps tools and principles in advance. And you can design the training so that on-the-job application begins with an upcoming release.
You can make the transition to DevOps one project at a time. Within a specific project, you want to be all-in DevOps, but it may take a few years to transition your full organization to a DevOps culture.
Challenge 4: Some software engineers aren’t excited about testing and automation
Though many developers currently write unit tests, CI/CD requires much more. To implement DevOps successfully, organizations must fully automate builds, testing and release.
Most software engineers today want to write production code. They typically are less enthusiastic about writing tests. The more senior they are, the most likely they’ll think, “That’s not part of my job.”
Solution: Probe your developers’ current mindset about testing and automation. You may find some who are already excited about DevOps concepts. With additional training, these enthusiasts can serve as ambassadors who help win over the skeptics. Additionally, your organization may need to adjust pay and advancement structures to reward the new collaborative, cross-functional behaviors you want.
Companies that embrace DevOps reap huge rewards
Though DevOps implementation steps can seem hard, consider this…
Suppose your organization does a big software release each quarter. In contrast, let’s say your main competitor releases new functionality every single week. Who has the best chance of pleasing customers, both in the short term and the long term? This is the key question driving adoption of DevOps. Do you need DevOps to remain viable as a business? Is “staying the course” putting you behind?