Phase 3: Optimize

Improve flow by reducing batch size, limiting work in progress, and using metrics to drive improvement.

Key question: “Can we deliver small changes quickly?”

With a working pipeline in place, this phase focuses on optimizing the flow of changes through it. Smaller batches, feature flags, and WIP limits reduce risk and increase delivery frequency.

What You’ll Do

  1. Reduce batch size - Deliver smaller, more frequent changes
  2. Use feature flags - Decouple deployment from release
  3. Limit work in progress - Focus on finishing over starting
  4. Drive improvement with metrics - Use DORA metrics and improvement kata
  5. Run effective retrospectives - Continuously improve the delivery process
  6. Decouple architecture - Enable independent deployment of components
  7. Align teams to code - Match team ownership to code boundaries for independent deployment

Why This Phase Matters

Having a pipeline isn’t enough - you need to optimize the flow through it. Teams that deploy weekly with a CD pipeline are missing most of the benefits. Small batches reduce risk, feature flags enable testing in production, and metrics-driven improvement creates a virtuous cycle of getting better at getting better.

When You’re Ready to Move On

You’re ready for Phase 4: Deliver on Demand when:

  • Most changes are small enough to deploy independently
  • Feature flags let you deploy incomplete features safely
  • Your WIP limits keep work flowing without bottlenecks
  • You’re measuring and improving your DORA metrics regularly

Next: Phase 4 - Continuous Deployment - remove the last manual gates and deploy on demand.



Small Batches

Deliver smaller, more frequent changes to reduce risk and increase feedback speed.

Feature Flags

Decouple deployment from release by using feature flags to control feature visibility.

Limiting Work in Progress

Focus on finishing work over starting new work to improve flow and reduce cycle time.

Metrics-Driven Improvement

Use DORA metrics and improvement kata to drive systematic delivery improvement.

Retrospectives

Continuously improve the delivery process through structured reflection.

Architecture Decoupling

Enable independent deployment of components by decoupling architecture boundaries.

Team Alignment to Code

Match team ownership boundaries to code boundaries so each team can build, test, and deploy its domain independently.

Hypothesis-Driven Development

Treat every change as an experiment with a predicted outcome, measure the result, and adjust future work based on evidence.