Chapter 3. Analyzing Domains
The heart of software is its ability to solve domain-related problems for its user.Eric Evans
After articulating your business strategy, the journey to autonomous teams continues by learning how to identify cohesion in your problem domain—finding concepts that change together for business reasons. Aligning teams and software systems with domain cohesion minimizes organizational and technical dependencies—the holy grail of autonomy.
Learning how to analyze your domain involves looking for patterns and abstractions. Just like software can be reasoned about as patterns and abstraction so can problem domains. In this chapter, you’ll see some of the most prominent patterns used for reasoning about domains, including subdomains, business processes, and user journeys. You’ll start to see the trade-offs involved in deciding which of these constructs you should align your teams and software with. In the next chapter, you’ll then learn practical techniques for discovering these constructs in your domain, and designing your teams and code around them.
Finding Domain Cohesion
Relationships exist between concepts in your domain. Concepts with the strongest relationships change together most often and, therefore, represent raw domain autonomy. Take the real-estate domain for example; living room space and outdoor space have a strong relationship because they describe different physical attributes of a property. However, the concept of a purchase date relates ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access