In modern software development, DevOps teams have shifted their attention on the continuous delivery of features to keep up with fast-changing market and consumer demands.
Teams now more than ever have to be in the driver’s seat when it comes to delivering these features and to whom.
This is why feature flags (or feature toggles) have become the ultimate tool to manage the release of new features.
What are experience rollouts?
When we talk about experience rollouts, we’re referring to the risk-free deployment of features that improve and optimize the customer experience.
This could be in the form of progressive deployments where features are gradually released to reduce the risk of big bang releases or by targeting new features to the most relevant users in order to personalize their experience.
But how do you ensure you’re delivering optimal experiences without negatively impacting the user experience? How can you minimize risk when rolling out new features and ensure that they actually meet your customers’ needs and expectations?
The answer to both these questions is feature flags.
Feature flags are a great solution to allow you to continuously deliver new features while limiting user access to these features, thereby reducing risk.
By decoupling deployment from release, feature flags give teams the power to choose who to send new features to and when. Thus, teams can continuously develop and deliver new features without having to make them available to all users.
What are feature flags?
Let’s start with the most basic definition of feature flags.
Feature flags are a software development tool that enable teams to turn functionalities on or off in order to safely test new features by separating code deployment from feature release.
They can also be referred to as feature toggles as they allow you to toggle a feature on or off by hiding that feature behind a flag and then deciding who to make this feature visible for.
This is particularly useful when you’re looking to personalize the customer experience according to the type of user. This means you can enable features to only target certain users to display the right content to the right audience at the right time, while tracking their performance over time.
With AB Tasty Rollouts, you can configure personalization campaigns, for example, to personalize the user experience for new visitors on mobile only and show them discount codes as a welcome offer. Therefore, you can define the targeted users and the flag (with its value) that will activate the discount code for a particular scenario; in this case, new users on mobile while monitoring the relevant KPIs.
Feature flags can be leveraged across different use cases. This is because there are many different types and categories of feature flags as seen in the image below and which one you choose depends on the purpose of using the flag in the first place.
For example, release toggles support dev teams as they write new features while experiment toggles are primarily used by product and marketing teams to facilitate A/B testing.
For this reason, feature flags can be used across a wide variety of use cases by multiple teams across an organization, especially when you have a feature management solution to manage all your flags.
In particular, feature flags give teams a very granular level of control and risk management over code, which can be important when modifying backend features that have a wide-ranging impact on how your system performs.
The following section will provide further details on what the term “experience rollouts” entails and discuss how feature flags can help you regain control of how you roll out experiences to your customers at the flip of a switch.
- Progressive deployment and rollouts
Perhaps one of the greatest benefits of feature flags is their ability to mitigate risk when it comes to new feature releases.
This is because feature flags empower teams to release their features to any user groups of their choice.
Therefore, teams can safely test out their new features on a preselected number of users, whether with internal or external users, to validate functionality and gather feedback in order to make any necessary changes and optimize future feature releases. By continuously iterating features in real time during the release process, companies can provide more value to their customers and ensure customer satisfaction.
Sophisticated feature flagging functionalities give you the ability to closely monitor metrics that indicate how a new feature is performing and how well-received it is by users.
This way, should anything go wrong with a release, teams can minimize the blast radius and any negative impact due to a faulty feature. This also gives them the time necessary to address the issue by disabling the flag before releasing it to everyone else.
The best thing about progressive deployments and rollouts is that teams are essentially in the driver’s seat: they have control over who sees what and when, allowing them to maintain the momentum of CI/CD but with less risk.
Another great advantage of progressive rollouts is that it increases both the velocity of the development lifecycle and testing as teams can roll out releases in phases, they can quickly test on their chosen user group, make the iterations necessary and then run more tests.
- Rollbacks
Just as you can roll out new features and experiences to your users, you can also easily roll back these features whenever needed with the help of feature flags.
This means that if anything goes wrong with any feature you’ve rolled out to your chosen users, you can quickly disable the flag so that users no longer have access to the feature.
Releasing new features to real-world users is always a risky endeavor and can cause real harm to your brand’s user relationships but it doesn’t have to be.
Now, after any feature release, teams can isolate the faulty or buggy individual feature(s) that have and perform a targeted rollback on them. With advanced third-party feature management platforms, you can roll back a feature in real-time by just toggling a single field with just one click.
AB Tasty is one such tool that allows you to roll out new features to subsets of users by assigning specific flag values to different user segments and comes with an automatic triggered rollback in case something goes wrong.
The automatic rollback option enables you to stop the deployment of a feature and to revert all the changes that have been made in order to ensure that your feature isn’t breaking your customer experience. This is done by defining the business KPI you want to track that would indicate the performance of your feature.
When this KPI is set, you will then associate a value (in %) which, if exceeded or reached, will trigger the rollback. To make the rollback significant, you must define a specific number of visitors from which the rollback comparison will be triggered.
When the conditions are met, the progressive rollout feature will be rolled back, which means that no more targeted users will see the feature.
- Targeting
We’ve talked a lot about how you can use feature flags to allow certain users to see a feature while hiding it from others.
When you do a targeted rollout, you’re basically releasing new features to a predefined set of users rather than opting for the riskier big bang release.
Here’s a look at some targeting scenarios where feature flags do their best work:
- Alpha and beta testing
- A/B testing
- Managing entitlements
- Blocking users
- Canary deployments/percentage rollouts
- Ring deployments
There are many ways teams can progressively deploy and roll out features to a select audience. With the help of feature flags, teams can manage and streamline these deployment methods to perform highly granular user targeting.
AB Tasty Rollouts allows you to target users based on certain identifying attributes like beta testers, age group, or any other user attributes you have access to.
Furthermore, our integrations with third-party tools such as Segment, GA4, Mixpanel and Heap means that you can also target your test and personalization use cases with audiences built in these tools and then exporting these user groups or cohorts to AB Tasty to target them.
- Flag management
To truly reap the benefits of feature flags, you have to know how to manage them effectively. Otherwise, you will end up with so many flags in your system that you start to lose track of which flag does what. This could ultimately lead to the most dangerous pitfall of feature flags: technical debt.
At that point, your code could become too complex that it will be difficult to manage and could negatively affect the quality of your code.
This is why feature management and feature management solutions are so essential today for modern software development teams. With such solutions, teams have access to advanced features to enable them to work with feature flags at scale and avoid the most common problems associated with them.
AB Tasty is one solution packed full of features that can help you avoid the dreaded technical debt with a clear, easy-to-use dashboard that all your teams, from development to product, can easily use to efficiently track and manage feature flags usage across your organization no matter how far along you are in your feature flag journey.
Furthermore, flags can be controlled from another platform using AB Tasty’s Remote Control API allowing teams to work from just one tool without having to log onto the platform. This saves a lot of time and effort as you can perform all AB Tasty tasks directly with API calls, including managing your projects, use cases, variations, variation groups, users, targeting keys, and your flags.
Experience rollouts with feature flags
As we’ve seen, the idea of experience rollouts revolves around rolling out your best features to end-users. This is when feature flags become the most powerful tool to ensure you’re only releasing optimal features that provide the best customer experience possible.
This is because feature flags give you the ability to progressively deploy and roll out new features to gather feedback from the users – giving you the most relevant feedback to iterate and optimize your releases. This will help your teams to make more informed, data-driven decisions to drive your conversion rates, ultimately aligning the user experience with business objectives.
Consequently, when you finally do a full release, you’re confident that you’re releasing features that provide the most value to your customers and so will have the best impact on your business in terms of revenue and conversions.
Do you want to deliver first-in-class customer experiences? Click on the “Get a Demo” button at the top to see for yourself what feature flags can do for your own experience rollouts.