Summary of Sub-Domains from Business Capabilities (Ian Cooper)
Main Financial Strategies and Business Trends
-
Domain-Driven Design (DDD):
- Focuses on isolating the domain model from infrastructure concerns, emphasizing the importance of the model in business impact.
- Encourages collaboration with domain experts to create a ubiquitous language that aligns with business terminology.
-
Partitioning Strategies:
- Use Cases: Identifying actors and their goals to define system interactions.
- Responsibilities: Each domain object should fit within a specific responsibility, helping to clarify system boundaries.
- Event Storming: A technique for modeling events in a system lifecycle, which can help identify potential partitions.
- Value Stream Mapping: Used to analyze business processes and their steps to determine how to structure software systems.
-
Bounded Contexts:
- The concept of Bounded Contexts is crucial in defining the boundaries within which a particular domain model is valid.
- Each bounded context should encapsulate a specific business capability and its related processes.
Methodology/Step-by-Step Guide
-
Creating a Domain Model:
- Gather domain experts and stakeholders to discuss and define the language and terms used in the domain.
- Use techniques like CRC cards to collaboratively design the model based on responsibilities and interactions.
-
Partitioning a System:
- Identify key business processes using Value Stream Mapping.
- Conduct workshops to map out the lifecycle of business activities and the associated actors.
- Analyze responsibilities and knowledge levels to determine how to best partition the system.
-
Utilizing Event Storming:
- Model the lifecycle of events related to a specific domain (e.g., a food order).
- Identify commands that trigger events and the states that result from these events.
-
Iterative Design:
- Use feedback from workshops and discussions to refine the model and its boundaries.
- Regularly revisit and adjust the partitioning strategy based on evolving business needs and insights.
Presenters/Sources
- Ian Cooper, who has extensive experience in software development and Domain-Driven Design.
Notable Quotes
— 10:01 — « A persuasive metaphor introduces the risk design will take on aspects of the analogy that are not desirable for the problem at hand. »
— 12:02 — « This idea effectively of I want to move through layers I think the responsibility bit is interesting but I think responsibility layers are not particularly useful. »
— 16:50 — « I would tend to use it more to describe one model rather than look for how many models work. »
— 17:33 — « A process is usually a verb-noun combination that is something your business does like make lunch or prepare a bill. »
— 21:40 — « Those tend to be reason good candidates for effectively breaking up your system into processes which make good candidates to be individual pieces of your software. »
Category
Business and Finance