Best Feature Management Software include:
Feature Management Software Overview
What are Feature Management Tools?
Feature management tools are generally used by DevOps and Product teams to facilitate code releases, product experimentation, and feature rollout. Common feature management tools such as flags, toggles, and switches allow for the decoupling of code releases from feature deployments. This is done by adding flags to a feature, and adding targeting rules to control who will see that feature.
This enables DevOps teams that follow agile and CI/CD development methodologies to release more frequently and with reduced risk. Additionally, these tools give Product teams the ability to test the impact of a new feature with a subset of end users before full-scale deployment.
Common use cases for feature management software include:
Feature rollout management
Certain open source feature flagging tools may only be compatible with one or two programming languages. However, many paid feature management products offer compatibility with a wide range of languages. These languages include:
Test Driven Development
Feature flags enable a truly ‘test driven’ development process. Without the introduction of flags, new features or feature functionality would be released in totality to 100% of end users. This ‘all or nothing’ development approach involves long, ‘waterfall’ style periods of code development before a final release. One drawback to this approach is that it involves a certain degree of risk. If something goes wrong after a release, it can impact all end users, take time to fix, and damage the business.
With flags, feature functionality can be released in a state that is only visible to developers and testers. The feature flags act as a piece of conditional logic in the code that only ‘turns on’ new feature functionality if a user possesses certain attributes. For example, if that individual is an internal user, a ‘beta tester’, or on a ‘whitelist’ of users. This allows unfinished sections of code to be added incrementally to the production code and continually iterated upon.
Feature flags also help to break up releases of larger changes to ensure the system infrastructure can handle the full load. For example, they can be used to launch ‘Canary’ and ‘Blue/Green’ deployments of new features. At first, only a small percentage of users have access to the new product, and this percentage is gradually increased.
Granting Feature Access
One key capability of feature flags is the ability to manage entitlements based on user attributes. User segments can be granted access to features or feature functionality based on characteristics such as subscription type or demographic information. This can help give users a more personalized experience, such as premium plan members having early access to new features.
Another reason feature functionality may be granted or gated for certain users is to enable A/B or multivariate feature testing. Internal users, beta users, or whitelist users may be granted access to new features to run usability tests.
There is some overlap between feature management tools and A/B testing tools, such as content & style optimization and multivariate testing. However, using feature flags to A/B test gives the developer complete flexibility. This enables feature management tools to evaluate dynamic changes, such as sort orders or entire workflow overhauls. One trade-off that comes with using feature flags for A/B testing is that it is more time consuming for developers.
Certain products serve as both feature management and A/B testing tools. Some examples are:
Featured Management Software Features & CapabilitiesCommon feature flagging capabilities include:
Feature alerts: Alerts or messages get sent whenever there is a change in feature functionality or status.
Feature rollout management: Ability to control degree of rollout using whitelist, beta, and Canary deployment options.
Whitelist creation: Ability to create lists of external and/or internal users to test new software versions.
Product experimentation: Allows DevOps and Product team members to conduct tests on new feature functionality before deploying it to 100% of users.
A/B testing capability: Ability to compare performance and usability metrics for multiple variations of features or functionality before full-scale deployment.
Multivariate testing capability: Ability to test multiple variables, or changes, to features or feature functionality before full-scale deployment.
Entitlement management: Ability to control what types of users (e.g. premium plan members, beta users, internal users) have access to certain features or feature functionality.
KPI monitoring: Ability to track the performance of flagged features against key KPIs such as page load time, API response time, and support ticket count.
‘Kill switch’ capability: Ability to disable a feature at any point during its lifetime, without requiring a code release to revert the changes. Not all vendors offer this capability.
Paid versions of feature flagging software are typically priced along one or more of the following criteria:
Standard monthly subscription fee
Number of active monthly users who hit a feature flag
Number of internal users with access to the feature flag dashboard
Pricing for paid plans starts around $80 per month and can range up to thousands of dollars for enterprise level solutions. Most vendors also offer free trial periods for their paid products. There are also many, build-your-own style, open source options available for developers to use.