Continuous Value Delivery: A Spectrum
December 24, 2021
Continuous Value Delivery: A Spectrum
- “Value” refers to the business value that the business gets from the usage of the product
- “Continuous Delivery” means continuous “shippability”, i.e. that the software is in a continuously releasable state (i.e. that a business stakeholder can at any moment in time decide that a release should be done).
The following are levels of “continuous delivery”:
Level 0: Fully manual delivery.
Level 1: CI pipeline + Manual deployment + Manual testing
Level 2: CI/CD pipeline + Manual testing
Level 3: CI/CD pipeline + Automated testing
Level 4: CI/CD pipeline + ATDD & TDD
Level 5: CI/CD pipeline + ATDD & TDD (with Continuous Deployment)
Level 0
Fully manual delivery: Manual build, manual deployment, manual testing. A developer manually deploys software from their local machine. QA Engineer manually tests the software on the test server.
Level 1
CI pipeline + Manual deployment + Manual testing: CI pipeline, with manual deployment and manual testing. A developer manually deploys software based on the build artifacts from the CI server. QA Engineer manually tests the software on the test server.
Level 2
CI/CD pipeline + Manual testing: CI/CD pipeline includes only build and deployment (no automated tests). QA Engineer manually tests the software on the test server. Automated production deployment is triggered, followed by manual smoke testing.
Level 3
CI/CD pipeline + Test Automation. Developers manually debug the features they write, then after the development is done they write tests after they’ve finished code. QA Engineer writes automated Acceptance Tests after developers finish features. CI/CD pipeline includes automated testing. Smoke testing is automated.
Level 4
CI/CD pipeline + ATDD/TDD. QA Engineers write automated Acceptance Tests (ATDD), developers write integration + unit tests (TDD). This means there’s no manual debugging, it also means that whenever developers commit code, it is guaranteed that tests have been written for that code. includes automated build, automated testing, and automated deployment. QA Engineer may do exploratory testing. When production deployment is approved, then someone triggers automated deployment on production, which includes also automated smoke testing.
Level 5
CI/CD pipeline + ATDD/TDD (with Continuous Deployment): Same as the Level 4, with additional extension: “Continuous Deployment”, which is an extension of “Continuous Delivery” with the following difference: there is no human approver who decides that the system should go on production (i.e. no manual trigger), but instead this automated too. This effectively bypasses the QA Engineer in the approval process, so this case is only possible with the utmost highest level of test automation.
Your thoughts?