Contract-First Design

From Open Source Ecology
Jump to: navigation, search

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.