I hear this time and time again and it is the biggest fucking cop-out. We write code for all stakeholders, not just for us. A product manager's (or worse, a focus group's) "good decisions" are more-often-than-not lowest-common-denominator drivel that has lead us to the current reality of terrible software -- it's like a tragedy of the commons where everyone acting in their own rational self-interest ends up overfishing the lake and then suddenly the town is facing starvation.
Boo-fucking-hoo, write the extra test case.
I'd be less bitter if I didn't feel this sentiment was almost single-handedly responsible for the death of "options for power users"
It's not "the extra test case." It's literal exponential growth in the number of test cases as you add more and more toggles.
It can still be justified to add configuration options, but you can't safely test one feature in isolation and assume that it will never interact with any others.
We don't necessarily need every case to be testable, and even so thoughtful use of occams razor or something can prevent the kind of exponential worst-case scenarios that almost nobody wants.
My problem is that contemporary software design seems to draw that line at a place that allows for few use-cases. It seems to be especially prevalent in modern enterprise stuff like Slack or Skype -- with the latter being a very good example of the old ways (e.g. original skype clients) regressing into the new ways (e.g. latest skype version).
If you practice the minimum of separation of concerns then it won't be O(m*n) just O(m+n). Do you really need to test email notifications twice just because the channels no longer jump around in the channel list?
Boo-fucking-hoo, write the extra test case.
I'd be less bitter if I didn't feel this sentiment was almost single-handedly responsible for the death of "options for power users"