This means design the interface between modules first - not the modules themselves.
When designing a solution:
- Design the interfaces based on outside parameters, e.g. load factors, or communication and power requirements.
- Only architect the connections up front, not the individual components.
- Leave room to grow, i.e. over engineer these interfaces, because changing these fundamental contracts may be expensive.