O’Reilly: Managing Feature Flags

Developers have long used configuration options or flags to control what their software programs do at runtime. Likewise, feature flags are a modern application of this concept, with a focus on accelerating software delivery. Therefore, fast-moving software teams used flags a decade ago to work on half-finished code without disrupting their users. Now, it’s standard practice for product delivery teams to use flags to deliver functionality in small increments—while learning from their users.

In this short book, you’ll learn how teams can successfully apply feature flags—aka toggles, flips, gates, or switches—to accelerate software delivery. You’ll learn about different types of feature flagging, and explore critical code-level techniques to keep your feature flagging code manageable. You’ll also learn how to keep the number of flags in your codebase to a manageable level.

  • Use flags in feature management to determine which users are exposed to a given feature
  • Examine several cases involving feature flags, including continuous delivery and testing in production
  • Learn techniques to ensure that feature-flagged code is readable, maintainable, and testable
  • Explore the trends and practices that are driving the convergence of continuous delivery and experimentation