Go to app
GuidesProduct development

What you need to know about feature flags

Last updated

23 January 2024

Author

Dovetail Editorial Team

Reviewed by

Mary Mikhail

Working in a large organization with over 100+ employees? Discover how Dovetail can scale your ability to keep the customer at the center of every decision. Contact sales.

Short on time? Get an AI generated summary of this article instead

Feature flags provide a range of options for enabling and disabling specific software features at any time. This gives your software developers a high level of control when making improvements throughout the software's lifecycle.

Read on to discover what feature flags are, how they work, and how they can benefit your software users.

What is a feature flag? 

Making sure your company's software functions as smoothly as possible is essential if your customers are to continue choosing your product. Even small changes that negatively affect overall functionality and user experience can considerably reduce user satisfaction.

Feature flags allow you to make changes to your existing software without risking the introduction of significant issues. They allow software developers to add new features, remove old ones, and temporarily limit access to those that need improvement, without the need to redeploy the software or modify its source code.

Feature flags, also known as feature toggles, feature flippers, and release toggles, allow software developers to quickly and easily turn specific features on or off for some or all users. This gives developers a range of options for:

  • Testing new features with select groups of users

  • Rolling them out slowly to better study whether they are functioning as intended

  • Limiting certain features to users of specific subscription plan types

  • Disabling features when a user's subscription lapses

  • Adding personalization options

  • Controlling variations in how specific categories of users experience your software

Benefits of feature flags

Using feature flags to control and personalize each customer's user experience can benefit your users and your business. From controlling which users can access certain features to providing flexible options for starting with a basic plan that can evolve alongside a growing business, feature flags can significantly increase the flexibility of your software and the variety of customers it can effectively serve.

Here are some common ways feature flags can help your software developers better meet each user's unique expectations.

Lower risk for each software release 

New feature releases and other major software updates can:

  • Interfere with your software's ability to function properly

  • Slow your system performance

  • Prevent certain features from working correctly

  • Interfere with users' ability to get the most out of your software

While most tech-savvy users have come to expect that most platforms will come with occasional updates that evolve the product they originally purchased or subscribed to, they also expect updates to stay reasonably close to what they originally spent their money on and not have a negative impact on usability.

Higher level of control over feature lifecycle 

Software development and other tech fields are constantly evolving, and many features are not intended to last forever. While software developers want to create something capable of serving their customer base for as long as possible, this is typically done with the understanding that something even more innovative is likely to eventually replace it.

It’s important to understand how the feature lifecycle works and when it might be time to consider retiring certain outdated features. This will ensure your customers continue to have the best possible experience using your software and interacting with your brand over time. Feature flags can help you adjust your software to better meet the needs of a changing world.

Enable percentage-based rollouts 

Learning what a portion of your customers think about your software’s new features can prevent issues with features that are not accepted as well as you expect. No matter how diligently you plan and test each detail of your software's new features, your team cannot guarantee they will function properly and benefit your users as much as you hope. Limiting your initial rollouts can help you identify and fix potential problems before they become widespread issues.

Percentage-based rollouts allow your software developers to identify a section of your total user base to be the first to access new features. These users may be randomly selected, or you may choose a small percentage of your most dedicated users. These select users will be able to provide insights into whether your new features are useful and working properly. Once you have made any necessary adjustments and are receiving mostly positive feedback, you can release your new features to a larger percentage of your users or your entire customer base.

Gate features to control user experience

Your software's users and their specific needs can vary significantly. Increasing your options for controlling features can help personalize and improve their overall user experience. A one-size-fits-all approach when creating a software product will be nowhere near as effective as allowing customization. Enabling the user to allow or block certain features can help your customers get exactly what they want and need for their business, now and in the future.

Most startups and small businesses with a small number of employees will only need the most basic features. Offering more affordable lower-level subscriptions that don’t include everything your software has to offer can convince these businesses to take a chance on using your software, even though they are working with a limited budget.

By turning off features that go above and beyond what these customers currently need, you can meet their requirements at a price that works for them. They then have the option to switch to a more complex plan as they learn more about your software’s capabilities.

Customers who begin to trust and build a strong relationship with a specific software company are more likely to stick with that company as their needs change. Knowing from the start what your scaling options and additional features could offer them in the future can help to keep their interest as they progress beyond basic needs.

Once customers switch to a higher-tier subscription, you can simply toggle on any additional features their new plan provides. This is a more streamlined option for effectively meeting their evolving needs without switching to a completely different product.

What do your users really want?

Just upload your customer research and ask your insights hub - like magic.

Try magic search

Who uses feature flags?

Feature flags are typically handled by software developers. Although the flags don’t change your software code, they still require a high level of coding knowledge and software development to locate and adjust features that aren’t working as you intended.

Use cases for feature flags

Here are some of the most common uses for feature flags:

Running experiments with feature flags

Even the most experienced software development teams may not know exactly what their users are looking for or which of the ideas they are considering implementing might result in the most growth. Feature flags make it possible to experiment with multiple options at once and evaluate the results.

You can divide your user base into groups and compare how well one (or more) versions of a proposed new feature performs compared to a control group. This data can help you understand how each idea might ultimately impact your target audience.

Feature toggles as operational switches

Feature toggles can also be a valuable tool for managing known software issues. While extensive testing before releasing a new product or updated version should catch the vast majority of problems before they begin impacting your consumers, widespread problems can still arise later.

The new feature may not function correctly when integrated with the existing product, a new update may cause certain aspects of your software that were previously working to malfunction, or security concerns may require you to temporarily disable certain features that may put your customers or your business at risk.

