Software EngineeringDevelopment Practices

Feature Flag

Overview

Direct Answer

A feature flag is a conditional mechanism embedded in source code that enables or disables functionality at runtime without code deployment or server restart. The technique decouples feature release cycles from deployment cycles, allowing controlled rollout of incomplete or experimental features to subsets of users.

How It Works

Feature flags operate through boolean conditions evaluated during code execution, typically referencing centralised configuration services or databases rather than hardcoded values. When a user request triggers flagged code, the system checks the flag's state—determined by user segment, environment, or temporal rules—and executes or skips the associated feature branch accordingly.

Why It Matters

Organisations benefit from reduced deployment risk through gradual rollout, faster feedback cycles via canary releases, and the ability to disable problematic features without emergency deployments. This approach accelerates time-to-market whilst enabling A/B testing and progressive feature validation with production traffic.

Common Applications

Feature flags are widely deployed in e-commerce platforms for launching payment features to geographies, in software-as-a-service products for beta releases to customer cohorts, and in mobile applications for server-side control of client behaviour. Teams use them to gate database migrations, experimental algorithms, and UI redesigns.

Key Considerations

Technical debt accumulates if flags persist beyond their lifecycle; organisations must establish protocols for flag removal and comprehensive testing of flag combinations. Database overhead and increased code complexity require careful architectural design to avoid flag proliferation.

More in Software Engineering