The use of feature flags in software development has given developers finer control over feature deployments than ever before, but many people already using them often still aren’t getting all the benefits they offer. Let’s look at some of the ways feature flags can make software rollouts run smoother than ever.
1. Perform a Controlled Rollout of New Features.
Instead of bundling multiple new features into periodic major releases, use feature flags (or rollout flags) to perform a controlled rollout and enable new features at an easier rate for you to manage and your users to digest.
2. Build a More Responsive Feedback Loop.
The quick turnaround of a CI/CD (Continuous Integration/Continuous Delivery) model means that user feedback can be quickly processed to measure the success of a new feature and define future software development goals.
3. Do Your Testing in Production.
Since feature flags allow for continuous deployment of code directly into production, you can perform usability testing in production as well by only enabling new features to developers and testers initially. Verify new code in production before a single customer is impacted by the change.
4. Use Feature Flags as a Killswitch.
Feature flags provide an easy way to manage problematic features that need to be disabled for maintenance. Once a problem is detected, disable the feature flag associated with the feature until the issue has been corrected.
5. Make Split Testing Easier.
Feature flags simplify the process of split testing, also known as A/B testing or feature experimentation. Here multiple versions of a feature are deployed to production and each version is enabling for a different group of users. Then, the results are compared and a winner is declared.
6. Allow Users to Opt In or Out of a New Interface.
You may think your new user dashboard is terrific, but some users may still prefer the classic version. Feature flags allow users to manually choose which they would rather use, and this is also handy if multivariate testing provides inconclusive results.
7. Automate When Possible.
Feature flags allow your application to automatically toggle features in response to changes in system performance or other predefined triggers without any human involvement. For example, when peak load occurs, you might turn off a recommendation engine or an inventory check before allowing an item to be put in the cart.
8. Sunset Outdated Features.
When older features have outlived their usefulness or aren’t being used enough to justify keeping them, feature flags provide a quick and easy way to disable them.
9. Separate Code Deployment and Software Rollout.
Code deployment and software rollout don’t need to occur simultaneously anymore. Feature flags allow you to deploy new features to production and choose when to enable them.
10. Push Unfinished Code without Worry.
Don’t fret when there isn’t enough time to finish coding before deployment: as long as the feature flag associated with the unfinished code is disabled, it won’t cause any problems.
11. Increase the Frequency of Code Deployment.
Users don’t have to wait months or longer for new features anymore, because feature flags allow for the continuous deployment of features as soon as they’re ready for use.
12. Deploy Regional Versions of Features.
If your users have different needs in different geographic regions (or any other demographic-specific need), feature flags can be used to only enable the version for users in their target region.
13. Create Tiered Feature Sets for Different Classes of Users.
If your application uses a subscription model, feature flags can be used to only enable more advanced features for users who have paid to access them.
14. Make Migrations Run Smoother.
Don’t push code changes at the same moment you’re ready to switch over to a new database or web service: write the code, deploy and test it in production ahead of time, and use feature flags to cut over customer traffic the moment you’re ready.
15. Centralize Visibility and Control.
Feature flags make the development and rollout of new features easier than ever. Sign up for a free trial with Split, and see for yourself how their feature flag tools allow you to take advantage of benefits like simpler split testing, continuous integration and continuous delivery, testing in production, and more.
Stay up to date
Don’t miss out! Subscribe to our digest to get the latest about feature flags, continuous delivery, experimentation, and more.
In this tutorial you’re going to create a CoffeeBot app. The app will have a Vue.js client and a Spring Boot resource server, bootstrapped using JHipster.
At Split, we “dogfood” our own product in so many ways. Our engineering and product teams are using Split nearly every day. It’s how we make Split better.