Model the Business Domain

Terms, concepts and capabilities of the business should be reflected in the way we write, structure and deploy our code and systems.

Rationale

Using a common language throughout the team to describe business concepts and processes allows for a common understanding. Misunderstandings that lead to defects are easier to identify because the language that is used allows non-technical stakeholders to understand and correct it.

Structuring component systems to reflect coherent business capabilities and influence the organisational structure will enable product/business owners, teams and systems to be more closely aligned to the customer value they provide, resulting in more responsive delivery and operations.

Implications

  • We will need to take advantage of Conway’s Law (where software reflects the organisation that built it) to validate and influence both the systems we write and how we structure the organisation.
  • We will need to apply domain modelling techniques to identify bounded contexts, using a context map to align system boundaries and interfaces.
  • Where packages have their own model and terminology, we may need to create abstraction layers to map to our business model.