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

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

<p>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.</p>

<p>Ramp up can be defined as (quote from wikipedia on software testing <a href="https://en.wikipedia.org/wiki/Software_performance_testing#Technology" rel="noreferrer">technology</a>):</p>

<blockquote>
  <p>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.</p>
</blockquote>

<p>I like etsy's <a href="https://github.com/etsy/feature" rel="noreferrer">feature</a> 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.</p>

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

CC BY-SA 3.0
2017-03-06T11:18:40.913Z
OK, that helps already. Would you mind also adding some explanation about "ramp up" testing (or a link or something). Just to avoid I reach my daily question limit too fast ...
Pierre.Vriens
CC BY-SA 3.0
2017-03-06T11:20:34.913Z
Give  me a second, I'll do this
Tensibai
CC BY-SA 3.0
2017-03-06T11:25:32.387Z
Relax, even though your "second" already expired, fine for me "some day" also ... If you can/want, maybe some basic sample could help to further improve your answer also ...
Pierre.Vriens
CC BY-SA 3.0
2017-03-06T11:28:16.753Z
@Pierre.Vriens done ;) I don't think dummy examples would be really relevant, code is not neede here IMHO.
Tensibai
CC BY-SA 3.0
2017-03-06T11:15:36.260Z
2017-03-06T11:32:43.990Z
2017-03-06T11:32:43.990Z
Tensibai
<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2017-03-07T08:03:02.787Z
Interresting addition and examples to explain the concepts! The "control tower" seems like "from a distance", no? If so, then I think another variation is when at runtime the software does some checking about some prereqs (eg the release of the OS it is running in), to yes/no (= toggle) make something happen. Am I close? If so would you mind addding this also to your answer somehow?
Pierre.Vriens
CC BY-SA 3.0
2017-03-08T04:48:08.047Z
Probably worth commenting on but also probably worth its own question.  If you ask something like "How do I control my feature settings so I can incrementally roll out my settings in a controlled manner?" I can offer my opinion.  Too long for 500 characters and would probably get lost in the shuffle here anyway.  There are also likely people with different/better opinions than mine.
No Refunds No Returns
CC BY-SA 3.0
2017-03-08T05:01:20.960Z
http://devops.stackexchange.com/questions/162/how-to-use-feature-flag-toggles/166#166 is the question where this could be discussed.
No Refunds No Returns
CC BY-SA 3.0
2017-03-07T04:22:22.877Z
2017-03-07T04:22:22.877Z
No Refunds No Returns
<p>Part of an answer to my (meta) question "<a href="http://meta.devops.stackexchange.com/q/73/40">Rename feature-flags to feature-toggles?</a>" is like so:</p>

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

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

<p>PS: Looking at <a href="https://martinfowler.com/articles/feature-toggles.html" rel="noreferrer">https://martinfowler.com/articles/feature-toggles.html</a> , I don't get the difference between such flags and toggles.</p>

<terminology><feature-flags><feature-toggles>
What is the difference between feature flags and feature toggles (if any)?
Pierre.Vriens
# What is the difference between feature flags and feature toggles (if any)?

(Asked by: username_0 on 2017-03-06)

Part of an answer to my (meta) question "[Rename feature-flags to feature-toggles?](http://meta.devops.stackexchange.com/q/73/40)" 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.

**Tags:** terminology, feature-flags, feature-toggles


---

## 2 answers

### Answer by username_1 on 2017-03-06. Score: 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](https://en.wikipedia.org/wiki/Software_performance_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](https://github.com/etsy/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.

> **Comments:**
> **username_0**: OK, that helps already. Would you mind also adding some explanation about "ramp up" testing (or a link or something). Just to avoid I reach my daily question limit too fast ...  
> **username_1**: Give  me a second, I'll do this  
> **username_0**: Relax, even though your "second" already expired, fine for me "some day" also ... If you can/want, maybe some basic sample could help to further improve your answer also ...  
> **username_1**: @username_0 done ;) I don't think dummy examples would be really relevant, code is not neede here IMHO.  

---

### Answer by username_2 on 2017-03-07. Score: 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.

> **Comments:**
> **username_0**: Interresting addition and examples to explain the concepts! The "control tower" seems like "from a distance", no? If so, then I think another variation is when at runtime the software does some checking about some prereqs (eg the release of the OS it is running in), to yes/no (= toggle) make something happen. Am I close? If so would you mind addding this also to your answer somehow?  
> **username_2**: Probably worth commenting on but also probably worth its own question.  If you ask something like "How do I control my feature settings so I can incrementally roll out my settings in a controlled manner?" I can offer my opinion.  Too long for 500 characters and would probably get lost in the shuffle here anyway.  There are also likely people with different/better opinions than mine.  
> **username_2**: http://devops.stackexchange.com/questions/162/how-to-use-feature-flag-toggles/166#166 is the question where this could be discussed.  

---

