FEATURE FLAGS

Product features under control

WHAT

WHY

SOURCES

EXAMPLE

TOOLING

WHAT

  • A technical solution to deliver value in an agile way, separating features from deploy.
  • It's not a marketing tool
  • It's not only for A/B testing

new features

toggles

users

WHY

Agile delivery

Avoid long-lived branches

Increase features integration

origin

feature

origin

feature

WHY

10%

90%

Progressive rollout - Early access

Canary releases - Scheduled launch

WHY

30%

70%

Progressive rollout - Early access

Canary releases - Scheduled launch

WHY

60%

40%

Progressive rollout - Early access

Canary releases - Scheduled launch

WHY

100%

0%

Progressive rollout - Early access

Canary releases - Scheduled launch

WHY

Dev shorcuts

mock payments

skip wizard steps

auto fill forms

WHY

Damage control - Kill switch

WHY

Permission toggles

LATAM

EUR

WHY

Permission toggles

@a.io

@b.io

WHY

Application feature status source of truth

dev

prod

WHY

  • Agile delivery
  • Avoid long-lived branches
  • increase features integration

SOURCES

SOURCES

Query params

Cookies

Custom Event

Remote Flagger

Config file

SOURCES - Query params

Manual based

Top most priority

?featureFlags=exp_baz,dev_foo=false,ops_foo

SOURCES - Cookies

Non authenticated context

Consistent flag behavior

SOURCES - Cookies

Non authenticated context

Consistent flag behavior

featureFlags=exp_baz

SOURCES - Custom Event

Integration for external applications

SOURCES - Custom Event

Integration for external applications

SOURCES - Remote Flagger

Default source of truth

Feature control for team (DEVS + PO)

Log audit

SOURCES - Config file

Default value defined at deploy time as app config

EXAMPLE

TOOLING

Build (Open-source)

 

Pay

 

DEMO

https://featureflags.io/
https://martinfowler.com/articles/feature-toggles.html

REFERENCES

Q&A

anthanh@etereo.io