Continous Delivery in Agile
DevOpsMarch 10, 2021Updated October 30, 20235 min read

Continous Delivery in Agile

While in the past, when browsing the internet, it was common to be met with messages like “We apologize for any inconvenience. Our website is now down for maintenance,” today, thanks to the modern practice of Continuous Delivery (CD), we can keep our servers online as we patch and update our products.

Yet this is only really the start of it, as when paired with Agile development, the practice of CD is often said to lead to widespread organizational change.

So what exactly do we mean by “continuous delivery,” and should developers still be using it today? In order to appropriately answer these questions, it’s important to take a look at DevOps and Continuous Integration.

What is DevOps?

A portmanteau of “development” and “operations,” DevOps represents the concerted blurring of these formerly separate areas. As a result, it:

  1. Facilitates the flow of deliverables
  2. Creates an environment where you can build your software both quickly and reliably
  3. May be thought of as the underlying philosophy behind Continuous Delivery (CD) and Continuous Integration (CI).

What is Continuous Integration?

Continuous Integration, for its part, is the process of regularly building and automatically testing software. In practice, developers:

  1. Integrate code into a common repository (multiple times each day)
  2. Verify each update through an automated build.

Continuous Delivery Explained

Once you have both of these practices in place, you can finally move on to the fun stuff, as Continuous Delivery (CD), as it turns out, is just the logical next step in this process. After all, according to Agile signatory (and full-time legend) Martin Fowler, Continuous Delivery is “a software development discipline where you build software in such a way that it can* be released at any time*.”

Of course, when developers are constantly running tests — as is the case with Continuous Integration — this actually becomes feasible! Even better, however, when used alongside a Continuous Delivery pipeline management system like Kubernetes, all of CD’s required steps may be automatically performed for you. This allows customers to be given critical software updates or features without experiencing any workflow disruption.

Continuous Delivery in Agile framework

While CD itself is not specifically mentioned in the Agile manifesto, look closer and it is hidden in plain sight: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software” reads the very first of the 12 Agile Principles.

The Manifesto, which turns 20 this year, triggered a revolution in the software development world, and in many ways, has successfully stood the test of time. But is Continuous Delivery still relevant two decades later?

Well, the practice is often said to tick a number of important boxes *in any Agile framework. *After all, it favors:

  • Iterative, incremental, and evolutionary work
  • Very short feedback loops and adaptation cycles
  • A focus on quality

In light of the above advantages, there are many other purported benefits that are often also attributed to CD:

Continuous Delivery and DevOps Today

But are all of these things still accurate today? To understand the question of relevance, it’s important to analyze the most recent data.

According to the 2020 State of DevOps Report, the percentage of businesses classed as high-level on the DevOps evolutionary scale — that is, with full DevOps adoption including Continuous Delivery — currently sits at 16 percent. While this number may seem low on the surface, not only is it a two percent increase from the year before, but 79 percent of surveyed respondents were classed as mid-level on the DevOps scale. This suggests that CD adoption is still growing.

Moreover, according to the report, organizations with lower deployment frequency had “the lowest levels of efficiency, with *93 percent *reporting low or very low efficiency.”

AI and Machine Learning

So what exactly is behind this continued growth? Well, CD expansion may be partly explained by the extraordinary adoption of AI and ML technologies. You see, as companies continue to search for greater efficiency and faster deployment tools, DevOps teams are increasingly aiming to keep human intervention to a minimum. This is done by fully automating the development process and is sure to remain a hot topic in the coming years.

Life Without Any CI/CD Practices

At the same time, modern development without any CI/CD practices in place is equally no walk in the park:

  • Your main code line becomes unstable.
  • Bugs lurk in a tangled web of multiple code changes, and you dread the effort it will take to find them
  • Every time your testers want to test a feature, they have to pester all software developers to not only learn the project’s status but also find a working build

The Cost of Setting Up

So we know that Continuous Delivery is still very much relevant today, but it’s important to be aware of its inherent expenses, as setting up a CI/CD toolset from scratch will require some additional resources. This can vary anywhere between $40 a month to over $100,000, depending on where you are on your DevOps journey — *and may also cause unnecessary delays when employing rapid prototyping or building an MVP.  *

Nonetheless, by embracing the many IaaS and PaaS services available today, such as Bunnyshell, you are able to gain access to conveniently pre-configured environments that enable even the smallest of startups to take advantage of reliable CI/CD pipelines.

Level Up Development

As the first Agile principle makes clear, in the end, it is the customer — not anyone else — who you should ultimately seek to satisfy. This principle alone still certainly applies today. While iterative development is more often than not beneficial, if your bug fixes and user stories are left stewing in repositories for weeks (without any feedback from your stakeholders or customers), then this will only lead to self-defeat.

By removing time-consuming activities hitherto associated with software delivery, you can focus on the most important task — that of actively delighting your customers.