Historically, Dev and Ops were separate teams: the development department programmed the software and delivered it to the Operations team. That team was then responsible for its installation and operation. This process often led to problems, for example, runtime environments were not identical, update paths did not work, or errors only occurred in production. The departments blamed each other. A long feedback cycle between the teams resulted in the fact that it sometimes took days or weeks until bugs could be fixed.
The close collaboration between the two teams and the resulting practices lead to shorter release cycles, higher quality, fewer errors, and the ability to resolve critical problems quickly – in minutes rather than days or weeks – through continuous delivery.
Agile Software Development solves communication problems between customers and developers. DevOps solves communication problems between developers and operations and optimizes the delivery of the produced software, regardless of whether it was developed with agile or other methods. Agile software development is based on practices provided by DevOps, such as continuous integration and deployment.