DDD
Discussion, listening, understanding, discovery, and business value, all in effort to centralize knowledge. (Vaughn Vernon. IDDD)
Main things to have in mind:
- Bounded Context
- Ubiquitous Language
Strategic Patterns
Domain, Subdomain and Bounded Context
Ubiquitous Language
From Business side:
- User Stories
- Specification by Example, BDD
- Event Storming
- Domain Storytelling
From Technical side:
- Pair programming
- Code review
Tactical Patterns
Shared Kernel
It’s a domain shared with more than one bounded context. Needs to be agreed with all the teams so it might be hard to evolve.
I strongly recommend avoiding it as much as possible until the teams are mature enough with their domain.
Resources
- ddd.fed.wiki.org/view/shared-kernel
- What Is Domain-Driven Design?, Vladik Khononov - Context Mapping