📖 Business
Continuous Delivery Capabilities
The Accelerate research identified a specific set of interconnected technical capabilities that drive software delivery performance. These aren't optional best practices you can cherry-pick — they form a reinforcing system where investment in any one capability without the others is wasted effort. Together, they enable continuous delivery: the ability to release any commit to production safely, at any time, as a routine business decision rather than a high-risk technical event.
2
Minutes
2
Concepts
+45
XP
1
How It Works

Five core capabilities that stack on each other:

  1. Version control for all production artifacts — Not just application code. Configuration, infrastructure-as-code, database migration scripts, build definitions, test suites. If it's needed to reproduce a production environment, it's in version control. No exceptions.
  1. Automated testing — Unit, integration, and acceptance tests that run without human intervention. Tests must be reliable — flaky tests are worse than no tests because they train teams to ignore failures. Developers must be able to run the full suite locally.
  1. Trunk-based development — Short-lived branches (less than one day ideally), frequent integration to trunk/main. Long-lived feature branches are a research-validated anti-pattern: they delay integration, increase merge conflicts, and hide problems. Feature flags replace feature branches for in-progress work.
  1. Continuous integration — Every code merge triggers an automated build and test cycle. The team fixes broken builds immediately — within minutes, not hours. CI is a practice, not just a tool: if your CI pipeline is green but nobody acts on red, you don't have CI.
  1. Continuous delivery — Every commit that passes the pipeline is potentially releasable to production. Deployment is decoupled from release. You can deploy anytime; feature flags control what users see. Deployment becomes boring and routine.

The capabilities stack: version control enables automated tests, automated tests enable CI, CI enables CD. Skip a layer and the whole structure collapses.