DevOps is currently on everyone’s lips. From (virtual) conferences to articles and books, the term has conquered the IT world. This is understandable as DevOps has the potential to meet the many challenges facing the IT department. DevOps can help to minimize project delays, ensure quality and prevent project cancellations.
Companies already using DevOps – including Etsy, Netflix, Target, Walmart, Amazon and Facebook – gain significant competitive advantage by delivering higher quality software to their employees faster. Many of the companies that have already implemented continuous delivery practices, DevOps or Software Delivery Management, for an overview of all DevOps activities and tools in the company, find themselves in a dominant market position. Coca-Cola, for example, has been able to accelerate projects by up to 50 percent and reduce production errors by about half with the introduction of DevOps.
It would therefore not be surprising if DevOps became the standard for software development. When people talk about DevOps, however, they do not always mean the same thing. For example, some CTOs claim to “make” DevOps, or it is claimed that some software tools “enable” DevOps. However, these statements tend to confuse. Fortunately, in recent years a consensus seems to have established itself about what is meant by “DevOps”.
Definition of the term
So what, according to this consensus, is DevOps? It is not a methodology or a process or a single tool or technology. In fact, one cannot even rightly claim that DevOps is only used in development and implementation. Also, many of the organizations known for their success with DevOps are Software-as-a-Service (SaaS) suppliers. However, other types of companies can also benefit from the advantages that DevOps offers.
DevOps is ultimately a culture. It is based on a set of principles for structuring and managing organizations. Organisations with this culture emphasise collaboration, new approaches and learning processes. All participants in the software lifecycle – not just development and implementation – are focused on a common goal: the rapid delivery of stable, high-quality software from concept to customer. Since this is a cultural issue, DevOps, technically speaking, does not necessarily require automation. However, automation of software development, testing and delivery through continuous delivery can play a key role in this culture. It enables companies to deliver software faster, build confidence in the delivered software and provide customers with the quality, security and stability they require.
The DevOps Triad
One factor of the DevOps culture is the so-called “DevOps triad”: an interaction of people, processes and tools. In fact, it can jeopardize the successful implementation of DevOps- if these three elements are not considered simultaneously.
If a company sees DevOps only as technology and invests only in automated tools for testing, but neglects the cultural aspect, its developers will not give the highest priority to software quality. Important factors of quality assurance are the definition of clear goals, the realization of the appropriate level of automation and the cooperation between departments. Without sufficient consideration of these factors, companies will be able to deliver their software quickly, but intensive troubleshooting and quality will suffer.
Conversely, a company that focuses on cultural change but neglects agile methods and automated tools will find it difficult to manage the necessary change. With manual work steps, a cumbersome process and old tools, the expectations of introducing DevOps remain doomed to failure.
For companies that want to switch to DevOps, the first step on the technical side is to introduce agile development. This should include both continuous integration (Continuous Integration: CI) and continuous deployment (Continuous Deployment: CD) of new code throughout the entire application development process. The success of CI and CD is therefore strongly dependent on the degree of automation. This not only saves time, but also reduces errors, increases consistency and enables self-service. By automating CI and CD and promoting open communication and collaboration, companies lay the foundation for successful DevOps transformation.
Often organizations focus too much on the technical process of implementing DevOps, from the delivery of the developed code to its deployment on the server. But understanding user needs is just as important, because the entire feedback loop involves more than just Dev and Ops. It is therefore important to recognize that DevOps extends from software design to the user.
The benefits of a DevOps implementation are not necessarily immediate. Rather, they become visible during operation. It allows companies to deliver better software faster. These in turn gain a competitive advantage because DevOps enables innovation and fast reactions to changing market requirements.