Toggle is a small piece of metal or plastic that is sewn into something and pushed through a loop or eye in order to fasten it. On computers and some other machines it is also used to switch between functions. Toggle is a verb meaning to switch or alternate between two things. When designing user interfaces it is important to use toggles sparingly. When used properly they can improve the users experience by minimizing the need for scrolling and delivering immediate results. When used inappropriately they can increase the users frustration and confuse them.
Savvy teams view their Feature Toggle inventory as a kind of stock that comes with a carrying cost and seek to keep it low. To this end they typically test their releases with all Feature Toggles flipped On in order to minimize the chance of a regression caused by changing a toggle configuration in a future release.
Some teams go so far as to put “expiration dates” on their toggles so that they automatically fail a release if the toggle has not been flipped back On in time for it to be reintroduced. Regardless of which approach a team takes it is important that they manage their toggles carefully and that they be as dynamic as possible.
There are a variety of ways to manage Toggle Configuration ranging from very simple approaches that utilize commenting and preprocessor features through to centralized systems that allow for highly dynamic re-configuration of specific service instances. For a given application a team may choose the one that makes the most sense for them.