Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}
Refcard #305

Controlling Features With Feature Flags

As a core component of continuous delivery, feature flagging empowers developers to release software faster, more reliably, and with more control. This Refcard provides an overview of the concept, ways to get started with feature flags, and how to manage features at scale.

2,117

Brought to you by

LaunchDarkly
Free .PDF for easy Reference

Written by

Kim Harrison Writer and Editor, LaunchDarkly
Refcard #305

Controlling Features With Feature Flags

As a core component of continuous delivery, feature flagging empowers developers to release software faster, more reliably, and with more control. This Refcard provides an overview of the concept, ways to get started with feature flags, and how to manage features at scale.

2,117
Free .PDF for easy Reference

Written by

Kim Harrison Writer and Editor, LaunchDarkly

Brought to you by

LaunchDarkly
Table of Contents

Why Use Feature Flags?

Section 1

Why Use Feature Flags?

WHAT IS A FEATURE FLAG?

In simple terms, a feature flag is a decision point in your code that can change the behavior of your application. Feature flags — also known as feature toggles — have long been used to trigger "hidden" code or behaviors without having to ship new versions of your software.

A feature flag is like a powerful "if" statement:

if(enableFeature(one.click.checkout, {...})) 
then 
    /*show the one-click checkout feature */ 
else 
    /* show the old feature/ 

A BRIEF HISTORY OF FEATURE FLAGS

Feature flagging is not a new concept. It's a method by which developers wrap a new feature in an if/then statement to gain more control over its release. In the early days of software development, this might have been a command-line argument, an undocumented variable in a configuration file, or a hidden value in a registry.

By wrapping a feature with a flag, it's possible to isolate its effect on the system and to turn that flag on or off independent from a deployment. This effectively separates feature rollout from code deployment. Feature flagging is a core component of continuous delivery that empowers software organizations to release quickly and reliably.

Martin Fowler, Jez Humble, and Facebook's Engineering team are widely credited with introducing the concept of feature flagging (also called feature toggling or feature switching). Within the context of continuous delivery, feature flags provided the foundation for a framework that would allow developers to release software faster and with less risk and more control.

This is a preview of the Controlling Features With Feature Flags Refcard. To read the entire Refcard, please download the PDF from the link above.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}