It says: Feature flags are built upon conditional logic that control visibility of functionality for users at run time. In modern cloud-native systems, it's common to deploy new features into production early, but test them with a limited audience. As confidence increases, the feature can be incrementally rolled out to wider audiences.
Looks like this supports an advanced form of, let's be generous, integration testing.
Other uses mentioned by the article: Restrict premium functionality to specific customer groups willing to pay higher subscription fees. Stabilize a system by quickly deactivating a problem feature, avoiding the risks of a rollback or immediate hotfix. Disable an optional feature with high resource consumption during peak usage periods. Conduct experimental feature releases to small user segments to validate feasibility and popularity.
All of this sounds to me like an urge to release before something is technologically mature. (note, not functionally mature, that's just A/B testing).
Sometimes I wonder that if you need these things, are you really sure about anything you're doing at all? I don't mean the individual developer, I mean the software industry at large.
Imagine a civil engineer saying: yeah we're gonna build a new bridge here, and we're gonna let in only like 10 cars a minute, just to see if it holds. Then later, as we get more confidence, we can open it up more.
or
We're gonna add a way to temporarily block this off ramp from the highway to the city. If it gets too busy we can just block the off ramp, and everything will be fine.
I feel that most of the reasons mentioned above, except for A/B testing, are kind of bogus. Maybe somebody with more experience can share a counter view.