Feature flags are a software development technique that allows for individual features within a software product to be instantly turned on and off, even after a given feature has already been rolled out to a live production environment. This technique has proven to be extremely valuable at all stages of the development process, making the implementation of new features easier and more efficient than ever before.
Let’s take a look at how feature flags work, their most popular uses, and the ways in which they’ve been proven to increase overall productivity and company success.
Definition of Feature Flags
Traditionally, the deployment and rollout of new software features had to be done simultaneously, and usually required scheduled system downtime during which the upgrades would be applied. However, the advent of 24-hour cloud services like Facebook and Netflix necessitated the creation of a new method of deploying features directly into the production environment while minimizing or eliminating interruptions in service.
Feature flags, otherwise known as feature toggles, solved this problem by allowing code deployment to occur without the new features immediately being made available to users. Once the code is deployed, the feature flag can be toggled to enable the new feature at any time, and also instantly disable it if needed.
Features can be selectively enabled or disabled for specific groups of users, allowing for individual features to undergo a phased rollout that occurs in stages. Feature flags can also be used as A/B testing tools by deploying two different versions of a given feature at once, restricting each to a certain environment, and enabling them for different groups of beta users to see which performs better.
Another major advantage offered by feature flag software development is that it’s no longer necessary to bundle multiple new features together for release in a single, periodic software update. Instead, it is now possible to perform continuous delivery, a subset of the Agile methodology of iterative development where features can be deployed, rolled out, and tested individually.
Hypothesis Driven Testing
Even if you know what you want your app to do and understand your customers’ likely use cases, a certain amount of experimentation is necessary to make sure your vision aligns with the needs of your users. Hypothesis driven testing bridges the gap between developer and user by leveraging test groups to get feedback on beta versions of new features prior to the general rollout.
This is one of the areas where feature flag development really shines, because they make it easier than ever before to perform split testing. By enabling new features (or multiple versions of new features) for selected subsets of your user base, you can directly conduct usability testing in production, and perform changes and fixes based on the feedback you receive before making it available to the user base at large.
Feature Release Processes
Feature flag implementation is an important component of the DevOps approach to development, which shortens the product life cycle and brings the development process in line with input from IT operations staff. This collaboration not only allows for tighter management of every phase of the development process, it also incorporates IT insights into actual business operations to better determine future development goals.
In a shortened product life cycle based on continuous delivery, IT support feedback can be used to quickly develop updated versions of individual features. Once completed, the new version can be deployed alongside the existing version, and users can be migrated over as easily as turning the old version off and the new one on.
Feature flags also provide a simple way to disable features in the event a major technical issue is discovered, especially if it affects a large number of users. Once the issue has been corrected, the updated code can be deployed and the feature re-enabled immediately.
Feature flags have revolutionized the software development industry, making it easier than ever before to conceptualize, design, and deliver high-quality applications. If you want to create your own business apps, you can try using feature flags for free with Split. Split provides a full-stack product experimentation platform, boasting feature flags and many other features in a straightforward interface that will put you on the road to meeting and exceeding all your business goals.