For some time now, I have been hearing about DevOps and I think that this notion deserves to be clarified, if only for me. There seems to be a varied understanding and use of this expression and I think it’s important to take time to define its bases and to specify its meaning. Like Agility, DevOps is a collection of concepts that have different meanings depending on the point of view and circumstances. It is still possible to give an overview and this is what I propose to do here.
Development and operations
Let us first note that the term DevOps puts together development (Dev) and operations (Ops). This juxtaposition is at the very heart of what is generally understood when employing it. DevOps is notably the combination of two trends. The first one can be described as Agile operations. It is to apply Agile and Lean approaches to the operational dimension of the company. The second is an expanded understanding of the importance of collaboration between the development and operations teams during all phases of a product or service, from creation to operation.
One of the characteristics that can be identified is the use of techniques similar to those of the developers by the teams responsible for the operations. For example, this may mean source control or the use of a method such as Scrum in the context of operations. To put it simply, DevOps can be defined as the active involvement of development people as well as those of operations who participate together in the entire cycle from design to production support through the development process itself.
Agile development advocates close collaboration between the client, product manager, developers and QA people in order to always adjust the product and maximize its value. In the case of DevOps, it’s about extending this notion beyond the code to the entire service, making sure to include the delivery, integration, and interactions of the developed software in the current operations, because it becomes a fundamental part of the value proposition to the client.
Expanding Agile values
One could see DevOps as the collaboration between development and operations, but it is also much more than that. It is about expanding the set of Agile principles and values to include existing systems and operations.
In the broadest sense, it is an operational philosophy that puts forward better communications between development and operations and often introduces automation of certain elements of operations. In a more restrictive way, DevOps can refer to IT team members who create and maintain the infrastructure or to a team who strategically reviews the entire software production line and oversees shared services while promoting development tools and best practices.
Traditionally, in most companies, the development team tests the new code in an independent development environment to ensure quality and, when the requirements are met, it sends it to the operations for use. One problem with this approach is that there is usually a long delay between deliveries. Moreover, with teams working separately, the development team is not aware of the blockers that prevent the software from working as planned.
Breaking down silos
DevOps can seek to blend the development and deployment of applications into a streamlined process that brings some of the responsibilities of operations back to the development team to facilitate continuous development, integration, and delivery, and allow for the proper monitoring of these processes. The need to break down silos is enhanced by the need to deliver more quickly and frequently to help the organization meet the changing business needs in a more Agile way.
Remember that a key element of DevOps seems to be communication. It is essential for the various teams to be able to communicate well with each other in order to make the right decisions. The understanding of the business field is also paramount as is a serious concern from all the people involved to ensure the success of the product or service.
Here is a summary of the benefits that are generally associated with DevOps:
One thing for sure: an emphasis on harmonizing the whole process of production, integration, and operation of software with a focus on business value as well as the Agile and Lean values can undoubtedly greatly contribute to improving the return on investment while creating more harmonious work processes. Now remains to discover how exactly to go about it…