Best practices for coding with feature flags


Code is a fragile, temperamental material. Engineers don’t just need a program to function correctly; it should also be easy to read and easy to change. These requirements often conflict with each other, and those conflicts cause much of the difficulty inherent in software engineering.

LaunchDarkly’s core message is that feature flags significantly reduce the risk and pain of working with code. But that reduction doesn’t happen automatically. If used incorrectly, flags may add complexity and fragility to your codebase.

To help developers use flags more effectively, we’ve written a short best practice guide: Improving flag usage in code. It features tips for:

  • designing component interfaces for flag-evaluating code
  • easier flag removal with fewer merge conflicts
  • defending against consistency problems

The Guides section of our Documentation site is a growing collection of best practices from our Developer Advocates. It includes recommendations for creating flags, deployment and release strategies, and reducing technical debt. There are also tutorials that will walk you through different uses of LaunchDarkly, such as targeting and experimentation.

We’re constantly updating and expanding our Guides. If you’re looking for the best way to use LaunchDarkly in your app, check them out.

Yoz Grahame
Yoz Grahame is a Developer Advocate for LaunchDarkly because he wants software engineering to be far less painful than it is now. Previous involvements include: the US Government (in the 18F group), Compaas, Linden Lab, British e-democracy projects WriteToThem and TheyWorkForYou, and Douglas Adams’ startup The Digital Village. On the amateur wrestling circuit he goes by the alias “Dr. Henry Metzger.”