7

Part of an answer to my (meta) question "Rename feature-flags to feature-toggles?" is like so:

... There's could be valid questions about feature flags (formalism, documentation about them, process of definition), which may not be related to feature toggles but to feature ramp up which carry a less binary meaning. ...

My question: In the context of DevOps, what's the difference between feature flags and feature toggles (if any)?

PS: Looking at https://martinfowler.com/articles/feature-toggles.html , I don't get the difference between such flags and toggles.

030
  • 13,383
  • 17
  • 76
  • 178
Pierre.Vriens
  • 7,225
  • 14
  • 39
  • 84

2 Answers2

8

If you take it on an objective only point of view, there's no difference.

But feature toggles carry a heavy binary "on/off" for the whole application idea, whereas feature flags are a more relaxed term which can encompass ramp up testing more easily.

When you launch a ramp up testing and turn the new feature on for 10% of your traffic or user base and move up to 20% the next week and so on, the toggle term become counter productive. Some people (managers/commercials/some client support people) may not really understand only a part of the clients get the new feature.

Ramp up can be defined as (quote from wikipedia on software testing technology):

The usual sequence is to ramp up the load: to start with a few virtual users and increase the number over time to a predetermined maximum. The test result shows how the performance varies with the load, given as number of users vs. response time.

I like etsy's feature API (even is not maintained) as source for explanation, it's an easy to undertand framework which has a good readme around feature flags and their uses.

So the difference can be done in the usage of the terms to just help avoiding confusion on what happens on the application.

Tensibai
  • 11,416
  • 2
  • 37
  • 63
3

I would add that a toggle is on/off (show ads on the site, don't show ads) and perhaps augmented by a flag like (West Coast gets ads from provider A, East Coast gets ads from provider B). Toggling turns off all ads. A feature flag might be able to switch from provider A to provider C.

I also think a key part is deciding how your switches and settings work - do you have to roll out a new build? or can your control tower determine east coast/west coast and answer "which provider" all on the fly with an easy, almost foolproof interface.