Minimize Impact from External Changes

Use a model to track ripple effects across a Hexagonal Architecture.

The Change

When a change is rippling across the system, use the model to guide your shifts in perspectives as you follow it.

The Value Proposition

External systems change constantly. Most of those changes won’t affect our purpose, but some will. The hard part is to detect the changes that will cause us problems. Even after we detect a change, we can’t always respond the same way. Some changes will break our assumptions and we have to change our code to compensate. Other changes will enable new functionality that we want to leverage. Both can have implications for our core code or other external systems…or not. It can be hard to figure out where and how to change our code.

This is where our combination of Contract Tests and Simulator Tests really saves the day. The interlocking nature of these tests allows us to isolate each chunk of code, decide what changes to make, and see what changes that forces on the next part of our system. We can incrementally follow this sequence of changes until our system has fully absorbed the change.

Following our tests gives us several advantages:

  1. Prevents unecessary changes.
  2. Prevents missing a place where one change requires another.
  3. Discovers the right places to change our code one at a time.
  4. Keeps our code shippable even as we migrate the change through our codebase.
Please log in

This content is only available to students. Please log in to access it.