Feature Toggle

aka Feature Flag, see also A/B Test. Feature Toggles (often also refered to as Feature Flags) are a powerful technique, allowing teams to modify system behavior without changing code. They fall into various usage categories, and it's important to take that categorization into account when implementing and managing toggles. Toggles introduce complexity. We can keep that complexity in check by using smart toggle implementation practices and appropriate tools to manage our toggle configuration, but we should also aim to constrain the number of toggles in our system.

A feature toggle in software development provides an alternative to maintaining multiple feature branches in source code (trunk-based development). A condition within the code enables or disables a feature during runtime. In agile settings the toggle is used in production, to switch on the feature on demand, for some or all the users. Thus, feature toggles do make it easier to release often. Advanced roll out strategies such as canary roll out and A/B testing are easier to handle.[1][2] Even if new releases are not deployed to production continuously,continuous delivery is supported by feature toggles. The feature is integrated into the main branch before it is completed. The version is deployed into a test environment once, the toggle allows to turn the feature on, and test it. Software integration cycles get shorter, and a version ready to go to production can be provided.[3] The third use of the technique is to allow developers to release a version of a product that has unfinished features. These unfinished features are hidden (toggled) so that they do not appear in the user interface. There is less effort to merge features into and out of the productive branch, and hence allows many small incremental versions of software.[4] https://en.wikipedia.org/wiki/Feature_toggle

2022 O'Reilly ebook by John Kodumal, which you might be able to get free via LaunchDarkly or others


Edited:    |       |    Search Twitter for discussion