Feature flags separate releasing code from releasing features. New functionality can be deployed turned off, enabled for internal users or a pilot group, measured, and then rolled out gradually. If something goes wrong, the flag is switched off instead of rolling back a deployment.
Flags need housekeeping. Old flags that are never removed make code harder to understand, so teams should track them and remove them once a feature is fully launched. Flags that control access or pricing deserve the same review as any other permission.