0%

Book Description

Developers have long used configuration options or flags to control what their software programs do at runtime. Feature flags are a modern application of this concept, focused on accelerating software delivery. Fast-moving software teams used flags a decade ago to work on half-finished code without disrupting their users. Today, it’s become 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 look 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 flags, 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

Table of Contents

  1. Abstract
    1. Managing Feature Flags
  2. 1. Introduction
    1. The Past, Present, and Future of Feature Flagging
      1. Continuous Delivery
      2. Experimentation
      3. What’s Next?
  3. 2. How Are Feature Flags Commonly Used?
    1. A New Carousel
      1. Dynamic Decisions
      2. Release Management
      3. Canary Releases
      4. Experiments
      5. Recap
    2. Use Cases
  4. 3. Succeeding with Feature Flags
    1. The Moving Parts of a Flagging System
      1. Toggle Point
      2. Toggle Router
      3. Toggle Context
      4. Toggle Config
    2. Implementation Techniques
      1. Keep Decision Point Abstracted from Decision Reason
      2. Avoid Multiple Layers of Flags
      3. Retire Features
    3. Testing Flagged Systems
      1. Test Individual Features, Not Combinations
      2. How to Automate Testing?
  5. 4. From Continuous Delivery to Continuous Experimentation
    1. Capabilities Your Flagging System Needs
      1. Statistical Analysis of KPIs
      2. Multivariate Flags
      3. Targeting
      4. Randomized Sampling
      5. Version History
  6. 5. Conclusion
3.141.8.247