A toggle is a control that either allows a thing to be done or prevents it from being done. A toggle is a very simple type of feature flag but one that can be used in some interesting ways.
When a team uses a toggle they must be careful to use clear and descriptive labels. When a toggle is labelled correctly it should be very easy to understand what will happen when it is flipped On and what state it is in right now. This is an important consideration when a toggle is being utilised in a way that it will be exposed to users as part of a product release.
Savvy teams view the inventory of Feature Toggles in their codebase as having a carrying cost and so will be proactive about removing any toggles that are no longer being used. This will typically involve adding a toggle removal task to the team’s backlog whenever someone decides they no longer need a particular toggle.
Historically there have been various approaches to managing the configuration of toggles ranging from the simple but less dynamic through to some very complex and sophisticated approaches. For most teams this will involve some form of centralized management such as an existing application DB or perhaps the build-out of some sort of admin UI.
When it comes to performing multivariate or A/B testing a toggle can be extremely useful. The toggle can be set to consistently send a cohort of users down one codepath or another and the results can be compared at runtime to see which codepath has the most traction.