Design loosely-coupled, domain-aligned software architectures and organisational structures by learning the principles and practices of Strategic Domain-Driven Design.
This workshop has been fully designed using the online modelling tool Miro. The course contents will teach Strategic DDD concepts and techniques for attendees who work in remote teams or physically co-located teams.
Workshop Summary
One of the biggest challenges of DDD and architecture in general is breaking a large system down into loosely-coupled subsystems.
Working in the setting of a complex domain, you will learn the essential theory of Strategic DDD and Bounded Contexts, and then put it into practice. Using visualisation tools, you will learn how to decompose large problem domains into cohesive, autonomous, domain-aligned bounded contexts which become the blueprint for your software architecture and your organisation structure. The theory and techniques you’ll learn in the workshop will also help you to evolve your architecture over the course of its lifetime.
On your journey, you will be guided by the Domain-Driven Design starter modelling process, providing you with a structured process for exploring and identifying bounded contexts and teaching you the essential questions to ask in order to find a good design, and challenge it to find even better ones. The process will also help you to practise just enough design up-front.
Learning Objectives
- What Strategic Domain-Driven Design is
- Applying heuristics for designing bounded contexts
- Designing contracts between bounded contexts
- Defining communication patterns between teams
- Finding where to invest by defining the strategic importance of subdomains
Agenda
- Collaborative exploration of the business domain using EventStorming;
- Identification of candidate Bounded Contexts;
- Discovery of heuristics for dividing the domain into subsystems;
- Strategic classification of contexts;
- Validation of choices using Message Flow Diagrams;
- Use of the Bounded Context Canvas;
- Mapping contexts using Context Maps;
- Questions: key points are explored in depth and no critical question is left unanswered!
Who Should Attend?
Anybody who works in software teams or with software teams will be able to fully participate in this workshop and take away concrete skills they can apply in real working situations. The following is a selection of the types of people who may want to attend:
- Software Engineers of all levels
- Architects
- Testers
- Product Managers / Owners
- Business Analysts
- Delivery Managers
This workshop is highly practical and interactive, broken down into a series of lectures, group activities, and discussions. Active participation is required, as attendees should be willing to work in small groups with other attendees and contribute to modelling activities on a whiteboard.
Requirements and Skill Level
You don't need knowledge of Strategic Domain-Driven Design, any particular programming language or technology.
What participants say about this workshop
"In the short term, this workshop helps me illustrate the dependencies (intended and unintended) between different teams. In the long term, I've learned tools to help make choices and model as a team."
"This workshop fills some gaps I had with the strategic aspects of DDD in practice. I learned new collaborative and visual tools that I will use with our clients."