From agile to DevOps to continuous delivery: An evolution in software delivery
Many organizations have succeeded in implementing agile methodologies to speed up software delivery. Agile, which started in the development organization, has gradually expanded into other areas downstream, namely IT and operations. Teams, then teams of teams, have streamlined processes, improved feedback loops, and driven a much faster pace of innovation into IT departments, which has had profound effects on the entire organization. To build on this success, DevOps and continuous delivery (CD) have emerged to help connect development with IT operations (mainly through the introduction of automation) to support and amplify agility, responsiveness, and faster time to market throughout the software delivery lifecycle.
DevOps delivers on agile's promise
In 2001, The Agile Manifesto changed the landscape of software development with the introduction of agile development. Agile methodologies taught developers to break down software development into smaller chunks known as "user stories," which accelerate feedback loops and align product features with market need.
The agile movement centered on helping developers and small teams work smarter and more efficiently. The early adopters were primarily small software startups that were eager to disrupt the markets and were willing to trailblaze through trial and error. Slowly, as practices matured and the software community increasingly embraced agile-based methods, the notion of "scale" came to the forefront. Developers were now able to produce functioning software code in increasingly shorter iterations. However, when it got to downstream processes, such as test and deployment (not to mention release), fragmented processes and the dreaded "functional silos" stifled the end goal of agile efforts: to speed the time to market of quality software applications.
Agile ultimately gave rise to new processes and technology breakthroughs aimed at streamlining and automating the entire software delivery lifecycle. The advent of continuous integration (CI), the practice of checking code in often, with each "chunk" tested and integrated several times a day into a shared "trunk," created a flood of smaller and more frequent releases, which strained downstream QA and Ops teams.
With the release of Jez Humble's breakthrough book, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, the notion of treating the entire software lifecycle as a single process—and one that could be automated— was embraced not only by startups but also by Fortune 1000 companies. This helped elevate the value of agile initiatives that were stalled and blocked and raised the stakes for software delivery as a strategic business initiative. While agile addressed the needs of developers, the investment in DevOps initiatives and CD offers businesses much higher returns—a way to truly realize the goals outlined in the Agile Manifesto and support them throughout the software delivery lifecycle.
The evolution of continuous delivery
Many leading industry thought leaders also see DevOps and CD as both an extension of agile and the greatest opportunity to gain enterprise-wide value. Kurt Bittner, principal analyst at Forrester Research, puts it succinctly: "If agile was the opening act, continuous delivery is the headliner."
With an aim to support critical and strategic business needs, software-driven organizations are evolving both processes and technical frameworks—they've graduated from merely doing CI to implementing CD. Transforming the way software is delivered, CD is a methodology that extends agile's potential by tying in CI and DevOps practices and tools.
From a technical standpoint, CD is a set of practices and methodologies in software development designed to improve the process of software delivery and ensure reliable software releases. Leveraging automation, from CI builds, to testing, to deployment, CD involves all dimensions of the R&D and operations organization. Ultimately, it enables the systematic, repeatable, and more frequent release of quality software to end customers.
The key tenets of agile-based CD, developed by software thought leader Martin Fowler, follow in the spirit of successful agile methodologies. Fowler outlines simple questions to ask along the CD journey: Is your software always deployable throughout its lifecycle? Can your team prioritize and keep the software deployable while working on new features? Can anyone receive fast, automated feedback on the production readiness of their applications and infrastructure each time someone makes a change to them? Finally, can you perform push-button deployments of any version of the software to any environment on demand?
The benefits of extending agile through CD include:
- Accelerated time to market
- Ability to build the right product
- Improved productivity and efficiency
- Reliable releases
- Improved product quality
- Improved customer satisfaction
Disruptor now delivers at speed of business
The impact of agile has been far-reaching and extremely disruptive. It also helped spur new thinking beyond agile development and into multifunctional processes (DevOps) and end-to-end automation (CD) that are impacting both organizations and consumers of software. The days of waterfall approaches are clearly long past. Even though the Agile Manifesto is more than a decade old, collaboration and communication are and will continue to be vital. Look to extend your agile thinking and processes into DevOps and CD, because today's businesses just can't afford to wait on outdated software delivery processes.
Image source: Flickr