Enabling flow with continuous delivery
One of the Agile Manifesto principles is to satisfy the customer through early and continuous delivery of valuable software. Adopting lean-Agile development practices alone is insufficient to accelerate the flow of work; build-test-deploy-release cycles must equally be lean and continuous. Continuous delivery is one of the underpinning practices in DevOps for automating build-test-deploy-release cycles.
CI and CD are common abbreviations used in the context of Agile software delivery and DevOps. CI stands for Continuous Integration, and is well understood as an evolution of engineering practice that automates building, testing, packaging, and deployment. On the contrary, CD is a confusing term. In general, CD is interchangeably used for continuous delivery or continuous deployment. The recent state of DevOps report Accelerate: State of DevOps 2019 defines Continuous Delivery as CD and that is adopted in this book.
The following diagram illustrates...