03 Oct 6 Reasons why DevOps fails and how to avoid them
While many companies are moving toward DevOps processes and tools that fit that framework, few are actually implementing the workflow with the fidelity needed to make teams more productive, according to a Thursday report from 2nd Watch.
Implementing DevOps means fundamentally changing your software engineering process. As with any change of process, success depends on how well the people making the change embrace the principles of the new approach. If people reject, subvert, or undermine the DevOps philosophy, it will fail. Here are six of the most common reasons for DevOps failure, along with tips to increase your chance of success.
1. Creating a traditional “DevOps Department”
78% of the 1,000 IT professionals surveyed said that their organizations continue to have separate teams for managing infrastructure/operations and development—meaning that DevOps is still not fully underway. DevOps involves a collaboration between development, operations, and quality assurance teams. Creating a traditional DevOps department misses the point of making a transition to a DevOps mindset, and is likely to simply add more red tape to existing processes.
This is the opposite of what DevOps should accomplish. Yes, a DevOps implementation requires leadership, but that’s not the same thing as traditional, department-based management. Your DevOps strategy should be implemented as a framework in which your development and operations staff can begin to interoperate, not as a new department that’s tasked with overseeing these disparate groups and somehow forcing them to work together. Focus on getting teams to improve their communication with people working in other departments. In this way, it is possible to assign tasks to the right teams so that every task is completed at the correct point in the overall project workflow.
2. Failing to properly consider staff workloads and other resources
If your developers are already overworked, this might not be the best time to start a dramatic overhaul of their working processes. Before you spring a DevOps implementation on your team, take the time to quantify their workloads and measure performance metrics, so you can see whether individuals are coping with the demands your organization places on them. If you come across an unmanageable boost in workload, you can either re-prioritize the workload or hire new resources to address the staff shortage before you can start your DevOps implementation.
3. Setting unrealistic goals
Never underestimate how big a culture shock DevOps can be in an organization that currently uses a silo structure. You cannot expect everyone to immediately adapt to the change and deliver excellent performance from day one. Be realistic about how long a DevOps implementation is likely to take and set short-term and long-term goals accordingly. And remember: The larger your enterprise is, the longer this transformation is going to take.
4. Creating “hybrid” DevOps while keeping old structures
Some organizations try to reduce the culture shock of DevOps implementation by keeping the business’s old structures intact. However, giving into pushback from developers in this way can undermine the implementation. Rather than keeping the old culture intact, one solution is to build a true hybrid structure that keeps IT operations and development teams in their traditional silos but implements an agile methodology.
5. Misunderstanding the role of business owners
The role of a business owner is to make top-level strategic decisions about the way in which the business is run. It is not to micromanage everything that goes on in the company. While a business owner can decide that the company would benefit from implementing DevOps, they cannot always control how individuals and teams put the principles of DevOps into practice. Rather than trying to impose a new way of doing things, business owners should be willing to listen to the concerns of developers and IT operations employees and find solutions that help them to work more effectively within a DevOps framework.
6. Not embracing a culture where failure is tolerated
Transitioning to DevOps is, first, a cultural shift, and then a process and organizational shift. If you’re considering DevOps simply because “it’s the future”, rather than out of a desire to fundamentally rebuild and improve your business processes, success is highly unlikely.
A key part of the DevOps methodology is failure. Developers should not be afraid to admit to mistakes, particularly when talking about failures could be a vital learning experience for the whole team. When implementing DevOps, be sure to nurture a culture where failure is tolerated.