Continuous Delivery
Work in a way so that the Software is in a releasable state.
- Not to be confused with Continuous Deployment
- Applicable to all kinds of software
- Improves Improves software delivery performance. See the metrics defined by DORA.
- Define a Release as a working build that passed all automated tests
- Enables Blue Green Deployment or Rolling Deployment models
- For large refactorings, Branch by Abstraction.
Practises
- Test Automation
- Deployment Automation
- Trunk Based Development
- Shifting left on security
- Continuous Integration
- Continuous Testing
- Monitoring and Observabillity
Pitfalls
- Not optimising the processes along with increasing frequency of releases
- Automation increases test requirements, slowing down work
Mitigations
- Creating a Value Stream Mapping (VSM)