Exploratory Domain Discovery

The art of Strategic Decision-Making

Learn More!

Exploratory Domain Discovery(EDD)

Exploratory Domain Discovery is yet another collaborative modelling and designing tool, that helps a team be on the same page about the complex domain being modelled. It helps you with a model that can back your strategic decision making.

EDD's Philosophy

image
  • Domains often follow cyclical patterns.
  • Domains have recurring patterns.
  • Most of a domain's information is context for a single, main idea.
  • Domains often follow cyclical patterns.
  • The Main Point is the main driver of its context.

Exploratory Domain Discovery offers a solution by

  • Bringing together the relevant people in the early stages.
  • Facilitating collaboration on defining the problem.
  • Collaborative visualization of the problem .
  • Finding circulatory patterns in the problem.
  • Focusing on grasping the core (main point) of the problem.
  • Modeling the problem from the DESIRED! end states back to the beginning.
  • Providing only the necessary information at each stage by keeping the abstraction level on each exploring phase
  • Jointly evaluating the understanding of the information, which forms the foundation of the model by Examples

EDD's Golden Rules

    Keep the abstarction level in each round of exploration.
  • (Explicitly) Start from the End Desired Goal.

Key Elements of Exploratory Domain Discovery

Domain Concept

A significant concept within the problem space from a business perspective (e.g., "Hotel Voucher," "Booked Room," "Hotel Availability," "Hotel Room Pricing").

Example

A concrete example is provided to clarify and evaluate each domain concept (e.g., a sample hotel voucher).

Relationship

Inherent connections exist between domain concepts within each layer of the model (e.g., the relationship between legal documents and a finalized hotel room booking).

Questions and Discussions:

All questions and discussions are welcomed and documented to facilitate a thorough understanding (e.g., "What if a guest cancels a reservation?" "How should the cancellation policy be applied?").

Business Rule

A business rule governs one or more domain concepts by defining a constraint or condition (e.g., checking room availability, ensuring children have a parent/guardian).

Main Point (Core Concept)

The primary domain concept is explicitly and clearly identified (e.g., "Hotel Room").

Exploratory Domain Discovery Methodology


Identify Cyclical Patterns within your domain by examining time-related concepts.

Examples include financial periods, daily bank closures, hotel contracts, employee pay cycles, and temporary or permanent hotel closures.

These cyclical patterns provide valuable clues for identifying the core domain concepts.



Once these patterns are identified, follow these steps:


  • Start from the desired end state and work backward to the beginning.
  • Maintain a consistent level of abstraction.
  • Talk and Doc.
  • Capture the sequence of domain concepts.
  • Establish the relationships between these captured concepts.
  • Define essential properties for each domain concept.
  • Provide concrete examples for each domain concept.
  • Narrate the domain story from both the end to the beginning and the beginning to the end.

Continue exploring by diving deeper into the next level of abstraction. The question arises:

Should all domain concepts be fully elaborated during the initial cycle?

While it's tempting to detail every concept initially, prioritize those directly related to the core cyclical pattern discovered in the first cycle. Subsequent explorations should then expand upon these prioritized concepts.

image

About The Author

I’m Masoud. Creator of Exploratory Domain Discovery

Hire me If you need help building autonomous teams and services, modelling complex domains using #DDD, #Microservices consultant or trainer, having a good culture of #TDD, #BDD and test automation Masoud@MasodBahrami.ir ID: @masodbahrami