Feature Flags With Nonfig In Software Configurations
What are Feature Flags?
If you don’t like unit testing your product, most likely your customers won’t like to test it either.
Either you are tweaking your product or your workspace software, you must test it to assure that the end-user is satisfied. Feature flags are all about testing software feature before it is completed and ready to release.
Sounds similar? Yes! It is Total Quality Management (TQM) for your software, where you identify and rectify problems in your software at every step.
Feature flags are a powerful technique allowing developers to modify system behavior without releasing or changing the code. Feature flags provide an alternative to maintaining multiple branches in source code, for example during the development process a developer can enable the feature for testing and disable it for others. How? Simply by turning the flags “on” or “off”. If the flag is ‘on’, a new code is executed and if the flag is ‘off’ the code is skipped.
It helps the developer to deliver new functionality to users rapidly and safely. Feature flags are also known as feature switch, feature toggle, and feature flipper. I will be using term feature flags while discussing its benefits:
Benefits of Feature Flags
The majority of businesses use A/B testing to maximize their growth. It is a method to measure effectiveness.
How does it work?
A/B testing is a method of comparing two or more versions of a web-page, mobile application, email, video, call-to-action, or whatever you want to compare. It is an experiment where you show two or more variants to the user. You use analytics to analyze which variant performed better.
By using feature flags:
- You can turn one variant’s flag on and other variant’s flag off.
- In this way, you can compare the results of both variants and apply them according to the results.
- Even If you are a non-technical individual, you can easily use feature flags without releasing any codes to analyze the impacts of variants.
A/B testing has proved beneficial for many organizations such as:
- SAP observed a 32.5% increase in the conversion rate by just changing the color of the CTA button.
- Dell experienced a 300% increase in their conversion rate upon testing the landing page.
Using feature flags you can use an implementing technique of continuous delivery. It is a technique that:
- Is used by many leading software companies in the world to deliver stable and bug-free software.
- Help teams to produce software in a short cycle
- Releases software with great speed and frequency once tested.
- Results in cost-cutting and time saving for firms.
- Can be deployed manually and automatically as well. Automatic deployment is known as Continuous Deployment.
Canary Testing with Feature Flags
All businesses are highly risk-averse. They apply all the possible strategies to mitigate the risks. With Canary testing you can:
- Reduce your risks by limiting the release of your new feature to a limited user base.
- You can start with a smaller percentage and can gradually go for all users.
- If the feature launched is not up to the mark, you can simply roll back by turning off the feature.
- You don’t need to go through the whole role back deployment cycle.
For example, you developed a new algorithm and the algorithm looks good on the exploratory testing so far. However, you know it’s a critical part of your whole deployment. If you let all users use that deployment and something turns out to be wrong, it can be huge trouble for you. Thus, you decide to use Canary testing for it.
Enhanced Control Over Features
One of the major benefits of using feature flags is you can configure your system without making disruptive changes in live code. A smaller change in code or a release of small code can affect your perfectly working codes.
Feature Flags facilitates in the following ways:
- Developers can work with phenomenal branching.
- Your team can work with their copies of codes and can merge all changes easily.
- Work independently on your copies of code and integrate them to the master branch or mainline when done.
- Saves your time as you can work independently on the copies of codes.
- Easy to merge without any divergence.
- Continuous software delivery for the firm.
You can increase and decrease the number of users by using a feature flag by using canary releases. But, what if you roll out a misbehaving feature? Here comes the kill switch to rescue, you can simply turn that feature off and let everything go back to the normal for users. Afterward, you can find out the reason for the misbehaving feature and rectify it.
Many large companies like Netflix, Gmail, Reddit, Flickr, and Apiumhub use feature flags. Moreover, it’s better to keep feature flags short-lived and small in number because too many flags add complexity. Thus, it is important to clean up the feature flags and keep the code base balanced. Feature flags are no doubt an important technique for businesses but there are some other Configuration Management Techniques as well that help businesses become a market leader.