DevOps encompasses all steps of software development, integrating existing and proven methods into a holistic approach. The goal is to reduce the duration of development cycles as far as possible and to deliver higher product quality.
The software development process begins with the planning of the release and its development. This is where the corresponding agile method toolbox comes into play: the sprints are planned and the backlog is refined. But this is already the last agile step in the software production process. All further steps are the same - regardless of whether we work according to the waterfall, V-model or agile approaches.
A source code check-in by the developers triggers the integration process. Among other things, this process starts automated software tests that give developers feedback on their code and error-free interaction with other modules. Since the process should run several times a day and be as automated as possible, it is referred to as Continuous Integration. However, frequent execution can only be achieved if as many tests as possible are automated. It is impossible to assign a tester to click through test plans manually after every check-in.
The responsibility of the developers ends at the latest with the handover to the operations team. The software is often installed and tested once again on a separate test system. Deployment can also take place directly on a staging/production environment. If development has also been highly automated in this case and can be quickly rolled out to a production system, it is referred to as Continuous Deployment or Continuous Delivery. The Agile Manifesto defines the result of a sprint as a "potentially shippable" software package, but does not insist that every sprint is also rolled out. Often, multiple sprints are collected and a release from two to four sprints is handed over to the customer.
Last but not least, a complete cycle includes operations. The application and the infrastructure need to be monitored. The results should flow back into the next planning.
The feedback idea was already fundamental in agile approaches, DevOps picks up the idea and takes it further. Understanding user behavior and system usage are indispensable for continuous improvement. But it's not just operations that should provide feedback. Every step in this circle must be permanently critically scrutinized. This way, a continuous improvement process for testing, integration, deployment, etc. can take place. Only through this feedback innovation for the software itself and innovation for the entire production process takes place and the quality of the product increases.