Automation is key to enabling such collaboration.
When most of the process of software creation, testing and deployment is manual, the process can be very error-prone. Using manual practices, delivery teams typically spend a large proportion of their time scrambling to merge branches and create new builds created so they can be deployed into a production-like environment and tested.
This inevitably means that the feedback loop from testing is incredibly slow, and doing things such as load testing on staging environments gets left till late in the process, rather than being done from the beginning when problems can be fixed cheaply.
Automating as much as possible of the delivery process ensures a much tighter feedback loop, said Humble. "It also frees people to focus on high-value activities such as evolving an appropriate architecture, exploratory testing, and making deployments and releases low-risk, push-button processes."
The Deployment Pipeline
There is also an organizing principle for all of these activities: the deployment pipeline.
The description and elaboration of this pipeline forms the core of the book. The idea behind the pipeline is to help developers model each part of the value stream that goes from check-in to release, and then to automate it. Every check-in triggers a new build, which then passes through the deployment pipeline as shown below.
The authors of the book claim the deployment pipeline allows everybody involved in delivering software to get fast feedback on the status of every change introduced to an application. The theory is that such feedback makes it simple to trace which builds have been through which environments, what the results were, and what's currently in each environment.
Finally, it allows testers and operations people to self-service the build of their choice into the environment they control. The upshot is faster feedback, better collaboration within delivery teams, and -- because each process from check-in to release is automated - fewer errors, more reliable releases, and shorter cycle times.