Tests driving your design.
Unit testing, red-green-refactor.
Stub, spy, mock, fake.
Requires test doubles, unclear roles.
Same behavior, different arrangement.
Skinny controller, null object pattern.
Order can care about its own data.
Driven by tests.