The thinking that Agile software development and DevOps are different and separate frameworks, and hence need to be adopted separately seems to be taking hold. This is obviously, incorrect and has insidious long term consequence as it will perpetuate the divide between Dev and Ops. Although, Agile software development preceded DevOps – Agile software development became mainstream with the publication of Agile manifesto in 2001, and DevOps has only become popular recently – DevOps doesn’t replace Agile software development but merely extends it. If Agile software development, with its iterative development and incremental software delivery model didn’t exist, there would be no need for DevOps.
What DevOps along with the associated practices of Continuous delivery
does, is solve the ” Last mile problem of software delivery.” While the aspirational goal of Agile software development was to deliver “working software” . Working software rarely meant software that was deployed in production, being used by end users and delivering value to the business. Usually working software meant software that was successfully demoed to stakeholders. This meant that the process for deploying the software into production continued to be a very time consuming waterfall process, with the software and associated artifacts being handed over to the operations team for production deployment. Two bad things happened as a consequence, delayed feed back to development – due to time lag of weeks or months from completion of development to the actual deployment into production; high risk release – it was expected that the deployment into production would break production, so to minimize risk the releases into production were infrequent, by design.
The costly business consequence of these two factors – delayed feed back to development & high risk release, meant organizations that had invested in Agile software development never fully realized its business benefits. DevOps with the concept of cross functional teams – dev, ops, QA, DBA, Security, etc – and using the technical practices of Continuous delivery, solves the last mile problem, ensuring organizations can finally realize the benefits of their investments in Agile software development, as illustrated in this brief video (2 Mins 25 Secs).
So, the key take way : DevOps extends Agile software development and helps organizations fully realize the benefits of Agile software development. Hence, it is imperative that organizations that are implementing Agile transformation programs, extend Agile software development to include the DevOps way of working – Dev and Ops teams working together to build software in increments , with the ability to deploy software into production, on demand.