The number of feature flags under management has a tendency to grow over time, leading to “flag bloat” – a challenge which we’ll discuss later in this guide. The best way to keep this in check is proactive management, a big part of which is tracking metadata for each flag, such as who is responsible for the flag, when the flag was created, when it should expect to be retired, and so on.
Setting Up Feature Flag Management
A feature flag allows you to choose between different code paths in your system at runtime. They enable teams to safely merge new features, bug fixes, or other code changes to one central branch in the version control system, which avoids long-lived feature branches and merge issues by integrating code changes frequently.
Implementation Notes
If you are considering a feature flagging system, it is important to be take these practical things into consideration.
Evolution of Feature Flagging System
If you keep the evolution of these systems in mind, you will be able to design a better system today that will continue to evolve with your team’s needs.
B2B vs B2C Companies
The needs of B2B companies are a bit more complicated than those of B2C companies. They may need to rollout features user-by-user, or account-by-account. The latter case is unique in that if a feature is rolled out to an account, it should be accessible to all users within that account. If a user exists in multiple accounts, you have to think about the impact on user experience as the user switches from account to account.
Stickiness
It’s important that your system supports stickiness: if a user is shown a feature, they should continue seeing the feature no matter which machine their request is routed to. Without stickiness, the user experience can be very inconsistent.
Remember to Remove Flags
If flags are left in the code for too long, they lead to tech debt. Old branches of code may no longer work and if someone accidentally kills a feature, the customer experience will be negatively impacted. If you are building a solution for your team, think about building a notification system that helps teams do house cleaning.
Creating A Feature Flag
When you create a feature flag, you can specify information for it, which includes a name, a description, owners, and tags. This information helps you and your team manage your feature flags and customize them to your team’s workflow.
Ideally, your flag management system allows configuration changes to propagate within a few seconds, not even requiring processes in an environment to be restarted in order to pick up the change.
Feature Flag Configuration Management
Ownership and Metadata
Environment-aware configuration
Change Control and Auditability
Close the Loop – Analytics Integration
Having feature flag management has allowed us to easily merge code, even partially, while not slowing down our release schedule.
Jimmy DePetro, Head of Engineering, Wag!
Join The Industry Standard
Top enterprises use feature flag management to effortlessly conduct feature experiments like A/B tests without slowing down. Reimagine the software development process to release new features up to 50x faster!