A toggle switch is a simple user interface component that lets users change a setting between two opposing states. For example, a video chat app might offer the option to toggle between portrait and landscape views. Often, toggle switches are used to update preferences or settings that can’t be changed easily without losing data.
Toggles are useful tools to support development teams as they write new features. They can be based on a wide variety of conditions, such as fitness test results from other features in the codebase, a setting in your feature management software or even an environment variable provided by a config file.
Savvy teams use Feature Toggles as sparingly as possible and are proactive about pruning them when they have run their course. Toggle inventory comes with a carrying cost and it is important to keep that overhead low. Many teams put a task on their backlog or build the process into their management platform to remove an expired toggle.
Managing toggle configuration via static files becomes fiddly once the scale of deployment exceeds a few hundred servers. This approach can have a detrimental effect on cycle time and the all-important feedback loop that CI/CD provides. Ideally, a centralized config system is built out which allows for dynamic in-memory re-configuration of Feature Toggles. The best options are based on existing application DBs or the build-out of some form of admin UI. This makes it easier for developers, testers and product managers to manage feature flags.