Continuous Delivery is all about removing waste from your software delivery process. One typical form of waste is caused by the separation of responsibilities commonly found in large organisations.
A typical separation of responsibility is normally found between development and operations. This usually means that development is not allowed to install releases into the user acceptance test or production environment. The development team basically depends on the operations department for installing and configuring application. The request can easily take one or two days before it is processed while development is waiting for the work to be scheduled.
If the installation depends on manually following the installation instructions from the release notes, than possible errors in the release notes may result in a failed installation. As development is not involved in the installation itself, operations has to notify the developers. Without first hand experience on what went wrong, they now have to find out what the cause of the errors was, correct it and resubmit the request.
Separating responsibilities does more harm than good
The rationale for separating the responsibility between development and operations normally boils down to security and configuration management. But in practice it does not lead to higher security or better configuration management. Usually, operators follow the release notes to the letter and are not always aware of the security vulnerabilities that may be caused by them. When the instructions are executed manually, the reproducibility of the installation is low and the system configuration subject to drift.
Automate installations by cooperation between developers and operators
The development team and operations team need to work together to automate the deployment of releases to any environment.The automation should provide the developers with a self-service facility to deploy new releases to the test environment, whenever they need it. Because the deployments are now automated, the operators can deploy specific releases of an application to other production environments. The self-service facility helps to remove waiting times from the software delivery process, while automation ensures that the security and configuration of system will not be compromised.
Getting development and operations to work together on a common goal and speed up the software delivery process is the essence of DevOps.
This post is part of a series on Continuous Delivery. Please see our tag Continuous Delivery for more posts on this subject. Or check our Continuous Delivery website to learn how Xebia’s consultants can help you improve your time to market, reduce costs and improve quality using Continuous Delivery best practices.