The plumbing and scaffolding logic to support branching in code becomes a nasty form of technical debt, from the moment each feature switch is introduced. Feature flags make the code more fragile and brittle, harder to test, harder to understand and maintain, harder to support, and less secure.
Thought-provoking article. Everything has trade-offs. While feature toggles make it a lot easier to keep big changes in mainline development instead of on interminable feature branches, it’s good to recognize their potential dark side.