When looking into implementing DevOps into your organization, it’s just as important to consider the disadvantages of implementing DevOps as it is the benefits. The decision to implement DevOps cannot be taken lightly. When contemplating a switch to DevOps, one of the first steps is to have a thorough understanding of the challenges that need to be overcome.
The first challenge your organization will encounter is a lack of thorough understanding of the key DevOps advantages and disadvantages. It is vital to understand not just the benefits but also the disadvantages of using DevOps. There is help though–DevOps can offer powerful tools that enable your organization to maximize the way you operate.
Many definitions of DevOps have emerged, and it is important that an organization reach an agreement as to what their definition will be. This agreement is informed by several things that DevOps is often thought to be but is not.
It’s not just a methodology. DevOps goes well beyond the requirements of a new methodology to include organizational, cultural, procedural, and other changes which must be carefully considered.
Furthermore, cost and funding need to be considered before making a switch to DevOps. Technology investments in the automation tools required for DevOps is costly and will take a great deal of time to identify and implement. These costs need to be established to ensure that the initiative doesn’t falter because of a lack of funds, or worse, cause the company to stumble or even fail. There is also a bad tendency to implement a variety of different “best-of-breed” tools with little or no consideration for how well they interoperate.
It’s easy to think that the only people impacted by the implementation of DevOps are the developers who write code and the operators who run that code on the network for the users. But those teams do not exist in a vacuum. The code they write and run serves other members of the group in departments throughout the enterprise. The process is dependent upon those users for feedback on how the product can be improved to make it more user friendly or how processes can be sped up or automated. Since the feedback of everyone is a crucial step in the continuous improvement process within DevOps, everyone must be ready to absorb the new culture or else the initiative will falter.
Beyond the silos of information that DevOps may break down and unify are silos of people stuck in their own processes and ways of managing information. Taking the time to show these individuals how DevOps will positively impact them will go a long way to ensure that the initiative will be successful.
There may be less expensive ways to achieve the same results. Good DevOps experts are in big demand and can be very expensive. The automation and other software tools they require, and other operational costs add up quickly to a very expensive initiative. A half-baked, insufficiently-funded DevOps “effort” will likely leave you worse off than when you began. In other words, if you’re going to transition to DevOps, you must be prepared to “do” it right.
Traditional developers worked hard to become proficient with the “full-stack” of protocols and procedures required to develop software. DevOps breaks those multidisciplinary tasks down, assigning each one to dedicated specialists. Over time it will become difficult for those full-stack experts to leverage their many skill sets. At the same time, the organization may find that it has hired and is managing a greater number of people, with multiple people assigned to different individual tasks that were previously all handled by one.
Also, while the concept of constant improvement through rapid iteration of upgrades sounds fantastic, many users find it difficult to keep up with and start taking advantage of new features as they emerge. Focusing more on delivering working software than on documentation is preferred by both DevOps and its foundational Agile roots, but it may become more difficult for developers and operators to keep track of their advances as well.
The challenges and potential disadvantages of DevOps implementation generally occur within four categories:
One of the characteristics of processes introduced in a DevOps initiative is the sheer speed with which feedback is requested and responding changes are made. While this is often seen as one of the advantages of DevOps, if not properly managed it can become one of the disadvantages of DevOps. This often eliminates all opportunity to “carefully consider” suggested changes as everyone could do before. It will take time for users to adjust to this change in velocity.
Procedurally, the organization will need to be more fault-tolerant at least in the early going. Mistakes must be made and observed to stimulate rapid learning and resolution. This will be uncomfortable to some.
There’s a tendency for people to say DevOps and think automation. DevOps is not just automation, though automation enables evaluation and analysis that leads to improvement quickly enough to satisfy the velocity needs of every DevOps process. Indeed the most important segments of the DevOps lifecycle to automate are the feedback loop back from users to developers and quality assurance testing.
Speed and security don’t necessarily get along with each other very well. It is critical to the success of your DevOps initiative that you carefully consider a separate plan for security at every stage of your DevOps workflow. Any chain is only as strong as its weakest link, so it is critical to assure that the security of your DevOps processes is consistently strong across the workflow chain
Security teams traditionally begin by evaluating the design of a system to determine weak points, choke points, bottlenecks, and other areas of vulnerability. Remember that DevOps inherited from Agile the goal of achieving a minimum viable product (MVP) as quickly as possible, and then preferring iterative improvements of working software over documentation. As such, there is often no formal design and therefore no design documents for anyone to evaluate and analyze
Because of this, and because neither developers nor operators are necessarily security experts, we have seen DevOps quickly evolving to become DevSecOps.
One of the main goals of DevOps is to be first to market with a new idea or feature. This is where DevOps is able to greatly enhance the success of an organization. This requires maximizing efficiency and eliminating any waste, process delays, or unnecessary costs. The desire is to fail-fast-fail-early and resolve everything as quickly as possible.Certainly, the amalgamation of silos of data, but also silos of personnel in various teams, each with their own standards and process preferences. It is far easier to bring together data than it is to bring together people.