Managing Feature Toggles

A toggle is a switch that has two positions, On and Off. You can find them in hardware and software — for example the caps lock key on your keyboard or the menu options on your laptop. The word is also a verb meaning to switch between two functions, like toggling between video chats with different people at the same time.

The first step in managing Feature Toggles is to identify the ones that are in play. This can be as simple as making a list of all the active toggles and their state within the product. This is an especially useful exercise for teams that have made significant changes to their UI.

Once a team has identified a number of toggles it’s time to start planning how they will manage them. Savvy teams view their toggle inventory as a carrying cost and seek to keep it as low as possible. This means they should always be proactive about removing toggles that are no longer in use. Many teams have a policy of adding a toggle removal task onto the backlog for every new toggle added. Others have implemented “expiration dates” for their toggles which will fail a test (or even refuse to run the application) once that date has passed.

Once a team has moved to managing their toggle configuration via static files it’s important that they are diligent about checking the state of each toggle on a regular basis. This ensures that existing or legacy behavior is enabled when the toggle is flipped On and new or future functionality is disabled when the toggle is flipped Off. It’s also a good idea to perform some tests with all toggles flipped On to ensure that there are no unexpected regressions introduced by a change to the codebase.