SlideShare a Scribd company logo
Domain-Driven Design
From strategic business goals
to software implementation
The problem
COMPLEXITY, TIME AND CHANGE
We live in a VUCA world
Volatile
Uncertain
Complex
Ambiguous
Organizations are structured in silos
Credits : 50 000 orange stickies later by Alberto Brandolini
Time is our enemy
Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
The objective
ALIGNMENT AND FOCUS
Aligning the whole organisation on
shared strategic goals
• What are we trying to solve?
• What is the most strategic?
• Where do we start?
• How do we go from strategic goals to software design?
• How do we make sure our software will evolve?
• How do we make business rules more explicit?
Core Domain
Where you want to make a
strategic investment in a
single well-defined domain
model, committing significant
resources for carefully crafting your
Ubiquitous Language in an explicit
Bounded Context.
The knowledge, processes,
practices that distinguish you
from your competitors
Focus on the core
Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
The solution
DOMAIN-DRIVEN DESIGN
A deliberate approach to get from strategic business goals to
software design and implementation
The two most important notions of DDD
• Bounded Contexts
• Ubiquitous Language
Domain-Driven Design
• Split a complex domain into smaller, more comprehensible sub-domains
• Separate business concerns and enforce boundaries → Bounded Context
• Clarify relations and communication between Bounded Contexts
• Make the implicit explicit
Credits : 50 000 orange stickies later by Alberto Brandolini
Tackling complexity with
Bounded Contexts
1 team
1 bounded context
1 microservice (or more)
Core domain
• Custom development
• High priority
• Put your best devs
Supporting sub-domain
• Custom development
• Lower priority
• Invest just enough
Generic sub-domain
• Buy of the shelf
• Integrate with the rest of the
ecosystem
Responsibilities & Boundaries
• Breaking the language barrier between business
and tech people by sharing the same language
• Using meaningful business language in the code
• One word, one concept, one meaning
A language that is ubiquitous within
a given bounded context
Foster communication through the
use of an Ubiquitous Language
Communication & knowledge sharing
Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
The process
EVENT STORMING
EventStorming
Exploring with Domain Events
Credits : 50 000 orange stickies later by Alberto Brandolini
Outcome : Big Picture
Credits : 50 000 orange stickies later by Alberto Brandolini
Finding sub-domain boundaries
Domain Events as a shared language
Credits : 50 000 orange stickies later by Alberto Brandolini
From vision to design (and back)
Credits : 50 000 orange stickies later by Alberto Brandolini
Designing reactive systems
Credits : @VaughnVernon https://www.infoq.com/articles/modeling-uncertainty-reactive-ddd/
Getting started
GIVE YOURSELF A CHANGE
Let’s start exploring your domain
• To start a new project
• To make better sense of your existing software ecosystem
• To break a monolithic application into smaller business-focused
services
Contact us to run an EventStorming workshop with you
You know your domain, we know how to tackle complexity
Tackling complexity in the heart of
software
• Eric Evans — Tackling Complexity in the Heart of Software
• Greg Young — A Decade of DDD, CQRS, Event Sourcing
• Liz Keogh — Cognitive Cynefin: How Language and Bias Keep Us Complicated
CONTACT
AGILE PARTNER
20A. RUE DU PUITS ROMAIN
L8070 BERTRANGE
Z.A.I BOURMICHT
(+352) 26 37 00 30
contact@agilepartner.net
jobs@agilepartner.net

More Related Content

Similar to Domain-Driven Design: From strategic business goals to software implementation

InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationInnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaboration
Julian Werba
 
Example Synopsis Prep Sheet (Www.Leadgenr8.Com)
Example Synopsis Prep Sheet (Www.Leadgenr8.Com)Example Synopsis Prep Sheet (Www.Leadgenr8.Com)
Example Synopsis Prep Sheet (Www.Leadgenr8.Com)Fiaz27
 
Engaging Teamwork in an Agile Workplace: Collaboration
Engaging Teamwork in an Agile Workplace: CollaborationEngaging Teamwork in an Agile Workplace: Collaboration
Engaging Teamwork in an Agile Workplace: Collaboration
Cisco Canada
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven Design
R-P-Azevedo
 
SOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDDSOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDD
Gregory Boissinot
 
How to Build a Career in Open Source.pptx
How to Build a Career in Open Source.pptxHow to Build a Career in Open Source.pptx
How to Build a Career in Open Source.pptx
SherinRappai
 
1334823180665880 faqden mobile_capabilities
1334823180665880 faqden mobile_capabilities1334823180665880 faqden mobile_capabilities
1334823180665880 faqden mobile_capabilitiesjanmund88
 
