feature-flag-strategy
Feature Flag Strategy (PM playbook)
Overview
A feature flag is a runtime switch that decouples deploying code from releasing a feature. Done well, flags turn high-stakes ship dates into low-stakes config changes -- launches become measured ramps, regressions become single-toggle rollbacks, and experiments live alongside production code. Done poorly, flags become permanent technical debt: hundreds of dead toggles in code, conflicting flag states across environments, and nobody remembering what the flag controls.
This skill is the PM-facing rollout playbook. It does not describe how to wire a flag library into your codebase (that is the engineering side, e.g. your LaunchDarkly / Statsig / Optimizely / Unleash / OpenFeature install). It describes how a PM plans a phased rollout: what kind of flag this is, how it ramps, what the gate criteria are between stages, who can flip the kill-switch, when the flag retires, and how it is named so the team can find it six months later. The frameworks behind it are Martin Fowler's "Feature Toggles" taxonomy, LaunchDarkly's rollout best practices, Optimizely / Statsig experiment playbooks, and Reforge experimentation foundations.
Core Capabilities
- Flag classification -- release / experiment / ops / permission, each with its own lifespan and ownership rules.
- Rollout shape selection -- linear, segmented, geographic, A/B-with-holdout, dark launch, reverse ramp, mobile forced-upgrade.
- Kill-switch design -- pre-agreed thresholds per surface and single-config-change rollback authority for on-call.
- Holdout design -- short-term and global holdouts for long-term lift attribution.
- Flag-debt governance -- retirement dates, retirement checklist, quarterly audit, naming conventions, dependency chains.