Feature Flags and Gradual Releases
Feature flags allow you to deploy code without users seeing the feature. This separates two activities that have always been treated as the same thing: delivering code and releasing functionality.
The problem with deploy = release
Without feature flags:
- Code goes to production
- Feature becomes visible to everyone immediately
- If something goes wrong: painful rollback
- Result: fear of deploying and inflated estimates
With feature flags:
- Code goes to production (behind the flag)
- Feature stays invisible until activated
- If something goes wrong: deactivate the flag in seconds
- Result: confidence to deploy frequently
Impact on estimates
Without feature flags
“We need to make sure everything works perfectly on deploy. That adds 3 extra points of work.”
With feature flags
“If there’s a problem, we disable the flag. The estimate reflects only the effort to build.”
Less risk = more realistic estimates
Teams with feature flags estimate with less fear because they know rollback is trivial.
Types of Feature Flags
| Type | Use | Duration |
|---|---|---|
| Release | Control feature release | Weeks |
| Experiment | A/B testing and validation | Days/weeks |
| Operations | Performance and fallback | Hours/days |
| Permission | Access by plan/role | Permanent |
Estimating flagged features
When a feature uses a flag, consider in the estimate:
- Flag logic (1 extra point) — adding the toggle
- Flag testing (1 extra point) — testing with flag on and off
- Analytics (1-2 points) — feature usage tracking
- Removal — schedule to remove the flag after stabilization
Tools
- LaunchDarkly — most complete, enterprise
- Unleash — open-source, self-hosted
- Split — focused on experimentation
- Flagsmith — simple open-source alternative
- Custom solution — boolean flag in the database
Best practices
- Clear names —
enable-new-checkout-flownotflag1 - Remove old flags — if the feature is already stable, remove the flag
- Central dashboard — all flags visible and manageable
- Environment limits — operational flags not activated in production without approval
- Document — each flag should have an owner and removal date
Feature Flags and Sprint Planning
With feature flags, Sprint Planning changes:
- More confidence — rollback is easy so plan with less buffer
- Incremental delivery — features can be partially released during a sprint
- More flexible review — demo with flag activated in staging
Conclusion
Feature flags are a speed and confidence multiplier. They separate deploy from release, reduce the fear of making mistakes, and allow teams to estimate more precisely because they know rollback is instant.