We rarely use them where I work although we've recently had some devs who are trying to get us to adopt it. Personally I think they should be used sparingly for things where you have to be able to configure the same software on different environments differently, for purposes of A/B testing or other such things. Using them a lot increases your code complexity and is basically just tech debt imo. The gain is that you…
I did not know about the term as such, but after reading about it I realised that it's something that our very small team (I can see how being more formal about it can help small teams, especially when they want to have high velocity but do not the capacity to test the hell out of everything, or simply have to support alternate features at the same time.