Lessons learned while developing with Sylius
Lessons learned while developing with SyliusLessons learned while developing with Sylius
Lessons learned while developing with Sylius
Antonio Peric-Mazar
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
Keith Boyd
 
The Growing Research that Open Source Owns the Future in Cloud
The Growing Research that Open Source Owns the Future in CloudThe Growing Research that Open Source Owns the Future in Cloud
The Growing Research that Open Source Owns the Future in Cloud
All Things Open
 
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic ApproachDomain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
Panagiotis Papaioannou
 
Foss4Africa Paul Scott keynote
Foss4Africa Paul Scott keynoteFoss4Africa Paul Scott keynote
Foss4Africa Paul Scott keynote
Paul Scott
 
Business of Meetings
Business of MeetingsBusiness of Meetings
Business of Meetings
ASAE
 
2019 11-06 globalization
2019 11-06 globalization2019 11-06 globalization
2019 11-06 globalization
pcerda0
 
Many Ways to Move the Needle on Open Source
Many Ways to Move the Needle on Open SourceMany Ways to Move the Needle on Open Source
Many Ways to Move the Needle on Open Source
All Things Open
 
Designclature DID ideas
Designclature DID ideasDesignclature DID ideas
Designclature DID ideas
cgandhi
 
Presentation on Microsoft Teams
Presentation on Microsoft Teams Presentation on Microsoft Teams
Presentation on Microsoft Teams
SoHo Dragon
 
DOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGNDOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGN
Mohammed Fazuluddin
 
CCIT Consultants
CCIT ConsultantsCCIT Consultants
CCIT Consultants
Lavhonte Davis
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
wojtek_s
 

Similar to Domain-Driven Design: From strategic business goals to software implementation (20)

InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationInnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaboration
 
Example Synopsis Prep Sheet (Www.Leadgenr8.Com)
Example Synopsis Prep Sheet (Www.Leadgenr8.Com)Example Synopsis Prep Sheet (Www.Leadgenr8.Com)
Example Synopsis Prep Sheet (Www.Leadgenr8.Com)
 
Engaging Teamwork in an Agile Workplace: Collaboration
Engaging Teamwork in an Agile Workplace: CollaborationEngaging Teamwork in an Agile Workplace: Collaboration
Engaging Teamwork in an Agile Workplace: Collaboration
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven Design
 
SOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDDSOAT Agile Day 2017 DDD
SOAT Agile Day 2017 DDD
 
How to Build a Career in Open Source.pptx
How to Build a Career in Open Source.pptxHow to Build a Career in Open Source.pptx
How to Build a Career in Open Source.pptx
 
1334823180665880 faqden mobile_capabilities
1334823180665880 faqden mobile_capabilities1334823180665880 faqden mobile_capabilities
1334823180665880 faqden mobile_capabilities
 
Lessons learned while developing with Sylius
Lessons learned while developing with SyliusLessons learned while developing with Sylius
Lessons learned while developing with Sylius
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
 
The Growing Research that Open Source Owns the Future in Cloud
The Growing Research that Open Source Owns the Future in CloudThe Growing Research that Open Source Owns the Future in Cloud
The Growing Research that Open Source Owns the Future in Cloud
 
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic ApproachDomain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
 
Foss4Africa Paul Scott keynote
Foss4Africa Paul Scott keynoteFoss4Africa Paul Scott keynote
Foss4Africa Paul Scott keynote
 
Business of Meetings
Business of MeetingsBusiness of Meetings
Business of Meetings
 
2019 11-06 globalization
2019 11-06 globalization2019 11-06 globalization
2019 11-06 globalization
 
Many Ways to Move the Needle on Open Source
Many Ways to Move the Needle on Open SourceMany Ways to Move the Needle on Open Source
Many Ways to Move the Needle on Open Source
 
Designclature DID ideas
Designclature DID ideasDesignclature DID ideas
Designclature DID ideas
 
Presentation on Microsoft Teams
Presentation on Microsoft Teams Presentation on Microsoft Teams
Presentation on Microsoft Teams
 
DOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGNDOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGN
 
CCIT Consultants
CCIT ConsultantsCCIT Consultants
CCIT Consultants
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 

More from Agile Partner S.A.

Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétaires
Agile Partner S.A.
 
Découverte de l'esprit agile
Découverte de l'esprit agileDécouverte de l'esprit agile
Découverte de l'esprit agile
Agile Partner S.A.
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Agile Partner S.A.
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaboration
Agile Partner S.A.
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)
Agile Partner S.A.
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industry
Agile Partner S.A.
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePoint
Agile Partner S.A.
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Partner S.A.
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Partner S.A.
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile Testing
Agile Partner S.A.
 
