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 ...
Get Designing Autonomous Teams and Services now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.