Managing Feature Toggles
Feature toggles are a powerful tool, but they must be managed carefully. Incorrect use of this mechanism can lead to confusion and chaos in a shared environment. Keeping a set of guidelines in mind will ensure that you can take full advantage of this capability without risking the stability of your system.
A toggle is a switch that can be in one of two states: on or off. It can also be used to represent different settings or options in an application. A common example is a toggle that allows you to video chat with two friends at once.
Feature Toggles can be anything from a simple “if statement” to complex decision trees that act upon many different variables. Various conditions, such as fitness test results from other features in the codebase or a parameter provided by config management software, can be used to determine which way a toggle flips.
It is a best practice to name your toggles with meaningful information. This helps anyone on your team quickly identify what the feature does. It also provides context when a toggle is called in error messages and gives people clues about who wrote the feature, how long it’s been sitting in production, and what its effect might be.
Ideally, you will limit the scope of each toggle. It can be tempting to create a large series of toggles for a new feature, but this will only confuse other teams and cause headaches in the long run when those toggles need to be deactivated. Moreover, the more toggles you have active at any given time, the harder it is to verify your releases. For this reason, savvy teams tend to keep their toggle inventory at a minimum and be proactive in removing them from the codebase when they are no longer needed.