Summary
We’ll explore the central premise of software design and strategy. We will explain what Domain-Driven Design is, how it helps with design and strategy, and when it is valuable to use.
Learning outcomes
- Understanding of software strategy and design
- Understanding of Domain-Driven Design
- Why Domain-Driven Design is helpful when developing software
- General overview for digging deeper into specific topics for Strategic DDD
- General overview for using the Tactical Patterns of DDD
Agenda
- Part 1 : What is software design?
- What is software design, what is it not?
- Part 2 : The principles of Domain-Driven Design
- How does Domain-Driven Design help you with software design?
- What is Domain-Driven Design, what is it not?
- Part 3 : Complexity
- What are the causes of complexity?
- What is the difference between essential and accidental complexity?
- What are the causes of accidental complexity?
- How Domain-Driven Design can help with reducing this complexity?
- Part 4 : Models
- What are domain models?
- Part 5 : Strategy
- What is design strategy?
- How does Strategic DDD help you with design strategy?
- Part 6: Execution
- How do you translate strategy to production code?
- What are the Tactical patterns of DDD?
- How do the Tactical Patterns help you with translating strategy to code?
Audience
Anybody who works in software teams or with software teams. The following is a selection of the types of people who may want to attend:
- Software Engineers of all levels
- Team leads
- Technical team leads
- Architects
- Testers
- Product Managers / Owners
- Business Analysts
- Delivery Managers
- Domain experts
Active participation is required, as attendees should be willing to work in small groups with other attendees and contribute to remote activities on a virtual whiteboard.
Prerequisites
You don't need knowledge of Domain-Driven Design, any particular programming language or technology. We will use Zoom and Miro during this workshop.