I recently heard the claim that “Continuous Deployment is incompatible with manual QA.” As common as this belief/assumption is, I always challenge it.
First, my definition of “Continuous Deployment” (which the above mentioned claimant said he agreed with):
The automatic deployment to production of software once it is merged into mainline.
If we agree with this definition of Continuous Deployment, and also want to do manual QA (in particular, manual acceptance testing), we have but one option: The manual acceptance tests must happen before merging the code into mainline.
“But that’s not really Continuos Deployment!” some might say. “Ask the inventors of Continous Deployment!”
This still leaves room for manual approvals—but once approved, all changes should be applied automatically.
If you enjoyed this message, subscribe to The Daily Commit to get future messages to your inbox.