Feature Flags Versus Long-Lived Release Branches
TradeoffStaffPrincipalUpdated
Sixty engineers ship a web app weekly from one repository. A pricing redesign will take three teams six weeks, and customers can't see it until finance signs off.
Short answer: Feature Flags. Merge the redesign to trunk daily behind a flag, so it integrates continuously and launches with a config change once finance approves.
The Two Options
A
Feature Flags
B
Long-Lived Release Branches
Drill This: Your Pick First
The Better Pick
Option A
Feature Flags
Merge the redesign to trunk daily behind a flag, so it integrates continuously and launches with a config change once finance approves. A six-week branch shared by three teams drifts from a trunk that sixty people are changing, and the final merge becomes its own project with its own bugs. Flags also allow a staged rollout and an instant off switch.
When the Other One Wins
Long-Lived Release Branches
When customers install your software and you patch old versions for years, such as on-prem releases or firmware, long-lived release branches are the standard way to maintain each supported version.