What are feature flags?

Table of Contents

What are feature flags?

A feature flag is a software development process used to enable or disable functionality remotely without deploying code. New features can be deployed without making them visible to users. Feature flags help decouple deployment from release letting you manage the full lifecycle of a feature.

Why use feature flags?

The Accelerate: State of DevOps Report outlines the characteristics of high performing organizations. Compared to low performing teams, high performing teams deploy code 46 times more frequently with a lead time from commit to deploy 2,555 times faster. Not only are they deploying code faster, they fail less frequently. High-performing teams have a lower change failure rate and recover from incidents faster. Part of what makes this possible is having the right systems and processes in place to support your teams.

Creating a CI/CD pipeline is necessary to increase the velocity of code deployments. CI/CD is about getting software delivered to end-users faster. To move quickly, you need safety measures in place. Feature flags are one of those safety measures. With feature flags, you can turn off a feature that performs unexpectedly in production without rolling back the code.

Feature flags also assist with teams using trunk-based development. Trunk-based development is when developers commit code to a single branch referred to as a trunk (or master) rather than long-lived feature or development branches. A single branch of code helps to eliminate merge conflicts, broken builds and results in a cleaner codebase. Instead of using a feature branch, use a flag to gate features not ready for public viewing.

Who uses feature flags?

  • Product Management to manage beta programs.
  • Product managment wanting to do a gradual rollout of a new feature.
  • Marketing to run A/B tests.
  • Developers to enable/disable features that are broken in production.
  • etc…

How to implement feature flags?

A feature flag is a software development process used to enable or disable functionality remotely without deploying code. New features can be deployed without making them visible to users. Feature flags help decouple deployment from release letting you manage the full lifecycle of a feature.

Why use Flagmantic for feature flags?

Flagmantic offers a simple, declarative way to define feature flags with code. This enables the use of version control providers, such as Github, to keep the entire history of your companies feature flag use, providing an audit record of all changes out of the box, as well as very powerful workflows for programatically constructing, toggling, and querying feature flags.

If that interests you, start a free trial today!