January 9, 2020

Feature flags as kill switch

For those who are not familiar with App development and Tech stuff, must be wondering “what is a feature flag?” or “what is a kill switch?”.

We will start off by explaining these topics as simply as possible and gradually dive into more details from there.

In simple terms, a feature flag is nothing but an if statement related to some new feature or functionality around your app and a kill switch is nothing but a switch mostly used in emergency cases that require you to take immediate action or shut down any process. With the help of Kill Switch, companies and industries terminate all tasks faster in case of a crisis. A red color switch through which we can shut down everything in a company or in a particular manufacturing area might ring a bell in your mind about what a kill switch is.

There is of course  a whole lot more to these topics. Let’s dive into a bit more detail .

Feature flags

Sometimes you might have come across a new feature announcement in an app and you, in excitement, updated the app to play around with the new app, but find yourself disappointed as the feature is not there, even after updating the app. Let us give you an example, you might have heard about WhatsApp UPI Payment in India but it is still in testing mode and the feature is available for a certain group of users.  Yes, the companies do that and this is also a kind of feature flag where the features are provided only to a certain group. Once the feature works successfully, it is made available to other users.

A feature flag is a way to change your software’s functionality without changing and re-deploying your code. Feature flags are part of a much larger important movement in software development. Deploying a new code has technical risks of a software crash or bugs but deploying a feature has user-dependent risks. Maybe you thought the feature will be a big hit but once you deploy it, user reviews were not as you expected. Feature flags enable you to deal with these two risks individually. 

Technical teams set feature flags for the new features which they want to be integrated with in their stable app. Once that version with a feature flag is installed in the user's device, companies have the ability to make the feature available until testing or integration. And if they think that the feature is not working properly, they can disable it for the users. All of these things are handled in the background with the help of feature flags. Feature flags provide control on your newly released features, if you want to make it available for the users or not, make it available for certain users only, make it available to only a few teams of your app development department, All these things can be done using a feature flag. It offers you the facility that you can turn it on or off for the users. You can put it on the test mode or development mode. It can reduce the cost and time of development. With the help of feature flags, you do not need permission from the App Store or Google Play Store to provide an update to your App. Top teams like Facebook, Uber, Lyft, Twitter, and many others like SaaS-based platforms find feature flags very valuable as with the help of it your product, marketing, and engineering teams will be able to do way more than ever before.

Feature flags can be used for various purposes. The one use case that we are going to focus on in this blog is kill switch.

Feature flags use case: kill switch

You can vary with the value of % of users for whom a specific feature is available. This use case can be used for multivariate testing or A/B testing. But we are more focused on the use case where you change that value to 0%. This is the case when feature flags can be used as a kill switch. In app development, the main reason behind using kill switch is to shut down a feature or a program that  is creating a bug in the app. If not shut down, the feature might also be the reason for app crash which can be a big reason for an increase in the number of uninstalls of the app. In this case, If you are thinking of providing users the previous app without a new feature that  started showing bugs then you need to release a new update for the application. This is because mobile apps are installed on the user’s smartphone so the code needs to be updated on every application. This can take a huge time from your tech team every time a new feature is introduced thus reducing the productivity of your employees and also increases the  risk of customer attrition. 

This is where the kill switch comes to rescue. It is quite necessary to add a kill switch program for your newly added features in your mobile app. With Kill Switch, if any kind of  bug starts propagating in the app then you have the ability to turn off that feature in the app without having to affect other features and functionalities of the app. 

Various test cases are defined for applications using feature flags but if in a certain condition all the test cases fail, the feature flags work like a kill switch and shutdown trouble-causing features. Apart from disaster management feature flags are also useful for sun-setting and then decommissioning features as well. 

With the kill switch, even product and marketing teams can participate in feature testing and releases without relying heavily on engineering support.

How we at Xoxoday used feature flags as a kill switch 

Xoxoday is a SaaS Commerce Company that helps companies build a happy and engaged workforce using 3 web and application-based  products - Empuls, Plum and Compass. Our Tech team came up with a unique solution to use kill switch which resulted in increased productivity and prevented any crisis during new feature launch. The latest boom we did in our Mobile Applications was the implementation of Remote Configuration. Now we can manage each and every module of the application in a Kill Switch manner sitting in any corner of the world for enabling or disabling a feature for the users without even going LIVE and disturbing the end-users to update the application frequently.

Xoxoday is also coming up with a book on this topic written by our VP Engineering Vivek Parihar. Do watch out for it if you wish to dive deeper into feature flags and kill switch.

Vivek Parihar

Vivek Parihar is a Serial Entrepreneur(Co-founded 2 startups), Author, Mentor at Nasscom, an experienced business builder & people leader. VP of Engineering at Xoxoday.com, building the product for a happy workforce using innovative tech (Blockchain & AI)