9 Identifying domains and subdomains

 

This chapter covers

  • Understanding the principles for identifying domains and subdomains
  • Exploring possible domain boundaries with heuristics
  • Identifying domains and subdomains with EventStorming
  • Grouping subdomains into domains
  • Assessing and refining domain boundaries

Whatever ambitious outcomes you hope to achieve with modernization, structuring teams effectively and designing a loosely coupled architecture will play an important role. Well-defined boundaries reduce dependencies in an organization and in software, empowering teams to deliver changes rapidly with fewer blockages. The benefits of good boundaries also extend into value discovery. Teams empowered to grow their expertise in a particular business area can contribute far more than just writing code. They can combine their domain knowledge and technical expertise to propose new product innovations. Good boundaries empower teams and help unlock their full potential.

9.1 The value of good domain boundaries

9.2 Domain identification principles

9.2.1 Domain boundaries depend on your goals

9.2.2 Concepts can be coupled by multiple characteristics

9.2.3 Not all dependencies are equally costly

9.2.4 Explore multiple models

9.2.5 Industry example: The British Broadcasting Corporation

9.2.6 Don’t rely on superficial knowledge

9.2.7 Good boundaries are not a panacea

9.2.8 Prepare for constant evolution

9.3 Domain boundary heuristics

9.3.1 The five guiding domain-boundary heuristics