SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a 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 collaborationJulian 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: CollaborationCisco Canada
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven DesignR-P-Azevedo
 
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 SyliusAntonio 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 developerKeith 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 CloudAll 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 ApproachPanagiotis Papaioannou
 
Foss4Africa Paul Scott keynote
Foss4Africa Paul Scott keynoteFoss4Africa Paul Scott keynote
Foss4Africa Paul Scott keynotePaul Scott
 
Business of Meetings
Business of MeetingsBusiness of Meetings
Business of MeetingsASAE
 
2019 11-06 globalization
2019 11-06 globalization2019 11-06 globalization
2019 11-06 globalizationpcerda0
 
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 SourceAll Things Open
 
Designclature DID ideas
Designclature DID ideasDesignclature DID ideas
Designclature DID ideascgandhi
 
Presentation on Microsoft Teams
Presentation on Microsoft Teams Presentation on Microsoft Teams
Presentation on Microsoft Teams SoHo Dragon
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
The spirit of Opensource - lets plan to contribute ! @JWC16
The spirit of Opensource - lets plan to contribute ! @JWC16The spirit of Opensource - lets plan to contribute ! @JWC16
The spirit of Opensource - lets plan to contribute ! @JWC16Parth Lawate
 

Similar a 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
 
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
 
The spirit of Opensource - lets plan to contribute ! @JWC16
The spirit of Opensource - lets plan to contribute ! @JWC16The spirit of Opensource - lets plan to contribute ! @JWC16
The spirit of Opensource - lets plan to contribute ! @JWC16
 

Más de 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étairesAgile 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 collaborationAgile 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 industryAgile Partner S.A.
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile 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 à DevOpsAgile 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: IntroductionAgile 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 TestingAgile 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 StartupAgile 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 teamAgile 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 researchAgile Partner S.A.
 

Más de 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
 

Último

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 

Último (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 

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