What is feature management and feature experimentation?
- What is feature management?
- How does feature management work?
- Benefits of feature management
- What is feature experimentation?
- How does feature experimentation work?
- Benefits of feature experimentation
- Feature management vs. feature experimentation
- Feature flags: The cornerstone of feature management and feature experimentation
- Technical debt and feature management and experimentation
- What does feature delivery look like with feature flagging, feature management, and feature experimentation?
- Types of tools for feature management and experimentation
- Kameleoon for full stack experimentation
The best product-led organizations use feature management and feature experimentation to enable growth across the organization.
But what do these terms mean, and what is the value of them for advanced teams?
In this guide, we’ll go over everything you need to know about these modern software development practices including what they are, how they work, and why feature management and feature experimentation are key to achieving sustainable, predictable growth.
1 What is feature management?
Feature management is a modern software development practice wherein the release of features is controlled using if/else logic code snippets known as feature flags.
With the traditional product release model, teams release a feature to their entire user base, with little control over who sees what feature and when. If a bug is introduced to the product or if the feature does not perform as intended, it requires a complete rollback of the feature which can be a costly mistake.
Feature management decouples deployment from release and frees teams from the “all or nothing” release problem by using feature flags to enable or disable features for specific user groups.
They also allow developers to continuously deploy new code, without having to release it to users. In doing so, it reduces risk and gives teams more granular control over building and launching new features.
2 How does feature management work?
Feature management is made possible with the use of feature flags. These flags can be easily configured by engineers in the code, then turned on or off by product managers using a feature management solution.
This is a modern way to approach feature delivery - and by extension, software delivery. With feature management, businesses can:
- Launch features and feature design improvements "progressively."
- Ship features when they're ready without enabling them for all users by default.
- Allow access to only a few select users.
- Make features available to the entire user base only once the features are tested (and validated).
Since the features are already tested in the live app by this time, it minimizes release risk greatly so teams can release with confidence.
3 Benefits of feature management
Feature management is used widely by advanced product and engineering teams as the foundation of product-led growth. With feature management, teams can:
- Improve software quality: gradually releasing features helps catch bugs before they go into production, while iterating and improving upon features faster.
- Reduce risk of negatively impacting user experience: the risk factor is significantly lowered as new features are exposed only to controlled user populations. This assists with modern DevOps software development cycles and makes them safer.
- Test and validate new features before full release: managing features with feature flags is the basis of feature experimentation, which can help test and validate features before they’re released.
- Target specific user groups with features: create segments of customers and target them with specific features in order to create a more personalized experience.
- Better understanding of how users interact with features: feature management gives teams a better understanding of how users are interacting with features, so they can create a better user experience.
With feature management practices in place, engineering teams can also keep working on multiple new features and adding them to the live app in an inactive state. This helps teams get the innovation edge by enabling the shipment of features faster.
How feature management enables progressive delivery
Progressive delivery is a modern software development practice wherein a new feature is released to a smaller percentage of users to understand the impact of the update before rolling the feature out to the whole user base.
Feature management is the key enabler for progressive delivery because it allows businesses to add features to their product and release them gradually to their user base.
By enabling progressive delivery, feature management improves the software delivery speed — a constant struggle for business leaders.
This explains why businesses that use feature flags are able to add more features to their digital product and/or mobile app (30 new ones each application each year, according to Atlassian) than the others.
4 What is feature experimentation?
Feature experimentation is the practice of using feature flags to test assumptions of a feature and see how it performs against business goals.
This may include:
- Launching different versions of the same feature (via an experiment like an A/B test or an A/B/n test or a personalization) to see which version performs the best.
- Launching a feature to a controlled (and targeted) user population to validate if the feature should be launched at all.
Instead of building a feature, testing it, and rolling it out to users, product managers can test a feature, build it, and roll it out to users. In doing so, they can improve operational efficiency and increase their chances of building a feature that is preferred by users.
Studies support the benefits of feature experimentation. About 50% of the respondents in a survey by Forrester called feature experimentation “very important” in their software development initiatives.
According to Shagun Aulakh, Director of Product Management at American Express, the best organizations use feature experimentation as the basis for product-led growth.
The use of feature experimentation is supported at top organizations as well.
When Microsoft reviewed its online experimentation program, it found that for every 10 development ideas (like new features), 1/3 of new features can offer good results, 1/3 can prove flat and fail to move any metrics, and 1/3 can negatively impact the target metrics.
Feature experimentation enables teams to find and invest in those features that will meet business goals, making it a preferred choice for product-led organizations.
5 How does feature experimentation work?
Feature experimentation follows the basic principles of the scientific method and applies them to the development and release of software. Here is a generalized illustration of how feature experimentation may look in practice:
- Collect research: could be based on user feedback, internal research, or observations.
- Develop a hypothesis: come up with an idea on how a metric could be improved and why.
- Conduct the experiment: this could be done through releasing a feature to one group and not the other, by creating different versions of a feature, or by developing a feature prototype shown to all users.
- Gather and analyze results: collect research on how users are interacting with the feature and how/if it is affecting business goals.
- Implement winner and repeat: implement the winner, while already thinking about how that or another aspect of the experience can be improved upon.
This process happens quickly and in a tight loop. In fact, many teams don’t even necessarily think about feature experimentation.
What they do think about is how they can constantly iterate and improve upon their product based on the feedback they’re collecting from users and observations around them.
6 Benefits of feature experimentation
Feature experimentation allows teams to shift the focus from just keeping things running to driving innovation. Here are a few ways it benefits product teams.
Optimizing development bandwidth
Industry-leading companies like Microsoft frequently launch prototypes of features for experimentation purposes. The resources required for creating a prototype are far less than building the feature in its entirety.
Now, if the feature fails or does not perform as expected, the impact on resources is less than if the team were to create and launch the compete feature.
Businesses save precious in-house development resources when they're able to discard feature ideas that fail to move the metrics or offer any tangible improvements.
Building better features
Feature experimentation allows businesses to compare features side by side with data pointing to the best implementation. This allows only the best features to reach the entire user base.
As features are released progressively to controlled user groups, businesses get to capture user feedback in the interim and relay it back to the development team. This way, the improved or enhanced features that eventually roll out for all offer the best possible user experiences.
Validating features and measuring their business impact
Feature experimentation helps tie feature releases to goals that, in turn, have a direct impact on business metrics.
Feature experimentation solutions like Kameleoon easily translate the impact of such experimentation to a business's KPIs. Validation also inspires a culture of experimentation.
Brands can run feature experiments (ie. work server-side) and use a Full Stack experimentation tool to view how the feature is performing using client-side analytics. This feature is unique to Kameleoon and is not offered by any other optimization solution.
This hybrid experimentation approach helps marketers, product managers, and developers all work together to ensure their optimizations are positively affecting business KPIs.
7 Feature management vs. feature experimentation
Feature experimentation is the natural evolution of feature management into its current best practice.
Businesses start with feature management as a way to get better control over their software release processes. Once they become comfortable with feature management and feature flagging, they can then graduate to feature experimentation, as feature experimentation is what really offers the means to launch better features (and products).
- Feature management: turning a feature on or off for select groups of users.
- Feature experimentation: testing different features for different users to see which performs best.
Feature management sets the foundation for feature experimentation, which, in turn, changes how teams develop features. Feature experimentation forces teams to think about how they’re going to measure the value of a new feature, which helps build more effective product roadmaps.
Think about it:
Why would you want to develop a feature when you aren't sure if your users need or want it? Or when you don't know if the way you implement it is indeed the most optimized version? Also, why would you build something with no way to measure its impact?
While feature management can help deliver a feature or a product experience safely, feature experimentation provides the data to decide if it should be built at all.
The real savings from such experiments come from NOT having to roll back features that hurt KPIs. Plus, with feature experimentation, teams can avoid bloating their app with features that make no difference to the product experience. Imagine having to roll back six of every ten releases because of these reasons.
Feature experimentation helps teams move toward a data-driven software development model - a model where teams hypothesize and develop new features based on customers' needs and behaviors.
8 Feature flags: The cornerstone of feature management and feature experimentation
As mentioned throughout this article, the main staple of feature management and feature experimentation is feature flags.
Feature flags offer a way to control the behavior of an application. They let teams turn features on or off at runtime — enabling targeted feature delivery in real-time.
The creation of a feature flag is very simple:
- Name a flag and associate it to a site(s) and add any relevant tags to easily catalog it.
- Configure it. Give it a unique ID so it can be identified in the source code. Add Variables depending on how the flag should affect a feature. Choose the SDK and the provided sample code to set up the SDK in the application.
- Choose the KPIs or goals that will determine if the flagged feature is successful or not.
- Set which and how many users will see the flagged feature i.e. targeting.
- Schedule when and how the feature should be released. Set up automatic alerts to track how it's performing.
The targeting conditions of these flags can be as simple or complex as a team’s feature delivery needs. If conditions for delivering a feature are met, then it can be made available more widely.
Feature flags and feature management
Feature management uses feature flags to enable progressive delivery and the ability to turn features on and off for certain groups of users.
Before feature flags, product teams had no means by which to control the release of features. This presented many challenges:
- Teams could not uncouple code release with the release of features.
- They relied on releasing a feature to an entire group of users all at once.
- If a feature was faulty or had bugs, it required a complete roll back which was costly and time consuming.
With feature flags, teams could decouple deployment from release and alleviate all of the pains above. Feature flags are the tool that enabled product teams to granularly manage features in the first place.
Feature flags and feature experimentation
Feature experimentation applies the principles of A/B testing and experimentation to software development. It uses feature flags not just to turn features on and off for groups of users, but also to test different versions of a feature with different groups to see how it performs.
Much like feature management, feature experimentation would not be possible without feature flags, thus making feature flags an integral part of product and engineering team’s toolkits.
Feature flags and mobile apps
Feature flagging also streamlines development for apps. It enables businesses to implement continuous delivery even for their mobile app experiences.
That’s because toggling feature flags allows developers to control the behavior of the app, like enabling a feature for the beta user group, without going through an additional round of the App Store review process.
This allows developers to start integrating testing into their feature deployment—leading to optimized experiences for users.
9 Technical debt and feature management and experimentation
Technical debt is the result of mismanaged code or poor DevOps processes.
It can negatively impact teams by slowing down a product’s user experience and hurting overall operational efficiency. It can also make it harder to understand what is in the code, increasing the likelihood of a catastrophic event.
In our recent interview on product-led growth and feature experimentation, Shagun discussed how a build-up of technical debt led to the accidental enabling of a feature flag which resulted in the company making unintended trades that caused a loss of half a billion dollars.
Technical debt is often cited as one of the biggest reasons against the use of feature flags by engineering teams.
Creating a feature flag leads to more code in the codebase. If feature flags are not removed, the codebase continues to become more and more cluttered. It can then be challenging to properly clean and remove feature flags because people don’t know which code is necessary and which is not, and they become afraid of accidentally breaking something.
Thus, the more feature flags that are added to the code, the more technical debt is added to the codebase - especially if the flag’s lifecycle is not considered.
If an organization has a culture of experimentation that encourages extensive testing, technical debt can quickly grow to the point it cannot be ignored.
How to avoid technical debt with feature management
Technical debt can be easily managed by implementing feature flag best practices like removing a flag as soon as it is no longer needed.
Once a feature flag serves its purpose (for example, when its feature goes through its entire lifecycle from QA, testing, and experimenting all the way to production), it is essential to remove the flag from the code.
An advanced feature management tool like Kameleoon can also help in managing technical debt by alerting teams when feature flags have not been requested for a long time. This makes it easy to understand what feature flags can be removed, without even thinking about it.
10What does feature delivery look like with feature flagging, feature management, and feature experimentation?
Teams can go from ad hoc feature releases to hypothesis-driven feature development with these practices, as outlined below.
- Feature flagging: Starting with feature management typically means starting with feature flags. Most businesses are 1) already using feature flags, 2) in the process of implementing them, or 3) planning to implement them. At this point, most businesses generally experience slower timelines from the idea inception to production - however it is the first step&
- Feature management: Here, teams can release features within well-defined release timelines. Features are being delivered on a regular release cadence. It may not be happening as quickly as it needs to be, but there is a solid structure in place to build upon over time.
- Feature experimentation: At the most mature level, a business progresses from feature management to feature experimentation. Here, feature management is used to ship innovative features. Teams are at a hypothesis-driven feature delivery in this case: write a hypothesis for a feature, set up an experiment to launch it, measure its performance, and then launch it post validation. Experimentation is a part of the feature delivery cycle. This is the hallmark of innovative software development teams.
In the end, the north star for teams should be that all feature development is based on solving customer pain points while also having clear proof that it is successful.
With experimentation, feature development goes from build, test, launch to hypothesize, build, experiment, validate, and launch.
11Types of tools for feature management and experimentation
When evaluating tools for feature management and feature experimentation, there are two primary choices available on the market today:
- Feature management tools that offer experimentation and A/B testing (LaunchDarkly, Split.io)
- Experimentation tools that offer feature management, feature experimentation, and feature flagging (Kameleoon, Optimizely)
Forrester recommends an experimentation solution that now also supports feature flagging and management as the top choice.
The reason for this is experimentation tools are designed to meet the needs of marketers, product managers and developers alike. They can be used by different teams across different departments, each working in their preferred environment.
In contrast, feature management tools are predominantly designed to solely cater to developers and engineering-savvy product managers. Here’s why that matters.
- Marketers and many product managers require client-side analytics that reveal how campaigns and funnels are affecting business KPIs. Client-side capabilities are not usually offered with feature management solutions.
- They need seamless integrations with the current tagging plan. 95% of the time, this is implemented in JS on the front-end.
- They need to immediately analyze the business impact of ideas and planned features. Feature management tools often lack critical capabilities in terms of analytics and data reports.
Combined, this makes it challenging for teams to run advanced experimentation programs cross-functionally on feature management tools.
12Kameleoon for full stack experimentation
Kameleoon is a full-stack experimentation solution with feature flagging, feature management, and feature experimentation capabilities all in a single unified platform.
With Kameleoon Full Stack, product managers can:
- Validate new features without risks, using feature experiments and advanced rollout rules.
- Own release cycles to deliver value faster with feature management.
- Power server-side experiments with Kameleoon Hybrid™ and use client-side capabilities, including advanced audience targeting, plug-and-play integrations, and smart graphic and code editors, even in tests coded server-side.
- Access an SDK rich, cache-friendly work environment.
- Monitor the performance of their features with client-side reporting dashboards.
Advanced feature management and feature experimentation platforms like Kameleoon give marketing, product, and dev teams the power to run experiments their way, in their preferred environment, in a single unified platform.
To learn more about how Kameleoon can support the needs of advanced feature management and feature experimentation programs, Book a Demo today.