The North Star of Design: Heuristics for Finding the Main Point

Introduction

In The North Star of EDD: The EDD’s Main Point I explained how identifying the main point is essential for effective domain modeling in Exploratory Domain Discovery. Now, the question is: how do we actually find this crucial element? In this article, I’ll share practical clues and heuristics to help you uncover the main point of your domain’s narrative—the central idea that shapes your software.

1. Focus On What The Problem/Domain Is Really About

This heuristic asks for the core purpose of the domain. The gear⚙️ of the design should support the purpose of the domain and its main goal. Ask yourself: What’s the key problem we’ve got together to solve? This hubristic helps you to narrow your focus.

  • In accounting domain, it’s about tracking financial transactions and providing a clear picture of an organization’s financial health.
  • In payroll, it’s about accurately calculating and distributing employee compensation while adhering to legal requirements.
  • In flight booking, it’s about connecting passengers with available flights and managing their travel arrangements.

The gear⚙️ of the design must directly support the domain’s purpose and its main goal.

2. Centrality In Use Cases

As being the north star, it should be central for most use cases. It should happens the most in the domain. Look for key operations/features in the domain. Also if we look at the EDD wall, chances are that it recorded on a domain concept card that split the wall in two equal parts. This focuses on the main point most frequently used in key operations.

  • In accounting, both Transaction (used in recording entries, generating reports) and Account (used for balances, reconciliation) are central.
  • In payroll, the Paycheck or PayrollRun is central, used in calculations, distributions, and reporting.
  • In hotel booking, the Hotel Room is central to booking, canceling, changing, and viewing flight details.

3. Data Flow And Interactions

This heuristic traces how data moves through the system. This heuristic focuses on how data is transformed and used within the system. It’s about understanding the journey of information from its origin to its final destination. By tracing these data flows, you can often identify the entity or concept that plays a central role in processing or coordinating the data. Chances are that it’s again central.

Lets delve into Accounting:

  • Inputs: Financial documents (invoices, receipts, bank statements).
  • Outputs: Financial reports (balance sheets, income statements, cash flow statements).
  • Data Flow:
    1. A Transaction is recorded based on a financial document.
    2. The Transaction data (debit/credit amounts, accounts affected) is used to update Account balances.
    3. Account balances are used to generate Reports.

While both Transaction and Account are important, the flow of data through the Account (being updated by transactions and then used for reports) makes it a strong contender for the design-level main point, especially if reporting and balance management are key focuses. If detailed audit trails of every transaction are the focus, then Transaction becomes the main point.

Flight Booking:

  • Inputs: Available Flights, Customer preferences (dates, destinations).
  • Outputs: Booking confirmation, BoardingPass.
  • Data Flow:
    1. Customer searches for Flights.
    2. Customer selects a Flight and provides Passenger details.
    3. A Booking is created, linking Customer, Flight, and Passenger information.
    4. Payment is processed for the Booking.
    5. A BoardingPass is generated based on the Booking.

The Booking is the central point where all the information comes together and is used to generate subsequent outputs. It coordinates the relationship between Flight, Customer, and Payment.

4. Look For Repeating Tasks or Activities

This heuristic focuses on the repetitive actions or processes that are fundamental to the domain. By identifying these recurring tasks, you can often pinpoint the entity or concept that is the subject or object of these actions, which is a strong indicator of the design-level main point.

Ask yourself: What’s the most repeating task or daily task or routine task in the domain?🔂

  • In accounting, the recurring task is recording and posting Transactions.
  • In payroll, it’s calculating and issuing Paychecks for each pay period.
  • In flight booking, it’s the process of creating and managing Bookings.

The recurring tasks are often reflected in the core use cases of the system. By considering the recurring tasks and activities within a domain, you gain a valuable perspective on the core dynamics of the system and can more effectively identify the design-level main point.

5. Look For Money Exchange

This heuristic focuses on identifying the core exchange of value within the domain. While often involving monetary transactions🤑💸, Value can take many forms. The entity or concept representing this exchange is a strong candidate for the design-level main point.

  • In accounting, Transactions represent the exchange of money or assets.
  • In payroll, the Paycheck represents the exchange of labor for wages.
  • In flight booking, the Booking represents the exchange of money for a flight reservation.

6.Encapsulation And Ownership

This heuristic focuses on identifying the entity or concept that owns or manages other related data or behavior. The owning entity is responsible for maintaining the consistency and integrity of the encapsulated data. This often indicates a strong candidate for the design-level main point.


  • In accounting, an Account might encapsulate a collection of Transactions.
  • In payroll, a PayrollRun might encapsulate individual Paychecks.
  • In flight booking, a Booking encapsulates Passenger details, Flight information, and Seat assignments.

7.Focus on the Operational Actor

This heuristic focuses on the operational actor—the person or role who performs the most frequent, repetitive, and hands-on tasks within the domain. Avoid considering strategic or managerial roles.

Identify the various roles or actors involved in the domain. For each role, list their primary responsibilities and activities. Focus on the roles that perform repetitive, operational tasks. The entities or concepts that these operational actors work with are strong candidates for the design-level main point.

  • In accounting, it’s the Accountant who works with Accounts and Transactions.
  • In payroll, it’s the PayrollOfficer who manages Payrolls.
  • In flight booking, it’s the Passenger who creates Bookings, though the system itself manages the bookings after creation.

By Masoud Bahrami

The Man Behind Exploratory Domain Discovery

2 thoughts on “The North Star of Design: Heuristics for Finding the Main Point”

Leave a Reply

Your email address will not be published. Required fields are marked *