With my next business I’m aiming to do the opposite to number two, I want to address issues in a very old, traditional market and find a few thousand customers delighted with a reliable slow moving product that solves a big issue for them, and if the product were to ever get “feature complete” that would be great afaic.
If I ever get around to making a SAAS or whatever, all new features will have a toggle with a prompt letting existing users choose if they want to enable it or not, including interface changes. (And new users can disable features they don't want to keep things simple. KISS seems to be completely ignored in big tech.) If I can't program cross-compatibility (keep things modular), then I suck as a programmer. If Word Press can have themes, extensions, or whatever, so can I.
Sounds good, but impractical from many standpoints the least of which is the programming aspect. Options for users are the the opposite of KISS (but very nice for them).
If the SaaS is complex, this becomes impractical if toggles for "all new features" is the goal. Maybe a subset is doable.
If it's a simple SaaS by all means go for it. I really like the idea of being able to toggle things I like/don't like. But most of the times I become a "second-rate" citizen in the eyes of devs when I'm on a lesser-used subset of features.
Example is this service I'm using to manage my small company's finance; because I refuse to toggle on a feature that makes life easier for most people (but not mine), getting support for bugs has been very difficult.
If there are 30 feature toggles, there would be 2^30 ≈ 1 billion possible combinations.
Finding the combinations that result in something broken (through some unexpected interaction of features) would be impossible via QA. I guess you could keep a list of the more popular combination of settings and test those. More likely it means you'll let the customers do the QA for you. The customers will not like that.
Not sure if you've ever worked on complex systems before, but features simply don't exist in isolation. Features interact - sometimes in complex ways, sometimes in unexpected ways. The cost of supporting user-facing toggles for every feature in your product grows exponentially.
If you've ever maintained a system that uses developer feature flagging, the cost is large and typically this is for feature flags that should only exist for a matter of weeks or less.