INTENSIVE REMOTE COURSE for developers, analysts, product owners
Learn to put the domain model to work! In six half-day sessions over 3 weeks, Eric Evans and Jessica Kerr work with participants over Zoom and other online collaboration tools. Optional homework adds hands-on coding for those who choose to spend the extra time.
During the pandemic, we’ve extensively reworked our training as a remote offering. Although nothing can quite match in-person interaction, there are some advantages — especially spreading the training over a longer time. This gives time for reflection, and makes it easier to accommodate into a busy schedule.
Our Training Isn’t Just Technical Modeling Techniques
Finding and exploiting domain models is a key to success with large software systems. With a strong connection between the language used by experts, users, and developers; the right kind of models; and the right attention to implementation, we dramatically accelerate the process of translating the customers’ needs into working software. Zooming out to a strategic view maximizes the impact from our finite modeling and design efforts. This training will help participants strike a healthy, principled yet pragmatic balance of strategic and tactical, abstract and concrete.
We weave together lecture, discussion, and classroom exercises, including hands-on coding homework. In discussions, attendees have the opportunity to discuss their own experiences and relate their own work to the principles and techniques presented in the class.
Recommended Background
- Some exposure to medium to large-scale software development in a multi-team environment.
- Basic knowledge of object modeling and design.
- We encourage non-technical managers and analysts to attend. A mixed class is ideal. To make the code exercises work, we only need half of the attendees to have programming skills on the target platform (basic Java).
Course Outline
Week 1: Model Exploration and Ubiquitous Language
- Domain-driven design overview
- Making implicit concepts explicit
- Moving around in The Whirlpool
- Ubiquitous Language
- Brainstorming models
- Techniques and pitfalls of bringing about a creative collaboration.
Week 2: Strategic Design
- Context Mapping: A pragmatic approach to dealing with diverse models and designs on real projects
- Relationships between subsystems, relationships between teams
- Distilling the Core Domain: Distinguishing the strategic leverage point from the necessary but routine
- Focusing effort
- Clarifying a shared vision
- Setting up a project for success.
Week 3: Implementation Concerns and Supple Design
- Expressing a model in software
- Patterns and techniques to tighten models and their connection to code
- Making code obvious, easier to use and change
- Modeling for transactional integrity and distributed systems (microservices)
- Deeper into Strategic Design
- Design/code challenge – model supple design with context map
- In-depth discussion and Q&A, relating all topics to each other and to your own work.