Use cases

Feature flagging is a powerful paradigm that can become pervasive in your codebase. It's important to think through the use cases and how it can fit into your organisation's development process.

Developing new features

The general process for developing a new feature in a continuous delivery environment is:

  1. Define a new feature flag in your flagging software (e.g. featuresd).
  2. Add a new feature, UI element, or flow, and make it conditional on the value of the feature flag.
  3. Ship the flag definition and the code which relies on it.
  4. Enable the flag for developers, early testers, or whoever else needs access to it.
  5. Test, validate, and iterate while the majority of your users cannot see the new feature. Monitor for performance and errors.
  6. Once the feature is ready, either roll it out to everyone by removing the flag check, or begin a progressive rollout.
  7. Once all users have access to the feature, remove the code that checks for it. Remove the flag definition too.

Progressive rollout

As part of deploying a new feature intended for all users, you might want to release it to gradually larger portions of your customer base.

Beta testing

It may be appropriate for your organisation to have a permament tier of user or team accounts who take part in "beta" releases for testing purposes. This is a slightly different strategy to rolling out specific features on their own schedule, and may require less process overhead.

Moderation?

Customer relationships

Localisation

Enabling different features in different geographic or regulatory environments can increase the complexity of software. Different combinations of enabled features can cause unexpected interactions and edge cases, but it may be utterly necessary depending on your application.

Internationalisation

As opposed to localisation, internationalisation (i18n) involves cultural and linguistic translation. i18n and l10n naturally go together, but i18n is best managed through specific frameworks catered to those needs. Most feature flag management software is not suited for the detailed needs of natural language translations.

A/B testing

Some feature flag software includes built-in A/B testing features, and other ways to link feature flags to customer behaviour metrics. featuresd does not, and as such we do not recommend attempting to use it for those tasks. You may wish to integrate featuresd with external A/B testing services.

Pricing or billing tiers