* It mitigates your risk. Generally, adding a large amount of changes to software introduces risk. Due to the long time gap between deployments, there is a high possibility that environments will also have to be changed. Every deployment becomes a "big bang" that touches many moving parts. The chance of hitting some untested combination is high. Every deployment is unique, making it difficult to rely on experience from previous deployments.
In contrast, a delivery pipeline only has to be configured and tested once, and from there on can be repeated many times in a row — even for every code change, if desired.
As releases are proven on a continuous basis, the risk of poor or error-ridden releases is minimal, and lower than those of infrequent, manual ones. Simply put: the release process becomes far more reliable.
* It raises the overall quality of your application. In a traditional development model, code is compiled and packaged infrequently. Manual tests are performed once code is in its final stages, making test results visible only close to the end of a project. When a test fails, it is hard to find the solution, since there is no real 1:1 correlation between what was changed and what needs to be fixed — which costs a lot of valuable time. As the project needs to go live as soon as possible, the code is eventually promoted to production even though not all the code problems have been solved.
In a continuous delivery model, the process of assembling, compiling and testing is completely automated. Possible quality issues become visible much earlier on in the process and can be fixed on the spot. When the current version reaches "ready for production" it is actually ready.
* Automation is key. In order to enable the frequent, reliable execution of your delivery pipelines, organizations should at the very least investigate a "standard set" of automation tooling consisting of: pipeline orchestration/release coordination, continuous integration, application release automation and environment provisioning /configuration management. Why is this key? Because it's essential to meet the quality and throughput targets of your pipelines.
Continuous delivery offers many benefits. By automating the process of software delivery you gather crucial customer feedback more quickly, speeding up the whole process of improving quality and reducing time to market while potentially cutting down your costs of development.What's not to like?
Sign up for Computerworld eNewsletters.