One of the things I said at one of my talks last week perhaps deserves a wider audience:
You are always optimising for something. If you don't know what it is, you're probably optimising for the wrong thing.
Sometimes it's fine to optimise for not thinking about the decision. If the question is what to wear this morning or what to eat for lunch, doing a full design-space exploration is probably not a good use of your time and just 'pick something that isn't terrible' is fine.
A lot of the rest of the time, it actually does matter. You are usually in a multidimensional trade-off space and need to make sure that you're in a good place on the axes that you care about and not closing off bits of the space that you don't yet care about. This is especially important when designing a standard but it applies in varying degrees whatever you're building.
The worst thing you can do in a lot of domains is try to build a 'general purpose' thing. That is not one of your options. You end up building something that is in one corner of the design space and has optimised for an inconsistent set of things. If you think you're building a general-purpose thing (programming language, ISA, boat, sink, whatever), you almost certainly haven't. It might be one that covers a range of use cases, but it's also one that omits a lot more and you don't know what those are because you didn't intentionally design to enable specific ones.
