Barriers and Benefits of Introducing Continuous Delivery
Continuous delivery (CD) and continuous deployment are new trends that are becoming more and more popular within the IT landscape. However, at present, only around 30% of IT teams use CD on a daily basis. Therefore, before we try to determine if CD is worth it, let’s start by looking at some definitions:
Continuous Integration This is the practise followed by developer teams to integrate their working copies to a common codebase several times a day. It usually involves building the whole project, trigger executing automated tests and publishing in developer and test environments.
Continuous Delivery The second step, after continuous integration, is continuous delivery and this process involves an application being released harmlessly at any time. While it still requires a human to activate the process by clicking a button, the entire process is automated. And, thanks to various tests, CD poses very few risks and will not damage anything.
Continuous Delivery Barriers
Time and Money: the initial costs for installation and configuration of CD can be high and integrating these processes can be very disruptive to business.
Organisation Culture: for medium and large organisations that currently use waterfall or similar methodologies, introducing CD means that substantial changes are required in terms of internal processes and staff training.
Maintaining Existing Projects: during the introduction of CD, you must also maintain your current projects. However, introducing CD to existing projects (especially those managed in a waterfall model) is much more complex than starting a new project with CD in place. Therefore, many companies shy away from introducing CD.
Internal Resistance: some team members may be opposed to learning new skills such as test automation, so managers may try to minimise fuss and disruption from staff by sticking with methods which are already well known and established.
Continuous Delivery Benefits
Let's imagine that your company is suffering due to one or more of the above barriers. You’ll understand just how hard and complicated introducing CD is, so the benefits must be worth it. How, then, do you convince managers to adopt CD? And what are the main benefits of introducing CD? Let’s take a look:
Immediate Feedback: one of the most important factors in company performance is the ready availability of feedback on functionality in a product. The speed of this feedback is crucial otherwise innovative products can quickly fail. For example, imagine you’re working with a six month release cycle. Once a new feature is introduced it can take seven to nine months to receive feedback on it. And if this functionality is not acceptable by the customer, this can lead to half a year’s worth of labour being wasted. And this can be costly.
Confidence of Processes: The release of a product can be a highly stressful time due to the uncertainty involved. If this process is executed manually, then it can be prone to errors. With a CD release model, however, the whole process is automated and the development team can redirect their energies towards producing better software.
Smaller Team: due to the introduction of more and more automated processes, less manual intervention by humans is required. This can reduce team size which, in turn, improves communication and allows team members to focus on other projects.
Despite some initial costs, which may be substantial in certain companies, you should seriously consider moving, even if it’s slowly, towards an overall CD model. At the very least, you should start introducing automation into your projects. It’s very challenging, but the benefits of CD will become apparent sooner rather than later. Most importantly, the benefit of immediate feedback will help your company in creating modern and innovative software. In this article I focussed on the barriers and benefits of CD, but in further articles I will explain how to start introducing CD into your company.