Sweaty Imposter

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.