Book Profile
Continuous delivery reliable software releases through build, test, and deployment automation
Humble, JezFarley, David · 2010
A comprehensive guide to revolutionizing software delivery by automating the build, deploy, test, and release process, enabling rapid, reliable, and low-risk releases through a practice called the Deployment Pipeline.
Get the book →Releasing software is often a painful, risky, and manually-intensive process that teams rightly fear. This book tackles this problem head-on, arguing that through radical automation and a shift in mindset, software releases can become a routine, predictable, and low-stress activity that can be performed on demand, multiple times a day. The authors introduce the concept of the 'Deployment Pipeline,' an automated process that provides visibility and control over every change, from a developer's check-in all the way to production. By detailing the principles and practices of configuration management, continuous integration, automated testing, and infrastructure management, the book provides a complete roadmap for developers, testers, and operations teams to collaborate effectively, reduce cycle times, improve quality, and ultimately deliver valuable software to users faster and more reliably.
What it argues
This model outlines the causal relationships proposed in 'Continuous Delivery'. It posits that adopting a set of core technical and process practices, collectively structured as a 'Deployment Pipeline', leads to improved psychological and behavioral states within the delivery team. These states, such as rapid feedback and reduced risk, in turn drive key business and operational outcomes like reduced cycle time, higher quality, and greater business agility.
Key ideas it contributes
- Adoption of Deployment Pipeline Practices — The extent to which a software delivery team implements the core practices of Continuous Delivery, including continuous integration, comprehensive configuration management, extensive test automation, and automation of the entire build, deploy, test, and release process, facilitated by cross-functional collaboration.
- Rapid Feedback on Changes — The speed and quality of information returned to the delivery team regarding the impact of a change on the system's correctness, quality, and production-readiness.
- High Process Visibility and Control — The degree to which all stakeholders can observe the status of any change as it progresses from version control to release, and the ability for authorized individuals to control this progression (e.g., self-service deployments).
- Process Repeatability and Reliability — The extent to which the build, deployment, test, and release process is consistent, predictable, and free from manual error, regardless of who performs it or which environment it targets.
- Reduced Release Risk — The reduction in both the perceived and actual probability and impact of failure associated with deploying a new version of software into production.
- Increased Deployment Frequency — The rate at which new versions of the software are successfully released to end-users.
- Reduced Cycle Time — The elapsed time from the decision to implement a change (feature or fix) to that change being available to users in production.
- Improved Software Quality — The degree to which the software is fit for purpose, measured by a reduction in production defects and an increase in the fulfillment of functional and non-functional requirements.