Introdution

In the Domain Circular Patterns I introduced the idea of circularity patterns and its crucial role in exploring a complex domain. Also in the The North Star of EDD, I showed the vital role of a main point as the gear of modeling a complex domain. I’ll connecting these two fundamental concepts of Exploratory Domain Discovery in this article.

Domain Circular Pattern in a Flash

Domain Circular Pattern is a repeating, circular patterns which we can find(easily or with a little struggle) in every phenomena around us. The sole benefit of paying attention to these cyclic behavioral pattern in domain that comes with a temporal twist! is that once we’ve identified a pattern we can narrow our focus to start out exploration journey. Also we should keep away from specific scenarios(ok if you’re a developer like me, read it edge-cases 😎).

Accounting Example(again)

Imagine you’re tasked with developing an accounting system for a hypothetical company. This scenario immediately highlights the challenge of working with complex domains. Accounting, much like other specialized fields such as law or medicine, isn’t just about applying technical skills; it demands a deep understanding of the domain itself. As Eric Evans points out in DDD, certain domains possess inherent complexity—the rules, concepts, and processes are intricate and require specialized knowledge.

In this imaginary accounting project, you, as a developer or product owner, would need to effectively become an accountant proxy, learning the language, workflows, and underlying logic of accounting.

The Challenge

You don’t have to go to university to study accounting and become a certified accountant. The real challenge is learning just enough about accounting to join important discussions and make good decisions about how the software works. You don’t need to become an accountant; you just need to understand the basics of accounting, like its main rules, how things are usually done, and why. You can help decide the direction of the software without needing any official accounting qualifications.

The key question then, is: How do developers become sufficiently domain literate to contribute effectively to accounting software projects⁉️

Domain Circular Pattern To The Rescue

The Domain Circular Pattern serves as an effective gateway for developers to begin exploring a domain. You’ll learn a tiny but important things in each step, but putting your feet in the exploration journey guided by EDD.

Main Point in a Nutshell

The main point, a core principle of EDD, is the driving force of any narrative. While it may occupy a small portion of the story, it’s the essential element that shapes the entire narrative and informs our design. Consider it the engine that powers our story and design decisions.

Main Point Per Domain Circular Pattern

The Domain Circular Pattern and the Main Point are interconnected core principles of EDD. Identifying a recurring pattern within a domain often leads to the discovery of its corresponding Main Point. Conversely, recognizing a Main Point suggests the existence of an underlying circular pattern. Therefore, before proceeding further, seek and visualize this pattern.

So

Each domain circular has a unique main point.

Example Time😎

// TO DO 🙋‍♂️

Promise: I'll delve into accounting domain soon. I'll run a complete EDD rounds for an accounting domain.


If we sharpen our lens, several domain circular patterns will emerge:

  • Financial(Fiscal) Year – A (often)12-months period. This is the more abstract pattern, making it a good choice as the starting point for EDD exploration journey.
  • Year End Closing Period – Resetting temporary accounts for the next period. This cycle repeats for each accounting period (monthly, quarterly, annually).
  • Opening PeriodCircular Pattern: This marks the beginning of a new accounting cycle (usually a fiscal year). It’s directly linked to the closing period of the previous cycle.
  • Adjusting Entries: Making corrections and updates at the end of a period.
  • Journalizing– Recording transactions in a journal.
  • Reconciliation Cycle– This is a separate cycle that can occur at various intervals (daily, weekly, monthly). It involves comparing different sets of financial records.

By Masoud Bahrami

The Man Behind Exploratory Domain Discovery

Leave a Reply

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