Managing Toggle Configuration
Togle refers to switching between options, settings and functions. It’s an important feature for most computing and is present in a wide variety of software applications from email clients to web browsers, social media tools to desktop games.
Toggling is a powerful tool for testing and debugging a software system because it allows us to run an entire codebase against various combinations of toggle configuration, exposing the impact of different code paths on a given set of users. It also helps us to make data-driven optimizations and is a key part of many multivariate or A/B testing efforts.
Managing Toggle Configuration
One of the most common ways that teams manage toggle configuration is through static files. This works well for toggles that are fairly simple and only have a small number of configuration states, but can become quite cumbersome when the number of toggles and their states becomes large enough to warrant a centralized system.
The main downside of this approach is that re-configuring a toggle requires either re-deploying an artifact or restarting the process being tested. This is a significant drain on time and resources and can have an adverse effect on the cycle times of your validation processes.
In some organizations toggle configuration is moved into a centralized store that is accessible by system operators, testers and product managers. This often comes with an admin UI which lets them manage toggle configuration and see the state of their system.