What is feature toggling?
The Technical Introduction
Martin Fowler states:
“Feature Toggling is a set of patterns which can help a team to deliver new functionality to users rapidly but safely.
Feature Toggles (often also referred to as Feature Flags) are a powerful technique, allowing teams to modify system behavior without changing code. They fall into various usage categories, and it's important to take that categorization into account when implementing and managing toggles. Toggles introduce complexity. We can keep that complexity in check by using smart toggle implementation practices and appropriate tools to manage our toggle configuration, but we should also aim to constrain the number of toggles in our system”.
This is a good introduction from a technical standpoint, and Martin Fowler did a great job diving more in depth into the architectural patterns, use cases, and technical implementation details here https://martinfowler.com/articles/feature-toggles.html. But, how do you explain feature toggling to a business from a revenue generation standpoint? I will be discussing feature toggling from the business aspect in this blog.
A Rudimentary Explanation
There are many good analogies for feature toggling out there, but I’ll use the US commercial flight airfare classes for a basic explanation in layman’s terms. Most, if not all US commercial flights have coach seats, coach seats w/ upgrades, and first-class seats. Not all classes are the same, but all classes will get a paid passenger from point a to point b. The differences are in the features/experiences of each class from onboarding to off boarding the plane.
Basic - Coach Class Features
A coach class ticket is usually the lowest cost fare and comes with basic features. This is a value-fare option for customers who require less flexibility/features. Every passenger will onboard the plane, but for those who purchased coach class tickets – this usually means the last to onboard. A coach class fare will come with a seat, but seat assignment might not be known until after check-in. In exchange for the lower cost fare, there will be restrictions on amenities. This class will have access to overhead bins. Coach class seats are not known for a spacious legroom, but at least the lavatories are available to all classes.
Standard – Coach w/ Upgraded Features
This class includes the basic features from coach but will have upgraded features. With this class the passenger will have priority boarding…which means onboarding sooner – upgraded feature. This class will enjoy a spacious seat i.e. extra inches in regards to legroom – enhanced feature. Depending on the airline, this class would also have the upgraded feature of dedicated overhead bin space just for the passenger’s items. Of course, with these upgraded features, the airfare will cost more.
Premium – First Class Features
First Class fares will cost the most, but the upgraded features are the best the airline offers. With this class, the passengers will be able to onboard first. This class gets added additional legroom…more inches than the prior class – enhanced feature. The seats can recline more than coach seats and will have wider seatback screen – upgraded feature. Usually, all amenities/features are complimentary…from alcoholic beverages to premium meal selections – additional features. With first class, the passenger gets expedited baggage service, which means the passengers in this class will get there checked luggage first – upgraded feature.
From a business aspect, airlines have been using feature toggling in their business model long before SaaS and mobile application products were even introduced. The airlines grouped a set of features for coach, coach plus, and first class, and those features are toggled based on the passenger’s ticket class. Of course, the airlines are fine tuning the features for premium classes as they compete with other airlines for consumers. The airlines business model as it relates to feature toggling is a very simple example; however, in regards to software products, the technical implementation of feature toggling can get very complex as there are many use cases for feature toggling and many patterns to choose from…especially as the business and system/s grows.
But, before you can start discussing how to incorporate feature toggling in your application…if it needs it…you must first be able to explain it to your non-technical stakeholders in a way that adds value to the business. Hope this analogy helps with that.