Train engineers on Feature Flag usage
There have been several pain points when it comes to Feature Flags in development, which can cause bottlenecks in development (especially when working with multiple feature flags at the same time), confusion for product managers and engineering managers regarding whether a feature has been "released" or not, nomenclature discrepancies between a product Feature
and the concept of a Feature Flag | Toggle
. These pain points are particularly difficult when onboarding engineers.
We need to develop training around how to use feature flags successfully, specifically in these areas:
- Clarifying
Operations > Feature Flags
(unleash
) and how this is not what we're referring to during training: https://docs.gitlab.com/ee/user/project/operations/feature_flags.html - How to determine that you should use a feature flag
- Process around adding and removing a feature flag (How do you add a flag, when should you remove a flag)
- How to successfully maintain feature flags
- How do you know when something is already behind a feature flag?
- How do you enable a feature flag locally?
- How to roll out a feature
- What to be aware of when working with multiple feature flags
here
A presentation has been drafted for reviewThere are already some valid, open issues regarding some of these areas:
A blip regarding the history of this functionality:
Starting from GitLab 9.3 we support feature flags via Flipper. You should use the
Feature
class (defined inlib/feature.rb
) in your code to get, set and list feature flags. During runtime you can set the values for the gates via the admin API.