Practice : Feature Toggles / Flags
Purpose and Strategic Importance
Feature Toggles (or Flags) allow teams to control the release of functionality dynamically, decoupling deployment from release. They enable safer experimentation, faster feedback, and reduced dependency on rigid release cycles.
Without feature flags, teams face higher risk when deploying, and experimentation is limited to large launches.
Description of the Practice
- Flags wrap features, enabling toggling on/off at runtime.
- Used to test new functionality with subsets of users.
- Provide rollback mechanisms without redeployment.
How to Practise It (Playbook)
1. Getting Started
- Introduce a simple flagging tool (LaunchDarkly, Unleash, homegrown).
- Start with low-risk features for pilot testing.
- Document ownership of flag lifecycles.
2. Scaling and Maturing
- Use flags for experimentation, gradual rollouts, and A/B testing.
- Monitor flag usage to retire old toggles.
- Integrate flagging practices into CI/CD pipelines.
3. Team Behaviours to Encourage
- Discipline in flag lifecycle management.
- Safety-first mindset when releasing new features.
- Openness to experimentation at scale.
4. Watch Out For…
- Flag sprawl — old toggles cluttering codebase.
- Poor monitoring of feature rollout impact.
- Flags used as excuses for poor release planning.
5. Signals of Success
- Qualitative: Teams release features with greater confidence.
- Quantitative: Decrease in incidents tied to releases.