Introduction to agile methods
Introduction to agile methodsIntroduction to agile methods
Introduction to agile methods
Agile Partner S.A.
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilité
Agile Partner S.A.
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean Startup
Agile Partner S.A.
 
Agile testing games
Agile testing gamesAgile testing games
Agile testing games
Agile Partner S.A.
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
Agile Partner S.A.
 
Lkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à KanbanLkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à Kanban
Agile Partner S.A.
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileAgile Partner S.A.
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support team
Agile Partner S.A.
 
It job day Henam 2011-06-20
It job day Henam 2011-06-20It job day Henam 2011-06-20
It job day Henam 2011-06-20
Agile Partner S.A.
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years research
Agile Partner S.A.
 

More from Agile Partner S.A. (20)

Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétaires
 
Découverte de l'esprit agile
Découverte de l'esprit agileDécouverte de l'esprit agile
Découverte de l'esprit agile
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaboration
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industry
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePoint
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOps
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile Testing
 
Introduction to agile methods
Introduction to agile methodsIntroduction to agile methods
Introduction to agile methods
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilité
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean Startup
 
Agile testing games
Agile testing gamesAgile testing games
Agile testing games
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Lkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à KanbanLkfr12 - De Scrum à Kanban
Lkfr12 - De Scrum à Kanban
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets Agile
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support team
 
It job day Henam 2011-06-20
It job day Henam 2011-06-20It job day Henam 2011-06-20
It job day Henam 2011-06-20
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years research
 

Recently uploaded

Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 

Recently uploaded (20)

Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 

Domain-Driven Design: From strategic business goals to software implementation

  • 1. Domain-Driven Design From strategic business goals to software implementation
  • 3. We live in a VUCA world Volatile Uncertain Complex Ambiguous
  • 4. Organizations are structured in silos Credits : 50 000 orange stickies later by Alberto Brandolini
  • 5. Time is our enemy Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
  • 7. Aligning the whole organisation on shared strategic goals • What are we trying to solve? • What is the most strategic? • Where do we start? • How do we go from strategic goals to software design? • How do we make sure our software will evolve? • How do we make business rules more explicit?
  • 8. Core Domain Where you want to make a strategic investment in a single well-defined domain model, committing significant resources for carefully crafting your Ubiquitous Language in an explicit Bounded Context. The knowledge, processes, practices that distinguish you from your competitors Focus on the core Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
  • 10. A deliberate approach to get from strategic business goals to software design and implementation The two most important notions of DDD • Bounded Contexts • Ubiquitous Language Domain-Driven Design
  • 11. • Split a complex domain into smaller, more comprehensible sub-domains • Separate business concerns and enforce boundaries → Bounded Context • Clarify relations and communication between Bounded Contexts • Make the implicit explicit Credits : 50 000 orange stickies later by Alberto Brandolini Tackling complexity with Bounded Contexts 1 team 1 bounded context 1 microservice (or more)
  • 12. Core domain • Custom development • High priority • Put your best devs Supporting sub-domain • Custom development • Lower priority • Invest just enough Generic sub-domain • Buy of the shelf • Integrate with the rest of the ecosystem Responsibilities & Boundaries
  • 13. • Breaking the language barrier between business and tech people by sharing the same language • Using meaningful business language in the code • One word, one concept, one meaning A language that is ubiquitous within a given bounded context Foster communication through the use of an Ubiquitous Language
  • 14. Communication & knowledge sharing Credits : Patterns, Principles and Practices of Domain Driven Design by Millet & Tune
  • 16. EventStorming Exploring with Domain Events Credits : 50 000 orange stickies later by Alberto Brandolini
  • 17. Outcome : Big Picture Credits : 50 000 orange stickies later by Alberto Brandolini
  • 19. Domain Events as a shared language Credits : 50 000 orange stickies later by Alberto Brandolini
  • 20. From vision to design (and back) Credits : 50 000 orange stickies later by Alberto Brandolini
  • 21. Designing reactive systems Credits : @VaughnVernon https://www.infoq.com/articles/modeling-uncertainty-reactive-ddd/
  • 23. Let’s start exploring your domain • To start a new project • To make better sense of your existing software ecosystem • To break a monolithic application into smaller business-focused services Contact us to run an EventStorming workshop with you You know your domain, we know how to tackle complexity
  • 24. Tackling complexity in the heart of software • Eric Evans — Tackling Complexity in the Heart of Software • Greg Young — A Decade of DDD, CQRS, Event Sourcing • Liz Keogh — Cognitive Cynefin: How Language and Bias Keep Us Complicated
  • 25. CONTACT AGILE PARTNER 20A. RUE DU PUITS ROMAIN L8070 BERTRANGE Z.A.I BOURMICHT (+352) 26 37 00 30 contact@agilepartner.net jobs@agilepartner.net