Feature Flags: When They Help and When They Hurt

When Feature Flags Do and Don't Make Sense

Feature Flags: When They Help and When They Hurt

Feature flags are powerful but come with real costs. Rajiv Prab shares his experience from Amazon and other teams, explaining when they shine—A/B testing, complex epics, and uncontrollable deployments—and when they become a liability. He warns that overusing flags adds complexity, creates tech debt, and can lead to bugs, citing the Knight Capital disaster as a cautionary tale. The key is to use them judiciously, not as a substitute for solid testing and rollback practices.

A flag that hasn’t been set to off in a year can be masking a major regression.
  1. MaulingMonkey

    Feature flags are great. Working on a crash / memory corruption in an optional subsystem? Just disable the subsystem to unblock coworkers on the same branch while you track down the cause.

    Feature flags are terrible. Working on a crash / memory corruption in an optional subsystem? You disabled it previously for your local build, and you'll lose hours failing to repro despite QA giving excellent repro steps.

    (For my own gamedev background, I learned to mute audio by setting volume to 0 instead of by disabling the audio subsystem.)

  2. joezydeco

    "At Google, our philosophy is that “rollbacks are normal.” When an error is found or reasonably suspected in a new release, the releasing team rolls back first and investigates the problem second"

    Well this all makes sense now. My enterprise laid off most of our QA team and I see a constant stream of rollback announcements. Who needs regression testing anymore?

  3. classictraffic

    I agree with the entire premise but I do think the cost argument is a bit overblown. Adding "unnecessary" feature flags isn't really that big of a deal imo, feature flags are cheap to add and maintain. Also sometimes flipping feature flags can be faster than doing a rollback, especially if multiple systems are involved.

    I think the true cost is that feature flags can cause code bloat and readability issues, since engineers typically aren't great about cleaning up feature flags after things have been rolled out. I think that's an easily solvable problem that doesn't really necessitate a scarcity mindset of "just use less feature flags / only when necessary" though. LaunchDarkly makes it pretty easy to track feature flag usage and remind people to clean up old ones.

More from this day

2026-08-09