...
- Pick relevant modules for abstraction against the goals outlined in our Modularity Design. A good consideration is the rule of threes: we should only abstract a module when we have a need for it in three contexts.
- Begin work on one abstraction
- Document approach
- Design implementation of interface or inversion of control
- Review software engineering practices with the working group
- Review code changes and implementation details with working group
- Define success criteria for remaining modules
- Template design work from one slice and share learnings
- Determine remaining modules (what needs new abstraction, against our goals)
- Create working group plan and divide discuss division of work
Proof of Concept:
Introduce Inversion of Control to implement a vertical slice of functionality. We need to find a feature that touches on a few cross-cutting concerns, but just one Bounded Context.
...