Without proper visibility of feature flag usage and status across teams, flags can do more harm that good. Using robust dashboards and alerts to understand who owns a flag, why it was created, how long it has existed, and what percentage of users are seeing the flagged feature vs. not is useful to organize the potential flag chaos. Further, this visibility goes across teams, and allows dev and ops to work off of shared flag information to get a release out the door, creating better collaboration and speed of release.
In order to track changes better, consider logging all the changes to a feature flag so you can track who introduced a change and at what time. In distributed teams, this can save numerous hours in figuring out who is responsible or has the rights for a particular change. The effects of feature distribution are not restricted to the engineering team- you should log the feature status to your usage analytics, support systems and more. With CloudBees Feature Flags, we have exposed the impression handler to facilitate reporting to all your different platforms.
Putting feature flags in the hands of non-technical users can be a double-edged sword if the right parameters for use are not in place. Use a granular approach to access controls. Different teams should have different levels of visibility and access to environments and flags. For example, you can consider imposing restrictions on temporary logins for those with support credentials.
Over time, feature flags can contribute to code complexity with deprecated branches and features that were never released or were replaced with something else. Current flags can conflict with previous ones. It can be a challenge to identify which flags are required and which ones are redundant or obsolete. Defining a flag status can help your teams distinguish between short-term and long-term flags. The status field can be dynamically updated after a defined period, allowing your team to identify which flags are safe to remove. To avoid technical debt from building up, you need to carefully manage flags with precise control and visibility into their changes, rollouts and sunsetting. However, with bootstrapped, homegrown systems, all this can be challenging. Using an enterprise feature flag tool will help to simplify and even automate this process.