In his article, Grischa Ekart talks about the implementation strategies for feature toggles. how they play into continuous delivery, and how they help developers deliver better software, faster. He goes on to highlight the different configuration options and theory behind feature toggles.
Feature toggles are gaining importance with continuous delivery pipelines in large projects as they help decouple deploying from releasing. Coordinating branch merging and releasing features to common environments in parallel teams leads to serialisation of tasks and therefore decreased velocity. By removing the all or nothing release strategy, feature toggles help regain the necessary speed, albeit at the a cost. Apart from increased operational complexity, additional risks arise from using feature toggles intensively, specifically when used as release toggles to mask unfinished code. According to Jim Bird, feature toggles make “code more fragile and brittle, harder to test, harder to understand and maintain, harder to support, and less secure.” The main argument is that bringing untested code into production that might be exposed accidentally is a bad idea. He cites a business failure at a financial institution as an example for such a situation. “Feature toggles require a robust engineering process, solid technical design and a mature toggle life-cycle management. Without these 3 key considerations, use of feature toggles can be counter-productive.”
Source: InfoQ Article