1.Opt InRun beta programs on your live application by explicitly including the people you want to see a new feature.
2.Kill SwitchQuickly turn off a poorly performing feature.
3.Early AccessAllows users to opt-in for early access to new features.
4.Scalable Roll OutsDo phased rollouts to percentages of your users to verify there are no scalability issues.
5.Block UsersProtect features from users by excluding them from ever seeing them – for example, excluding anyone from TechCrunch from seeing new functionality.
6.Run A/B TestsRun A/B tests of features to see which features perform better.
7.PaygateControl subscription plans by bundling feature flags into plan.
8.Newbie vs Power UserShow expert users and beginner users different features entirely.
9.Maintenance ModePut portions (or your entire application) into maintenance mode.
10.SunsetCleanly sunset old, unused features.
Using feature flags to power continuous delivery and test-driven development.
Using feature flags to incorporate a release strategy into your development process.
How to use feature flag driven development effectively at your company
Harnessing LaunchDarkly to manage feature flags at scale
There are a lot of ways to use feature flags - and not all of them are obvious.
Why should you use feature flags (also called feature toggles, flippers, switches, etc.)? Here’s what the community has to say about why they’re important.
Feature flags are a software development best practice of gating functionality.
Tricks and tips for using feature flags without introducing technical debt
Decoupling feature rollout from code deployment and the rise of user-centered deployments.
Thoughtworks discusses the benefits of continuous integration and continuous delivery.
Brett Slatkin is the engineering lead of Google Consumer Surveys. He formerly worked on App Engine and is the co-creator of the PubSubHubbub protocol. He talks about how Google uses continuous delivery for software.
Edith Harbaugh, CEO of LaunchDarkly, discusses how smaller steps mean higher velocity. Best practices in software development like agile, continuous integration, continuous delivery and canary launches are like taking smaller steps to move quicker.
Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time.
In his article, Martin Fowler discusses the pros and cons of feature toggles and how to implement them within your continuous delivery process.
How product managers can harness feature flags to improve their product's efficacy and facilitate user feedback.
See how Google implements continuous delivery by harnessing the principles of TBD and feature flag driven development.
See how Facebook implements trunk based and feature flag driven development.
In this article, Katherine Bailey discusses the merits of feature branching and its associated benefits. "At the heart of this branching strategy is the idea that your feature branches are completely unadulterated by anything else happening in the repo - their history should be a series of commits, each one of which is related solely to the feature itself (i.e. no back merges).
Paul Hammant discusses Trunk Based Development (TBD) and provides a comprehensive overview of its pros and cons: "TBD is where all developers (for a particular deployable unit) commit to one shared branch under source-control. That branch is going to be colloquially known as trunk, perhaps even named “trunk”. Devs may, on their own dev workstations, do some multi-branch development (say with Git), but when they are “done” with a change or a bug fix, it should go back to the shared trunk. It is not “done” if it is not there – watch for that little lie of omission."
In this article, you will learn about the benefits of TBD for both developers and product management. "Trunk Based Development is a version control strategy in which developers commit their changes to the shared trunk of a source code repository with minimal branching. Trunk Based Development became well known in the mid 2000s as Continuous Integration became a mainstream development practice, and today it is equally applicable to centralised Version Control Systems (VCS) and Distributed Version Control Systems (DVCS)."
Feature is a battle-tested feature toggle library for ruby. The feature toggle functionality has to be configured by feature repositories. A feature repository simply provides lists of active features (symbols!). Unknown features are assumed inactive.
Simple, reliable feature toggles in .NET
FeatureSwitcher is little library for feature switches/toggles.
Features helps you to determine whether or not a feature should be made available to one or more users. You can choose one of the following ways: Enable a feature only for a specific set of users; Enable or disabled for a percentage of users; Disable a feature.
This repo contains the unleash-server, which contains the admin UI and a place to ask for the status of features. In order to make use of unleash you will also need a client implementation.
Hobknob is a feature toggle front-end built on top of etcd. It allows users to create and modify feature toggles, which can then be accesesed in your applications.
Strategy driven, segmented feature toggles.