For any engineering task, there are numerous ways a given problem can be solved. The more complex the task, the more room for diversity. That's all well and good for a one-off problem, but if a design is meant to be iterated over time, or if an entire industry is solving that same problem, part reuse and
interoperability become issues to deal with ...