Introduction
Following my introduction of Domain Circular Patterns, I’ve received several questions about their practical application. This article answers a common one: how do these patterns help us manage the inherent complexity found within various domains?
Circularity
Look at the things around you. Chances are that you would see a notion of time, a date or even wearing a watch or seeing it on a phone. Whether or not you have or can see those, you are surrounded by numbers-(0,1,2,…,9). It’s also probable that you’re listening to music. I’m not sure when you’re reading this article, it’s night or day, but again we have a simple repeatable pattern. Yes, you’re right, the seasons on any calendar are the same. And then there’s a vital, personal, and constant repetition: your heartbeat!💓
By looking deeper into these phenomena, we can find that all of them have a notion of circularity
inherent in their very nature, regardless of whether they are man-made(or woman-made) or not.
⌚Time
is measured cyclically in hours, minutes, and seconds. Each unit resets after a specific interval: seconds after 60 ticks, minutes after 60 ticks, and hours after 24 ticks. Each reset also increments the next larger unit. The pattern is the same for all three; only the scale changes.
🎼Musical
has its own special writing system called musical notation. It’s like a language that everyone who plays music can understand, no matter where they’re from. You could even say it’s like a simplified language—a pidgin—for the complex world of music. This language is pretty simple, using just seven main notes-called an scale. But even though the notes are simple, music can be very different – some songs are long, some are short, some are happy, some are sad, and they use lots of different instruments. Compare a simple music instrument like Violin with a Piano(from pov of …). Musical pieces are constructed from just seven notes, which are repeated in different octaves to create higher and lower pitches.

Circularity Whitin the Software Domain- stringing the beads
Each software project we develop addresses a specific domain. This domain represents the problem we’re trying to solve. Every domain has a story, a context, and inherent characteristics. Just like the examples mentioned previously (time, music
, etc.), the software domain also exhibits a tendency towards circularity, with repeating patterns inherent in its nature.
Accounting and payroll systems rely on repeating cycles. Accounting has a yearly cycle (fiscal year) with year-end closing and new year opening procedures. It also includes regular reporting, like monthly or quarterly reports. Payroll has payment cycles, such as weekly or monthly pay periods. These cycles help with tracking finances and paying employees regularly.
In the brokerage domain, cyclical patterns are also widespread. These include daily, weekly, and monthly trading cycles, influenced by market open and close times, trading volume fluctuations throughout the week, and the release of monthly economic data.
Within the software domain, a tendency towards circularity is observed.
The Importance
I’ve got a couple of reasons for loving music! 🎵 So let’s take another look at the world of music. Imagine you’re a newbie to music. Discovering that music has cyclical patterns—repeating just seven notes called a scale—for every piece and instrument can be a real game-changer. It means you can start your musical journey by focusing on learning just this core set of seven notes, their relationships to each other, and their written notation. Understanding these relationships within this core set makes learning the scale in different octaves (higher or lower pitches) much smoother. As mentioned before, the seven notes in each scale simply shift up or down in pitch—they move forward or backward, or more technically, they are transposed to a higher or lower pitch. Congratulations!
The established circular pattern provides powerful clues for choosing the right starting point for learning music, preventing you from becoming overwhelmed and giving up. Have you ever started learning something, only to stop disappointedly after a while?
The established circular pattern provides powerful clues for choosing the right starting point
Get Back to Software Development
As Alberto Brandolini said: “Software development is a learning process.“. It’s unlike a traditional teacher-student session in a university. As software developers or product managers, we are the authors of the story of our software’s domain.
Some domains, like accounting or payroll, are exceptionally complex. It might seem like you need to be a qualified accountant or payroll specialist just to provide a viable solution and accurately model the problem. The (perhaps unwelcome) truth is: you’re not entirely wrong!
Therefore, how and where we begin our learning journey in such a complex domain is crucial. It’s like jumping into a pool with varying depths. For a non-swimmer, jumping into the deep end is rarely a wise or rational choice. If we relinquish control of the learning process and rely solely on business experts to guide us, they are likely to start us off in the deep end, assuming a level of prior knowledge we may not possess.

In a complex domain, how and where we begin our learning journey is crucial.
Domain Circular Patterns To The Rescue
Cyclical patterns within a domain act as a life raft, providing valuable clues for determining how and where to begin our learning journey. Once we’ve identified a pattern, we can narrow our focus during exploration. We might even ask: Can we understand the entire process by mastering just one iteration of this fundamental pattern?
In an accounting system, we can focus and begin with the simple financial/fiscal year as the most dominant cyclical pattern within the system. It’s important to recognize that working with a specialized system like accounting often involves grappling with a large volume of data, especially if approached incorrectly. Identifying the right starting point in such a domain can be challenging.
Hold on Masoud, I’m not convinced yet.
Hmmm, okay, I’ll get back to you again. // TO-DO 🥱
The Where Part: Start the journey form a financial-fiscal year.
The How Part: Start by asking and looking for what happens in a financial year in an abstract and top-level perspective. Working backwards from end. What is the final activity in a financial year, just before closing the books and ‘calling it a day’? This final activity represents the ultimate goal of the entire annual cycle and provides an end desired goal for Exploratory Domain Discovery.