The procedure of product release to the market includes the stage of software development, its verification, deployment, and support / maintenance. Traditionally, there are separate teams of specialists who are responsible for a particular stage of software development lifecycle. For example, a development team is working on code writing while IT operation team - on code deployment and support of external and internal customers. IT operations include the management of software and hardware to ensure a consistent quality of provided service.
Running a risk of following the “not-our-problem” mentality, each team, development and operation one, works separately running a risk of being unaware of potential blocks and difficulties that prevent a successful software release. That affects the quality and duration of software release to the market. To solve the problem, the idea of collaboration between software developers and IT specialists was suggested, and its name was DepOps - a combination of words “development” and “operations”.
The term “DevOps” was first introduced by Patrick Debois, an independent IT consultant, and Andrew Shafer, a co-founder of Puppet Labs, at Agile Toronto conference in 2008. DevOps is called to build a culture of collaboration between developers and IT teams on the basis of common mindset, constant communication, tight integration, and process transparency. Despite basing on the principles of Agile software development methodology, DevOps adopts the changes in organizational structure, culture, and activities of the whole project team. The goal of DevOps is to ensure continuous development, continuous delivery, continuous integration, and continuous management of processes.
DevOps model helps to accelerate the software release with the end users’ needs satisfied, market requirements fulfilled, and new business goals achieved. Removing silos, it ensures a close collaboration of developers, QA specialists, and IT operation specialists. In terms of Digital Transformation, DevOps approach ensures rapid software production due to continuous delivery and continuous integration that at the same time enhances software reliability and stability. Also, DevOps model focuses on the development of highly-scalable software.
Despite having much in common with Agile methodology, a DevOps workflow has own specific elements. There is no universal algorithm of DevOps processes, but a common structure of workflow can be separated. It includes 7 stages:
- Planning of requirements, use cases, metrics
- Programming of software
- Testing and QA activities
- Preproduction stage
- Deployment of software and its release
- Software post-release configuration
- Monitoring user experience
DevOps model has changed the process of software development and delivery. But to experience the benefits of DevOps approach, all the activities should be based on a specific culture and the principle of cross-functional collaboration.