Video summary

Sub-Domains from Business Capabilities (Ian Cooper)

Main summary

Key takeaways

Business and Finance

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

Original video