Feature Management Software
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.
Optimizely is a website optimization platform, providing A/B and multivariate testing. It enables users with and without technical expertise to make dynamic changes to their websites, test the variations to live traffic and gather immediate results.
GitLab is a complete open-source DevOps platform, delivered as a single application, fundamentally changing the way Development, Security, and Ops teams collaborate and build software. From idea to production, GitLab helps teams improve cycle time from weeks to minutes, reduce development…
AB Tasty is a SAAS application created for e-marketers that enables them to optimize their website and conversion rate without technical knowledge. They can test several versions of their pages to identify which one has the biggest impact on their business objectives, e.g. click-…
Kameleoon boasts users among 500 corporate and enterprise companies across North America, Europe, and Asia Pacific to help brands deliver digital experiences and products to their customers. GDPR, CPPA, and HIPPA compliant, Kameleoon’s A/B testing, full stack, and AI-powered…
ConfigCat allows the user to launch new features and change software configuration without (re)deploying code. ConfigCat SDKs enable easy integration with any web, mobile or backend applications. The ConfigCat website enables non-developers too to switch ON/OFF application features…
CloudBees Rollout is an enterprise-ready feature flag management solution, offering robust deployment rules, audience segmentation and an experimentation framework for controlling which audiences are exposed to what features. Feature flagging is a method to show or hide specific…
DevCloud, Huawei Cloud, includes an agile development solution, which provides agile development teams with coordination, multi-project management, iteration management, requirement management, defect tracing, document management, multi-layered billboard, and statistics reports, among…
Apptimize, now part of Airship (acquired August 2019) enables organizations to enhance their native iOS and Android apps to create user experiences, improve acquisition, engagement, and retention. The vendor says they do this with a platform that empowers product teams to efficiently…