Using feature toggles as a "kill switch" is a significantly more efficient alternative to recalling an entire software product to fix a relatively small problem.

With this option, your software developers can immediately take any problematic feature out of commission to prevent further damage or dissatisfaction. Immediately shutting down a major issue shows your customers that your business prioritizes user experience and is willing to take the initiative to find solutions to widespread problems as soon as they become apparent. Once you have switched off a specific feature, your team can prioritize solving that particular issue.

Communication is key throughout this process. Letting your users know that you have temporarily (or permanently) disabled a specific feature, that your reasons for doing so are in the best interests of everyone involved, and that the specific steps you are taking to fix the problem, can go a long way toward retaining their confidence in your brand throughout a challenging process.

Your business may lose a handful of customers who are frustrated with the relatively minor inconvenience of any change to their software, but most users will be willing to continue using your software as long as you are open and honest about why a certain feature has been disabled.

Flags as an alternative to branching

Branching, or deciding when to launch certain features, can help you release the right features at the right time. However, this option does not typically give software developers a high level of control over these features once they have been added because branching does not offer streamlined options for editing or disabling live features.

This makes post-release changes a much more involved process than simply using feature flags to make any late-stage adjustments. While feature flags should not necessarily replace branching altogether, using both options can give you more options for tweaking each feature at any point in the lifecycle of your software.

Canary releasing

Identifying potential problems with a new version of previously released software allows your developers to locate the source of the issue and make any necessary changes before releasing it to your entire user base. Choosing a small subset of your overall user base gives you a controlled opportunity to have users from outside your team experiment with the new features you’re planning to eventually roll out to all customers.

This process, known as canary releasing, involves redirecting a small percentage of software users or website visitors to your new version without disabling the old version. When two versions of your software are temporarily in use at the same time, your development team can invest time and effort into making sure your finalized new version is the best it can be without disrupting the rest of your user base.

Categories of feature toggles

To get the most out of controlling user experiences with feature toggles/flags, you need to understand how various categories of toggles work. Many businesses find that using several types of toggles gives them a significantly higher level of control over their software at any stage in its lifecycle rather than relying too heavily on a single type of feature flag.

Here are four of the most common types of feature flags.

Release toggles

Release toggles give software developers the option to deploy code that is incomplete or has not yet been thoroughly tested. While premature releases are not always the best choice for your business, they provide options for experimenting with potential new features before coding has been finalized.

Experiment toggles

Quality experiments involve comparing one or more groups of users to a control group. Various types of data can be used to compare each group's experience to check whether the new features you are considering provide a better experience than the old version. Experiment toggles control how users in each group experience your products.

Ops toggles

Ops toggles provide a high level of control over your software features at any stage. They allow your development team to implement continuous changes to make your software the best it can be over time. These are generally the most effective feature flags for reversing or disabling problematic rollouts or specific features.

Permission toggles

Many businesses prioritize offering different user experiences to different users, such as subscription tiers that allow access to various features within the same product or early access to new features for a specific group of users. Permission toggles control which individual users or categories of users have access to certain features.

How feature flags change software delivery

Traditional software delivery involves simultaneous deployment and release, which limits your options for changing any part of your product once your customers have access to it. By decoupling these concepts, feature flags allow you to improve your software over time in a range of ways.

Difference between feature flags and configuration files

Feature flags are characterized by their ability to temporarily alter your software. While configuration files can create similar results, these changes are typically permanent, so they are not capable of handling the most typical uses of feature flags.

FAQs

What is the difference between a feature gate and a feature flag?

Feature gate is another name for a feature flag. Both terms refer to your software developers' ability to remotely turn certain features on or off.

What are some other names for feature flags?

Feature flags can also be referred to as feature toggles, release toggles, feature flippers, and feature gates.

What is the difference between feature flags and feature branches?

Feature branches function similarly to feature flags, but they provide a lower level of control. Feature branches allow you to decide when to release new features, but they do not provide as many options for reversing these decisions as feature flags.

Should you be using a customer insights hub?

Do you want to discover previous interviews faster?

Do you share your interview findings with others?

Do you interview customers?

Start for free today, add your research, and get to key insights faster

Get Dovetail free

Editor’s picks

How to use product pricing strategies to maximize revenue

Last updated: 17 October 2024

An introduction to the Shape Up Method

Last updated: 29 October 2024

Creating an effective outcome-based roadmap

Last updated: 24 October 2024

Stakeholder interview template

Last updated: 13 May 2024

Product feedback templates

Last updated: 13 May 2024

How AI can transform product management

Last updated: 10 August 2023

Related topics

User experience (UX)Product developmentMarket researchPatient experienceCustomer researchSurveysResearch methodsEmployee experience

A whole new way to understand your customer is here

Get Dovetail free

Product

PlatformProjectsChannelsAsk DovetailRecruitIntegrationsEnterpriseMagicAnalysisInsightsPricingRoadmap

Company

About us
Careers14
Legal
© Dovetail Research Pty. Ltd.
TermsPrivacy Policy

Product

PlatformProjectsChannelsAsk DovetailRecruitIntegrationsEnterpriseMagicAnalysisInsightsPricingRoadmap

Company

About us
Careers14
Legal
© Dovetail Research Pty. Ltd.
TermsPrivacy Policy

Log in or sign up

Get started for free


or


By clicking “Continue with Google / Email” you agree to our User Terms of Service and Privacy Policy