Feature Toggling Explained with Qandidate’s Toggle
A frequently used development workflow in version control systems is feature branching. The idea is that we develop new features in branches other than the master one. After a feature is tested and ready to be released, it is merged back into the master branch or a release branch for deployment. This approach helps us develop new features without disturbing the main code base.
However, developing a feature branch might take much longer than a normal release cycle. This will make merging the branch more difficult since we would have to deal with possible merge, logic, or dependency conflicts.
One of the techniques widely used as an alternative to feature branching is feature toggling. Feature toggles (or feature flippers) act like on/off switches. They let us continue development on the master branch while not exposing the partially developed and risky features to the public. We can make sure our features remain fully compatible with the existing functionality in our application.
We can temporarily hide a partially built or risky feature (release toggles) or limit finished stable features to a certain group of users (business toggles). These two types of toggles are implemented in the same way but for different purposes. With release toggles, we hide our unfinished features from users except for the development and QA team. These toggles retire when the feature becomes stable. They are usually managed at the code level.
By using business toggles, we can make a feature available to a certain group of users, or we can completely disable it due to some conditions – think webshop sale, Xmas theme on your site, etc. They often require an interface like a dashboard to view the status of the existing toggles with the ability to switch them off and on.
Feature toggling is used by many large websites including Flickr, Facebook, Disqus, Etsy, Reddit, Gmail and Netflix.
Martin Fowler has a good write up on feature toggling, covering the pros and cons and how to use them the right way.
Continue reading %Feature Toggling Explained with Qandidate’s Toggle%