Feature flags are rules or “toggles” that can be switched on and off by an admin which control how users see or use certain aspects of an application.
Feature flags are used to enable or disable a feature while an application is live and running. Typically only those with admin access have access to control feature flags. If a feature has a bug or starts to malfunction, having the ability to hide that feature from real users with a feature flag is a huge advantage. An admin can also choose to only reveal certain features to certain users, or have beta testers try out a new feature before releasing it as a permanent feature.
Feature flags can also be used to deploy complete, new features quickly without having to restart the server and risk downtime. However, feature flags can create technical debt, so it’s important that software engineers review feature flags diligently and consistently remove unneeded feature flags.