Foreword
Continuous Delivery is widely seen as “state of the art” in today’s software development process. There are good reasons for this. Continuous Delivery is grounded in a pragmatic, empirical approach to software development. At its simplest, Continuous Delivery is about optimizing the whole software development process—from having an idea to getting that idea into the hands of our users, in the form of high-quality, working software, as quickly and efficiently as we can. Then we can figure out what our users make of our ideas.
We actively seek feedback loops like this within the development process, and look to optimize them. We encourage the adoption of a genuinely experimental approach to every aspect of software development. In fact, I think that over the past few years, we are seeing signs of the software development process maturing.
I think that what we are seeing is the recognition and establishment of what software engineering should really look like: high quality, iterative, experimental, empirical—in fact, grounded in the scientific method. I am probably biased, but I believe that Continuous Delivery represents an important step forward in the software development process. It works. It makes the organizations that practice it more efficient at creating high-quality software that delights their users.
You will notice that my description did not mention technology at all. That is because the ideas of Continuous Delivery are not tied to any specific technology. You ...