In this age of software eating the world Release Early, Release Often is applicable for everyone and Continuos Delivery is right for everyone. The first step towards Continuous Delivery is having a right Continuous Integration where every commit is integrated and confirms the readiness "to deploy". It is hard to achieve Continuous Integration without Mainline Development or Trunk Based Development and Feature Toggles. The Feature Toggle technique is often rarely spoken even though it is simple.
But feature branching has been popular for long, and everyone knows about the “merge hell”, a common issue because of long-lived branches or infrequent integration. How do you continuously merge, test and release software with great confidence without spending too much time on merging and fixing conflict issues? That is where Mainline development, one of the key practices of Continuous Delivery, comes into the picture and Feature Toggle works in conjunction with the same.
Feature Toggle [also referred as Feature Flip, Feature Switch, Feature flag] is a simple technique which allows you to turn on or off a feature through configuration. Feature toggles give you the flexibility to toggle features in specific environments i.e. turn on a feature in testing or staging servers and turn it off the same in production. This also helps to rollback features, as rolling back is as simple as turning off the feature and deploying.