SlideShare a Scribd company logo
1 of 21
Lorraine Steyn
@lor_krs
Alain King
@alainkingza #DDDCapeTownwww.krs.co.za
Your assumption goes to production
Our most important abilities are communication, empathy and being able to learn.
Conway's law: Organizations which design systems
... are constrained to produce designs which are
communication structures of these organizations.
Organization
U
D
Bounded Contexts
Discovery…
Where are users located?
Which is the Core domain?
Look at organizational structure
Ubiquitous Language
Discovery…
U
D
Team per Bounded Context
Software helps identify better
organization
Shared Kernel
Micro-Services
Your assumption goes to production
Our most important abilities are communication, empathy and being able to learn.
Safety to take risks
Respect each other (internal and external to the team)
Connection
Prevent dysfunctional behaviour
Emotional Safety
DC
SKU
POD
RIFD
Cage
Blind Receiving
Fulfilment
Back Order
FIFO
ATD
WAREHOUSE:
Landed Cost
Cross Docking
Picking List
Shrinkage
Buffer Stock
Ubiquitous Language
In source code, documentation, tests, as well as used by
business
1. Natural language
2. Domain terms (not IT terms)
3. Ubiquitous Language to resolve all differences
Ubiquitous Language
Language that we use everywhere
Old Code: DDD Code:
“year” is a Value Object
Cynefin
Categorizing Complexity
Disorder requires further breakdown of
breakdown of the problem
Better to treat a problem as more
complex rather than less
• Over simplification
• Entrained thinking
Dave Snowden & Mary Boone
Your assumption goes to production
Our most important abilities are communication, empathy and being able to learn.
Identify Entities (nouns), but don’t go running off to make classes!
Look for verbs – what are the system actions
Look for time sequences: we do this, then that…
Adjectives are a hint that there may be more edge cases
Challenge each discovery
Ask the “dumb questions”
Modelling with the right people in
the room
Limited time (2-4 hours)
Unlimited space
Domain event
Actor
Command
External system
View
DDD Concepts
Bounded Contexts
Ubiquitous Language
Value Objects
Entities
Aggregate Root
Patterns: Port and Adaptor,
Anti-Corruption Layer, CQRS etc
Don’t let the DDD Terminology be a barrier!
Your assumption goes to production
Our most important abilities are communication, empathy and being able to learn.
WHY?
Like Agile,
DDD is about
people,
collaboration,
and
business value
Workshops
Introduction to DDD and Event Storming
Ubiquitous Language, Bounded Contexts, Entities, Aggregates and Value Objects, Event Storming Intro and
Case Study.
Advanced DDD
Exercises with Entities, Aggregates and Value Objects, Advance Bounded Contexts and exercise, Patterns:
Onion, Hexagon, CQRS and Event Sourcing
Implementing DDD in Code
Turning your Model into code (C# exercise), and advanced modelling Case Study.
Thank you
Join InDDDaba - Domain Driven Design Cape Town Meetup

More Related Content

Similar to DDD Introduction

Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processingpunedevscom
 
Code Quality Makes Your Job Easier
Code Quality Makes Your Job EasierCode Quality Makes Your Job Easier
Code Quality Makes Your Job EasierTonya Mork
 
Voice Search and Conversation Action Assistive Systems - Challenges & Opportu...
Voice Search and Conversation Action Assistive Systems - Challenges & Opportu...Voice Search and Conversation Action Assistive Systems - Challenges & Opportu...
Voice Search and Conversation Action Assistive Systems - Challenges & Opportu...Dawn Anderson MSc DigM
 
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...Stijn (Stan) Christiaens
 
Reading Group 2013 (DERI NUIG)
Reading Group 2013 (DERI NUIG)Reading Group 2013 (DERI NUIG)
Reading Group 2013 (DERI NUIG)Bianca Pereira
 
Frame-Script and Predicate logic.pptx
Frame-Script and Predicate logic.pptxFrame-Script and Predicate logic.pptx
Frame-Script and Predicate logic.pptxnilesh405711
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
 
How To "Speak Developer"
How To "Speak Developer"How To "Speak Developer"
How To "Speak Developer"Nick Malcolm
 
Toward a socio-technical pattern language
Toward a socio-technical pattern languageToward a socio-technical pattern language
Toward a socio-technical pattern languageJohn Thomas
 
Commercial Ethnography Euro Ia 2008 Kalbach
Commercial Ethnography Euro Ia 2008 KalbachCommercial Ethnography Euro Ia 2008 Kalbach
Commercial Ethnography Euro Ia 2008 KalbachJim Kalbach
 
Agile Nearshoring Solutions
Agile Nearshoring SolutionsAgile Nearshoring Solutions
Agile Nearshoring SolutionsFelix Ruessel
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignLalit Kale
 
Help On Essay Writing
Help On Essay WritingHelp On Essay Writing
Help On Essay WritingMelissa Gomez
 
Go Best Practices – Interfaces, Packages and APIs
Go Best Practices – Interfaces, Packages and APIsGo Best Practices – Interfaces, Packages and APIs
Go Best Practices – Interfaces, Packages and APIsMarcus Kohlberg
 

Similar to DDD Introduction (20)

Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Code Quality Makes Your Job Easier
Code Quality Makes Your Job EasierCode Quality Makes Your Job Easier
Code Quality Makes Your Job Easier
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Voice Search and Conversation Action Assistive Systems - Challenges & Opportu...
Voice Search and Conversation Action Assistive Systems - Challenges & Opportu...Voice Search and Conversation Action Assistive Systems - Challenges & Opportu...
Voice Search and Conversation Action Assistive Systems - Challenges & Opportu...
 
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
 
ALTNET
ALTNETALTNET
ALTNET
 
Reading Group 2013 (DERI NUIG)
Reading Group 2013 (DERI NUIG)Reading Group 2013 (DERI NUIG)
Reading Group 2013 (DERI NUIG)
 
Frame-Script and Predicate logic.pptx
Frame-Script and Predicate logic.pptxFrame-Script and Predicate logic.pptx
Frame-Script and Predicate logic.pptx
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 
How To "Speak Developer"
How To "Speak Developer"How To "Speak Developer"
How To "Speak Developer"
 
Toward a socio-technical pattern language
Toward a socio-technical pattern languageToward a socio-technical pattern language
Toward a socio-technical pattern language
 
Commercial Ethnography Euro Ia 2008 Kalbach
Commercial Ethnography Euro Ia 2008 KalbachCommercial Ethnography Euro Ia 2008 Kalbach
Commercial Ethnography Euro Ia 2008 Kalbach
 
Oops Concepts
Oops ConceptsOops Concepts
Oops Concepts
 
Hacking CEH cheat sheet
Hacking  CEH cheat sheetHacking  CEH cheat sheet
Hacking CEH cheat sheet
 
Ethics andtel
Ethics andtelEthics andtel
Ethics andtel
 
Agile Nearshoring Solutions
Agile Nearshoring SolutionsAgile Nearshoring Solutions
Agile Nearshoring Solutions
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Help On Essay Writing
Help On Essay WritingHelp On Essay Writing
Help On Essay Writing
 
Go Best Practices – Interfaces, Packages and APIs
Go Best Practices – Interfaces, Packages and APIsGo Best Practices – Interfaces, Packages and APIs
Go Best Practices – Interfaces, Packages and APIs
 
Writing Quality Code
Writing Quality CodeWriting Quality Code
Writing Quality Code
 

More from Lorraine Steyn

Applying Systems Thinking to Teams and Software.pptx
Applying Systems Thinking to Teams and Software.pptxApplying Systems Thinking to Teams and Software.pptx
Applying Systems Thinking to Teams and Software.pptxLorraine Steyn
 
Applying Systems Thinking in Teams.pptx
Applying Systems Thinking in Teams.pptxApplying Systems Thinking in Teams.pptx
Applying Systems Thinking in Teams.pptxLorraine Steyn
 
Systems Thinking and the Art of Simplification
Systems Thinking and the Art of SimplificationSystems Thinking and the Art of Simplification
Systems Thinking and the Art of SimplificationLorraine Steyn
 
Homo naledi - highlights from the paper published on eLife
Homo naledi - highlights from the paper published on eLifeHomo naledi - highlights from the paper published on eLife
Homo naledi - highlights from the paper published on eLifeLorraine Steyn
 
Fighting Facebook (social media marketing)
Fighting Facebook (social media marketing)Fighting Facebook (social media marketing)
Fighting Facebook (social media marketing)Lorraine Steyn
 
Entrepreneurially Agile
Entrepreneurially AgileEntrepreneurially Agile
Entrepreneurially AgileLorraine Steyn
 
Domain Driven Design in an Agile World
Domain Driven Design in an Agile WorldDomain Driven Design in an Agile World
Domain Driven Design in an Agile WorldLorraine Steyn
 

More from Lorraine Steyn (9)

Applying Systems Thinking to Teams and Software.pptx
Applying Systems Thinking to Teams and Software.pptxApplying Systems Thinking to Teams and Software.pptx
Applying Systems Thinking to Teams and Software.pptx
 
Applying Systems Thinking in Teams.pptx
Applying Systems Thinking in Teams.pptxApplying Systems Thinking in Teams.pptx
Applying Systems Thinking in Teams.pptx
 
Systems Thinking and the Art of Simplification
Systems Thinking and the Art of SimplificationSystems Thinking and the Art of Simplification
Systems Thinking and the Art of Simplification
 
Systems Thinking 2019
Systems Thinking 2019Systems Thinking 2019
Systems Thinking 2019
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
Homo naledi - highlights from the paper published on eLife
Homo naledi - highlights from the paper published on eLifeHomo naledi - highlights from the paper published on eLife
Homo naledi - highlights from the paper published on eLife
 
Fighting Facebook (social media marketing)
Fighting Facebook (social media marketing)Fighting Facebook (social media marketing)
Fighting Facebook (social media marketing)
 
Entrepreneurially Agile
Entrepreneurially AgileEntrepreneurially Agile
Entrepreneurially Agile
 
Domain Driven Design in an Agile World
Domain Driven Design in an Agile WorldDomain Driven Design in an Agile World
Domain Driven Design in an Agile World
 

Recently uploaded

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

DDD Introduction

  • 1.
  • 3.
  • 4. Your assumption goes to production Our most important abilities are communication, empathy and being able to learn.
  • 5. Conway's law: Organizations which design systems ... are constrained to produce designs which are communication structures of these organizations. Organization
  • 6. U D Bounded Contexts Discovery… Where are users located? Which is the Core domain? Look at organizational structure
  • 8. Team per Bounded Context Software helps identify better organization Shared Kernel Micro-Services
  • 9. Your assumption goes to production Our most important abilities are communication, empathy and being able to learn. Safety to take risks Respect each other (internal and external to the team) Connection Prevent dysfunctional behaviour Emotional Safety
  • 10. DC SKU POD RIFD Cage Blind Receiving Fulfilment Back Order FIFO ATD WAREHOUSE: Landed Cost Cross Docking Picking List Shrinkage Buffer Stock Ubiquitous Language
  • 11. In source code, documentation, tests, as well as used by business 1. Natural language 2. Domain terms (not IT terms) 3. Ubiquitous Language to resolve all differences Ubiquitous Language Language that we use everywhere
  • 12. Old Code: DDD Code: “year” is a Value Object
  • 13. Cynefin Categorizing Complexity Disorder requires further breakdown of breakdown of the problem Better to treat a problem as more complex rather than less • Over simplification • Entrained thinking Dave Snowden & Mary Boone
  • 14. Your assumption goes to production Our most important abilities are communication, empathy and being able to learn. Identify Entities (nouns), but don’t go running off to make classes! Look for verbs – what are the system actions Look for time sequences: we do this, then that… Adjectives are a hint that there may be more edge cases Challenge each discovery Ask the “dumb questions”
  • 15. Modelling with the right people in the room Limited time (2-4 hours) Unlimited space Domain event Actor Command External system View
  • 16.
  • 17. DDD Concepts Bounded Contexts Ubiquitous Language Value Objects Entities Aggregate Root Patterns: Port and Adaptor, Anti-Corruption Layer, CQRS etc Don’t let the DDD Terminology be a barrier!
  • 18. Your assumption goes to production Our most important abilities are communication, empathy and being able to learn. WHY?
  • 19. Like Agile, DDD is about people, collaboration, and business value
  • 20. Workshops Introduction to DDD and Event Storming Ubiquitous Language, Bounded Contexts, Entities, Aggregates and Value Objects, Event Storming Intro and Case Study. Advanced DDD Exercises with Entities, Aggregates and Value Objects, Advance Bounded Contexts and exercise, Patterns: Onion, Hexagon, CQRS and Event Sourcing Implementing DDD in Code Turning your Model into code (C# exercise), and advanced modelling Case Study.
  • 21. Thank you Join InDDDaba - Domain Driven Design Cape Town Meetup

Editor's Notes

  1. Shape the world. Software is everywhere, but hidden.
  2. No longer just writing software, sitting in a basement eating pizza. More engagement. Customers must stop wanting a button, and talk in terms of business value.
  3. Melvin Conway. We need to design our teams to match the business contexts. Bounded Contexts
  4. Amazon. Core domain is shopping cart. Transparent – everyone knows what to expect. Anti-corruption layer.
  5. In every context, words have a different meaning.
  6. If you feel it needs 2 teams, you probably have 2 bounded contexts. How bug can a team be? Distance more than a bus, people stop talking to each other! Distributed takes lots of effort.
  7. Silence / Violence. Innovation? Software development is NOT about software. People, communication, understanding. Nobody wants software – they want what it does. DDD gives us agreed approaches to solving problems
  8. Domains have Terminology, Natural language & Domain terms
  9. Meaning in difference, or it’s just ambiguity. Not repository, database, network layer, Hibernate, Singleton, Delegate (weasel words: how we solve problems, not what the problem is)
  10. Get rid of all primitives. Create your own primitives like year. Name isn’t a string. It is a first name and a surname, not null. Always in a valid state. Technology follows the requirements not the other way around.
  11. Not all domains need the same level of DDD modelling.
  12. If they say only black and white, ask about grey. Don’t meet in opposition.
  13. Collaboration not opposition, lightweight, fun
  14. It’s worth the effort because we have aligned our business domain and software.
  15. Call up Alain