We are working on using FeatureFlags or Toggles in our applications. For one we are aiming to do all our work on mainline branch at all times so this would be a key coding discipline to use FeatureFlags so we can hide a feature in progress knowing it will not interfere with the application. For example if a hotfix or another feature is ready to go to production we can push that with no worries of the in progress feature.

FeatureFlags so we can hide a feature in progress knowing it will not interfere with the application

You can see many of the reasons in this article http://martinfowler.com/articles/feature-toggles.html by Pete Hodgson for using this system. So not just the more common situations of permissions but also Release Toggles, Experiment Toggles and more see list and image below

enter image description here

Release Toggles

Ops Toggles

Permission Toggles

Experiment Toggles

The core coding logic I will be using is this library Atriedes/feature as it has the logic needed to consider common feature flag states eg user, users, on, off, groups, admin, internal, random etc.