Remove `licensed` type from Feature Flags for GitLab Development
Problem
Feature Flags For GitLab Development has a several types of feature flags, and one of them is licensed type.
This type of feature flag sometimes confuses developers as it's for the development of the licensed feature, however, there is a development
type already for that purpose.
In general, licensed type feature flags should be used:
- The feature flag is added when we introduce a alpha/beta feature that can be accessed by only approved users. For example, an year ago Digital Ocean released Kubernetes Integration feature as beta and announced that they were looking for beta testers. Users who wanted to try out the feature had to submit a request form to them and only accepted ones were able to start using it.
- The feature flag is deleted when the beta feature is promoted to GA (Generally Available).
This means
- We should have a alpha/beta user (or project/group) registration process and associate it with the licensed type.
- The feature flag should be disabled by default.
Keep in mind that alpha/beta feature does NOT mean incomplete feature. Alpha feature is a complete feature but has significant limitation thus it's barely useful in real world example, where as incomplete feature is a feature under the development with development
type feature flag thus should not be exposed to the users at all (e.g. you still have open MRs to be merged).
Having said that today's our licensed type is completely different from this direction (e.g. It's enabled by default), therefore should be re-worked.
Proposal
We remove the licensed
type feature flag for now to avoid the confusion and misusing.
Further iteration
At first, we need to investigate if there any needs of alpha/beta tester program in our organization. If there is such demand, we should consider the proper architecture of the registration process.