I am not disagreeing, there is a bit of a problem though: Often times you simply don't know the exact scope of problems to be solved. You rather have a range trying to cover the needs of your userbase as good as possible but hardly any of them will require the whole set of solutions. The ideal case where you can say with certainty that X is in/out of scope doesn't exist. Even thinking of what such a project would look like is bizarre. A static blob with hardcoded everything (any kind of configuration is obviously bloat when can be absolutely sure that every target environment looks the same).