What is Continuous Delivery?
Its aim is to satisfy the customer through early and Continuous Delivery of valuable software. It is the first principle of the Agile Manifesto - done means released. Continuous Delivery creates a repeatable, reliable process for releasing software.
How do we create a repeatable/reliable process?
- Build pipeline
- Everything in version control
- Every commit creates a release candidate
- Executable Spec – ATDD
- Build quality In
- Automate almost everything
- Keep mainline always releasable
Why Continuous Delivery?
We use Continuous Delivery so that we can release to production weekly. We can build software quicker and respond to changing customer requirements
Acceptance Test Driven Development
- Integration and Unit tests to evaluate components of code
- Tests are running continuously
- If Acceptance tests fail the production line stops!
- Acceptance Tests against stub
- Compatibility Tests against venue UAT environment
- Single Source Tree
- Release to production every 2 weeks