Hi Troy. Happy to share a perspective from my world as a PO. Our teams ship completed stories on demand, which is normally ~12x a day across our 18 teams. Our process includes:
- Running all tests (unit, integration, end to end) each time code is committed (10-30 minutes)
- Providing the ability to run on demand tests (10-30 minutes)
- Providing the ability to spin up on demand test environments (5 minutes)
- Running all tests (unit, integration, end to end) and deploying when merged to master (20-30 minutes)
- Using feature toggles to allow continuous deployment while releasing on demand (a few users, more users, more users, all users)
Within these things, we handle validating our hypothesis / value (aka accepting) through some of the following:
- Automated tests help to ensure high quickly and quick feedback to the team
- Pairing helps to bring multiple perspectives
- Using on demand testing environments for demos, quick user feedback, creating docs, accepting, etc
- Using feature toggles to beta test changes with small groups of users to decide to 1) iterate more or 2) release for all users
As a PO, I love CD b/c it provides more feedback cycles to validate hypothesis and make sure we’re actually providing value to our users.
5 years ago, we shipped every 2 weeks. Contrast that with ~12x a day. That’s 2x feedback cycles per month vs. 240 per month now. Therefore, while accepting is important, we also have a lot more opportunities to learn, pivot, and find the actual value.