What is a Toggle?
Toggle is a term commonly used in technology, computing, programming, and user interfaces to describe a switch that can be toggled between two states. It can also refer to a software setting or a feature flag.
Savvy teams view their Feature Toggle inventory as a type of inventory that comes with a carrying cost, and they strive to keep that number low by removing unneeded toggles regularly. To that end some teams have rules of adding a task to the backlog whenever a Release Toggle is first introduced and other teams put “expiration dates” on their toggles, which will cause tests to fail or even the application to crash if they are still in production after the date has passed.
For these reasons, toggles should be designed to have a clear and simple state indication. For example, if a toggle is a button or an icon with a circle it should be clearly indicated as an on or off button. The color of the button should also be indicated by a clear label, ideally with a standard visual design. This helps users understand what the current state is and avoids confusion with other elements such as checkboxes or radio buttons which don’t rely on color to convey meaning.
When a toggle is implemented as code comments in a codebase the configuration of that toggle cannot be dynamically re-configured. A more sophisticated approach is to use a preprocessor’s #ifdef feature, but that only works in very limited situations and is not suitable for Ops Toggles where a pattern of re-configuration is required over time. A better solution is to use a real distributed configuration system such as Kameleoon for feature flags which makes it much easier for developers, testers and product managers to manage the current set of toggles and to remove obsolete ones.