2 DAY WORKSHOP

Domain-Driven Design for software teams

Are you keen to create software that solves the users and stakeholders needs and meets the business goals? Do you want to design and architect software that is adaptable and resilient even when your business evolves? Want to know how your team can take ownership of designing your own software for user needs? If a comprehensive design discipline is what you aim for in your software development journey, our 2-day “Domain-Driven Design for Software Teams” workshop is just for you.

This workshop is designed for anyone who is involved in creating software:

 

  • Software Developers & Engineers
  • Software, Solution & Enterprise Architects
  • Product Managers & Owners
  • Business Analysts & Quality Assurance roles
  • Engineering managers & Scrum Masters
  • Anyone interested in learning Domain-Driven Design to improve their software design process.

Trainers

Kenny Baas-Schwegler

João Rosa trainer

João Rosa

About the

workshop

Start your explorative journey into designing software with Domain-Driven Design, where you’ll explore the advantages of engaging in collaborative domain modelling with stakeholders with your software teams. This 2-day workshop delves into collaboration techniques such as EventStorming, Context Mapping, Example Mapping, and Domain message flow modelling.

These methodologies empower you to take charge of your software design approach and significantly improve the dialogue between stakeholders and software teams. Enhanced communication focuses software teams on addressing the fundamental problems they need to solve.

A pivotal element of this learning experience is grasping the bounded context pattern and its ubiquitous language, which are crucial for defining the boundaries of your team’s independence and its software systems. You will employ the Bounded Context pattern to craft a Context Map, gaining insights into the interconnections within the software. This understanding paves the way for informed design decisions. We will also illustrate how the ubiquitous language manifests in code, achieving a consistent software design. Drawing from real scenarios from either the trainer’s background or participant experiences, we navigate through the complexities and dynamics at play. This approach offers valuable perspectives on integrating Domain-Driven Design into your workflows.

Our 2-day workshop is filled with interactive sessions, real-world stories, and captivating hands-on exercises. We are committed to the belief that practical experience is the cornerstone of genuine learning.

What you will learn

  • The what and why of Domain-Driven Design: Delve into the essential concepts, patterns, principles, and tools that make Domain-Driven Design (DDD) an effective discipline in software development.
  • The need for Collaborative modelling: Participate in hands-on activities in context mapping, EventStorming, domain message flow modelling, and example mapping. These exercises are crucial for developing a deep understanding and establishing a common perspective among your team and stakeholders.
  • Decompose and Distilling Bounded Context: Learn to identify subdomains, define bounded contexts, and develop a ubiquitous language. These skills are crucial for improving team communication and crafting a flexible software architecture.
  • What is the problem we are solving again?  Recognize the importance of software teams comprehending and taking ownership of stakeholders’ and users’ needs. This insight is vital for aligning software solutions with actual user requirements.
  • Decisions that have impact on the overall design: Acquire knowledge about what autonomous teams entail and how context mapping patterns can influence your overall design strategy. This awareness helps in making decisions that shape the software architecture.
  • Connecting Bounded context: Explore the inherent complexities and assess the trade-offs between resolving these within a bounded context or across multiple contexts.
  • Explicitly defining Bounded Context: Use the bounded context canvas to explicitly state the specific user and stakeholders needs it addresses in different parts of your software landscape.
  • Embedding software design in your team: Discover how to integrate DDD into your existing development frameworks, including Agile methodologies, DevOps practices, and Continuous Delivery processes. This integration ensures that DDD principles are effectively aligned with your team’s workflow.

Before
the workshop

Prior experience in Domain-Driven Design is not a prerequisite for this workshop. To help lay the groundwork for the concepts we’ll explore, we provide an optional short introduction to Domain-Driven Design before the beginning of the workshop. This preparatory material is designed to prime your understanding and set you up for maximum benefit from the workshop’s content.
For participants keen on advanced preparation, we recommend delving into “Learning Domain-Driven Design” by Vladik Khononov. This resource offers insightful, accessible guidance for those new to DDD. Additionally, Eric Evans’ seminal work, “Domain-Driven Design: Tackling Complexity in the Heart of Software,” remains an invaluable read for anyone looking to deepen their understanding—a definite advantage for workshop participants.

Our workshop is highly interactive, designed to engage you in hands-on learning experiences. When conducted online, we utilise Miro, a versatile digital whiteboard tool, for our collaborative exercises. If you’re unfamiliar with Miro, we encourage you to take advantage of the self-paced participant onboarding course available at Miro Academy: Miro Participant Onboarding Course. This short course will equip you with the navigational knowledge needed to fully participate in our interactive sessions.

Contact