SlideShare a Scribd company logo
1 of 36
Download to read offline
Domain-Driven Design (DDD)
effective collaboration
Artur Trosin
Presentation for: Lviv IT Arena, 2015
Before we start
Why DDD nowadays?
• Automation of various business domains
• High competition for a market place
• Growing business complexity
• Many roles and teams involved in a business
process
• Higher standards & new features
• Continuous Delivery:
Time to Market
Complexity becomes inevitable
Domain – a sphere of knowledge or
activity
Domain Model - is a rigorously
organized and selective abstraction
of the (Business) Domain
knowledge.
Ubiquitous Language - language
structured around the domain
model and used by all team
members to connect all the
activities of the team with the
software.
Main DDD premises
1. Primary focus should be on the domain
and domain logic
2. Complex domain designs should be
based on a model
Domain Model and modelling
• Modelling and design are the quickest way
to actual goal
Eric Evans
Modelling the Domain
Atom Models Evolution
Why models?
Even Music has a Model
Keep in mind
• Multiple Models
• Do not stop just on one even it meets the
requirements
• Free form sketches or UML
• Prefer diagram simplicity over UML syntax
correctness
• Do NOT FIT TOO MUCH
Bounded context
Source: http://martinfowler.com/bliki/BoundedContext.html
Ubiquitous Language
Ubiquitous Language
Technical aspects
of design
Technical terms
Technical design
patterns
S.O.L.I.D design
principles
Domain Model
Terms
DDD Patterns
Bounded Contexts
Business terms
developers don’t
understand
Business terms
everyone uses that
don’t appear in design
Candidates to fold into model
Ubiquitous, but Not Universal
• One Ubiquitous Language per Bounded
Context
• Speak the Ubiquitous Language of the
isolated domain model within the explicit
Bounded Context.
• If you try to apply a single Ubiquitous
Language to an entire enterprise system
you will fail.
Effective Collaboration & SDLC
Iteration 0 Iteration 1 Iteration 2 Iteration 3
Domain Experts
And BusinessAnalysts
UML
Developers
Iteration N?
Model evolves, bug
fixes, found issues
with analysismodel,...
Initially the
code model
matches
analysismodel
No Feedback loop,
descriptivedomain lost,
Code model no longer
reflectsanalysismodel
Source: Patterns, Principles, and Practices of Domain-Driven Design, By Scott Millett, Nick
Tune
Requirements Specification in
DDD
• Start first with benefits and goals
• Working backwards
• Exercise the ubiquitous language in
StoriesUse-Cases
• Look for key business examples in
StoriesUse-Cases to source as core
scenarios for modeling
BA role in DDD
• Flash out initial ideas of the product from
business experts
• Actively participate in domain modelling
process
• Continuous focus on UL and its correct usage
within the team
• To facilitate discussion between developers
and business experts
• Do not remove direct communication
between developers and domain experts
How models are created
• walk with domain expert through core scenarios
• Creative collaboration with a business experts
• Refinement of ubiquitous language and therefore
the model
• sketch (informal) UML diagrams on whiteboard
explaining how the model supports them
• Sequence diagrams can be very helpful for
understanding the application flow from the UI,
API, or context boundary down to the domain
model
• Challenge your assumptions
Architecture
• Architecture is largely orthogonal, but
supportive, for DDD
• 4+1 views architecture for SAD are still
relevant
• Focus on core domain business capabilities
and context map
• Facilitate collaboration when multiple teams
are involved for wider system view
• Anticipate and provide more architectural
views where and when it is needed
Classic Layering
UI
Business Entities
Data Access
DB
Record Sets or
Data Sets or
POCO or
POJO
No Clear Business layer isolation
DDD recommended-Layering
Presentation
Application
Domain
Infrastructure
During development:
Analysis Model and Code Model are in sync
UML
In synergy with
code model
UML Evolve
Sync Back
Source: Patterns, Principles, and Practices of Domain-Driven Design, By Scott Millett, Nic
(Continuous) Collaboration in
DDD
Business
Domain
(business
experts)
Domain Model
&
Ubiquitous Language
Software
Development
(development team)
Software
Produce
Based
on
Ubiquitous Language
Reflected
in
Direct mapping between business
domain concepts and software
artifacts
Conclusions
What is DDD?
• NOT a standard, framework or technology
• Is discovered and NOT invented
• Technology agnostic
• Set of principles, patterns and practices
• DDD enforce Object Oriented principles
• It is a learning process not a goal
• Etc..
When to apply
• When solutions seem more complex than
problems
• When communication with team members
and business experts deteriorates
• When velocity slows due to ineffective
collaboration…
• Applied in both, green field and legacy
projects
When could it be harmful?
• Data oriented andor CRUD Projects
• Use DDD to model a complex domain in
the simplest possible way. Never use DDD
to make your solution more complex.
• Very few business operations (<30)
• Client imposes its way of developing
products
DDD benefits?
• Reduced complexity
• Continuous collaboration and feedback
• Translations are reduced to minimum
• Higher maintainability and transparency
• Clearer requirements
• Etc…
How to apply
1. Evaluate if makes sense to apply DDD in
your case
2. Shift your focus to business domain
3. Start from Ubiquitous Language
4. Start having modeling brainstorming
within the team and domain experts
5. Learn and consider DDD principles and
patterns in ALL team’s activities
References
• Domain-Driven Design: Tackling Complexity
in the Heart of Software
• Domain Driven Design Quickly
• Applying Domain-Driven Design and
Patterns: With Examples in C# and .NET
• Patterns of Enterprise Application
Architecture
• .NET Domain-Driven Design with C#:
Problem - Design – Solution
• Cargo DDD Application Sample – C#
implementation/ Java implementation
• My e-mail artur.trosin@gmail.com 
Finally {
Thank you;
Questions?;
}

More Related Content

What's hot

Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Alan Christensen
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCSteven Smith
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignCode & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignFrank Levering
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignNader Albert
 
Introduction to Domain Driven Design
Introduction to Domain Driven DesignIntroduction to Domain Driven Design
Introduction to Domain Driven DesignChristos Tsakostas
 
Domain driven design
Domain driven designDomain driven design
Domain driven designits_skm
 
Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"bincangteknologi
 
Domain-Driven Design Basics
Domain-Driven Design BasicsDomain-Driven Design Basics
Domain-Driven Design BasicsMathias Verraes
 
DDD Basics: Bounded Contexts, Modelling - Kortrijk Edition
DDD Basics: Bounded Contexts, Modelling - Kortrijk EditionDDD Basics: Bounded Contexts, Modelling - Kortrijk Edition
DDD Basics: Bounded Contexts, Modelling - Kortrijk EditionMathias Verraes
 
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
 
Domain Driven Design - Building Blocks
Domain Driven Design - Building BlocksDomain Driven Design - Building Blocks
Domain Driven Design - Building BlocksMark Windholtz
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)Tom Kocjan
 
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Agile India
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven DesignAndriy Buday
 
Entity Framework and Domain Driven Design
Entity Framework and Domain Driven DesignEntity Framework and Domain Driven Design
Entity Framework and Domain Driven DesignJulie Lerman
 

What's hot (20)

Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignCode & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven Design
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Introduction to Domain Driven Design
Introduction to Domain Driven DesignIntroduction to Domain Driven Design
Introduction to Domain Driven Design
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"Domain-Driven Design: The "What" and the "Why"
Domain-Driven Design: The "What" and the "Why"
 
Domain-Driven Design Basics
Domain-Driven Design BasicsDomain-Driven Design Basics
Domain-Driven Design Basics
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
DDD Basics: Bounded Contexts, Modelling - Kortrijk Edition
DDD Basics: Bounded Contexts, Modelling - Kortrijk EditionDDD Basics: Bounded Contexts, Modelling - Kortrijk Edition
DDD Basics: Bounded Contexts, Modelling - Kortrijk Edition
 
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
 
Domain Driven Design - Building Blocks
Domain Driven Design - Building BlocksDomain Driven Design - Building Blocks
Domain Driven Design - Building Blocks
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
Strategic Domain-Driven Design by Nick Tune at #AgileIndia2019
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Entity Framework and Domain Driven Design
Entity Framework and Domain Driven DesignEntity Framework and Domain Driven Design
Entity Framework and Domain Driven Design
 

Viewers also liked

Domain Driven Design in the Browser - Cameron Edwards
Domain Driven Design in the Browser - Cameron EdwardsDomain Driven Design in the Browser - Cameron Edwards
Domain Driven Design in the Browser - Cameron EdwardsHakka Labs
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignIrwansyah Irwansyah
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock Steve Barbour
 
DDD patterns that were not in the book
DDD patterns that were not in the bookDDD patterns that were not in the book
DDD patterns that were not in the bookCyrille Martraire
 
Beyond design patterns and principles - writing good OO code
Beyond design patterns and principles - writing good OO codeBeyond design patterns and principles - writing good OO code
Beyond design patterns and principles - writing good OO codeMatthias Noback
 
Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?VMware Tanzu
 
2011 iska - tim m - domain driven design
2011   iska - tim m - domain driven design2011   iska - tim m - domain driven design
2011 iska - tim m - domain driven designTim Mahy
 
Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#Pascal Laurin
 
Automation of functional tests using JMeter Part II (in Polish)
Automation of functional tests using JMeter Part II (in Polish)Automation of functional tests using JMeter Part II (in Polish)
Automation of functional tests using JMeter Part II (in Polish)Tieto Corporation
 
Domain-driven design - tactical patterns
Domain-driven design - tactical patternsDomain-driven design - tactical patterns
Domain-driven design - tactical patternsTom Janssens
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocitySam Newman
 

Viewers also liked (13)

Domain Driven Design in the Browser - Cameron Edwards
Domain Driven Design in the Browser - Cameron EdwardsDomain Driven Design in the Browser - Cameron Edwards
Domain Driven Design in the Browser - Cameron Edwards
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven Design
 
Architecting iOS Project
Architecting iOS ProjectArchitecting iOS Project
Architecting iOS Project
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock
 
Go-jek's Go-Food Chatbot
Go-jek's Go-Food ChatbotGo-jek's Go-Food Chatbot
Go-jek's Go-Food Chatbot
 
DDD patterns that were not in the book
DDD patterns that were not in the bookDDD patterns that were not in the book
DDD patterns that were not in the book
 
Beyond design patterns and principles - writing good OO code
Beyond design patterns and principles - writing good OO codeBeyond design patterns and principles - writing good OO code
Beyond design patterns and principles - writing good OO code
 
Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?
 
2011 iska - tim m - domain driven design
2011   iska - tim m - domain driven design2011   iska - tim m - domain driven design
2011 iska - tim m - domain driven design
 
Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
 
Automation of functional tests using JMeter Part II (in Polish)
Automation of functional tests using JMeter Part II (in Polish)Automation of functional tests using JMeter Part II (in Polish)
Automation of functional tests using JMeter Part II (in Polish)
 
Domain-driven design - tactical patterns
Domain-driven design - tactical patternsDomain-driven design - tactical patterns
Domain-driven design - tactical patterns
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 

Similar to Domain-Driven Design (Artur Trosin Product Stream)

Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15Mark Windholtz
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)PG Scholar
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...HostedbyConfluent
 
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
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven ArchitecturesLalit Kale
 
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
 
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use itMark Windholtz
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developerenteritos
 
Cloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and MappingCloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and MappingTom Laszewski
 
Dev ops days berlin damien caro
Dev ops days berlin   damien caroDev ops days berlin   damien caro
Dev ops days berlin damien caroDamien Caro
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
Agile MDD
Agile MDDAgile MDD
Agile MDDfntnhd
 
An Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHPAn Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHPChris Renner
 
Design Systems: Enterprise UX Evolution
Design Systems: Enterprise UX EvolutionDesign Systems: Enterprise UX Evolution
Design Systems: Enterprise UX EvolutionAnne Grundhoefer
 

Similar to Domain-Driven Design (Artur Trosin Product Stream) (20)

Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15
 
Interactive DSML Design
Interactive DSML DesignInteractive DSML Design
Interactive DSML Design
 
The Role of the Architect
The Role of the ArchitectThe Role of the Architect
The Role of the Architect
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
 
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
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
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
 
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developer
 
DOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGNDOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGN
 
Cloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and MappingCloud Enablement Engine Role Definition and Mapping
Cloud Enablement Engine Role Definition and Mapping
 
Dev ops days berlin damien caro
Dev ops days berlin   damien caroDev ops days berlin   damien caro
Dev ops days berlin damien caro
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
 
Consulting
ConsultingConsulting
Consulting
 
An Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHPAn Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHP
 
Design Systems: Enterprise UX Evolution
Design Systems: Enterprise UX EvolutionDesign Systems: Enterprise UX Evolution
Design Systems: Enterprise UX Evolution
 

More from IT Arena

Shalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprint
Shalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprintShalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprint
Shalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprintIT Arena
 
Dave Karow, Split. Powering Progressive Delivery With Data
Dave Karow, Split. Powering Progressive Delivery With DataDave Karow, Split. Powering Progressive Delivery With Data
Dave Karow, Split. Powering Progressive Delivery With DataIT Arena
 
Ihar Mahaniok, Angel Investor. Hunting unicorns for early stage investments
Ihar Mahaniok, Angel Investor. Hunting unicorns for early stage investmentsIhar Mahaniok, Angel Investor. Hunting unicorns for early stage investments
Ihar Mahaniok, Angel Investor. Hunting unicorns for early stage investmentsIT Arena
 
Yuriy Zaremba, AXDRAFT. How to sell your startup
Yuriy Zaremba, AXDRAFT. How to sell your startupYuriy Zaremba, AXDRAFT. How to sell your startup
Yuriy Zaremba, AXDRAFT. How to sell your startupIT Arena
 
John Griffin, Ford Credit Europe. Normalising failure and making way for succ...
John Griffin, Ford Credit Europe. Normalising failure and making way for succ...John Griffin, Ford Credit Europe. Normalising failure and making way for succ...
John Griffin, Ford Credit Europe. Normalising failure and making way for succ...IT Arena
 
Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...
Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...
Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...IT Arena
 
Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...
Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...
Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...IT Arena
 
Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...
Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...
Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...IT Arena
 
Beth Anne Katz, Microsoft. How to Product Manage Your Mental Health
Beth Anne Katz, Microsoft. How to Product Manage Your Mental HealthBeth Anne Katz, Microsoft. How to Product Manage Your Mental Health
Beth Anne Katz, Microsoft. How to Product Manage Your Mental HealthIT Arena
 
Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...
Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...
Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...IT Arena
 
Colleen Graneto, Airbnb. 3 steps to better product decision making
Colleen Graneto, Airbnb. 3 steps to better product decision makingColleen Graneto, Airbnb. 3 steps to better product decision making
Colleen Graneto, Airbnb. 3 steps to better product decision makingIT Arena
 
Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...
Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...
Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...IT Arena
 
Godard Abel, G2. The SaaS Trust Crisis
Godard Abel, G2. The SaaS Trust CrisisGodard Abel, G2. The SaaS Trust Crisis
Godard Abel, G2. The SaaS Trust CrisisIT Arena
 
Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...
Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...
Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...IT Arena
 
Namir Anani, ICTC. Economic Resiliency in The Face of Adversity
Namir Anani, ICTC. Economic Resiliency in The Face of AdversityNamir Anani, ICTC. Economic Resiliency in The Face of Adversity
Namir Anani, ICTC. Economic Resiliency in The Face of AdversityIT Arena
 
Mada Seghete, Branch. Mobile Growth Trends
 Mada Seghete, Branch. Mobile Growth Trends Mada Seghete, Branch. Mobile Growth Trends
Mada Seghete, Branch. Mobile Growth TrendsIT Arena
 
Julia Petryk, MacPaw. Product PR: a how-to guide
Julia Petryk, MacPaw. Product PR: a how-to guideJulia Petryk, MacPaw. Product PR: a how-to guide
Julia Petryk, MacPaw. Product PR: a how-to guideIT Arena
 
Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...
Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...
Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...IT Arena
 
Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...
Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...
Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...IT Arena
 
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and KubeflowKostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and KubeflowIT Arena
 

More from IT Arena (20)

Shalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprint
Shalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprintShalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprint
Shalini Agarwal, LinkedIn. Engineering excellence: marathon, not a sprint
 
Dave Karow, Split. Powering Progressive Delivery With Data
Dave Karow, Split. Powering Progressive Delivery With DataDave Karow, Split. Powering Progressive Delivery With Data
Dave Karow, Split. Powering Progressive Delivery With Data
 
Ihar Mahaniok, Angel Investor. Hunting unicorns for early stage investments
Ihar Mahaniok, Angel Investor. Hunting unicorns for early stage investmentsIhar Mahaniok, Angel Investor. Hunting unicorns for early stage investments
Ihar Mahaniok, Angel Investor. Hunting unicorns for early stage investments
 
Yuriy Zaremba, AXDRAFT. How to sell your startup
Yuriy Zaremba, AXDRAFT. How to sell your startupYuriy Zaremba, AXDRAFT. How to sell your startup
Yuriy Zaremba, AXDRAFT. How to sell your startup
 
John Griffin, Ford Credit Europe. Normalising failure and making way for succ...
John Griffin, Ford Credit Europe. Normalising failure and making way for succ...John Griffin, Ford Credit Europe. Normalising failure and making way for succ...
John Griffin, Ford Credit Europe. Normalising failure and making way for succ...
 
Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...
Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...
Vitaliy Diatlenko, Uklon. Transforming your business with machine learning. T...
 
Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...
Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...
Chris Cassarino, SoftServe. Stop Fixating on Fixing – Solving the global enga...
 
Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...
Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...
Michael Labate, Intellias. EDI in the DNA: Why Equity, Diversity and Inclusio...
 
Beth Anne Katz, Microsoft. How to Product Manage Your Mental Health
Beth Anne Katz, Microsoft. How to Product Manage Your Mental HealthBeth Anne Katz, Microsoft. How to Product Manage Your Mental Health
Beth Anne Katz, Microsoft. How to Product Manage Your Mental Health
 
Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...
Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...
Sally Foote, GoCompare & Look After My Bills. Magic Goggles: the tools you ne...
 
Colleen Graneto, Airbnb. 3 steps to better product decision making
Colleen Graneto, Airbnb. 3 steps to better product decision makingColleen Graneto, Airbnb. 3 steps to better product decision making
Colleen Graneto, Airbnb. 3 steps to better product decision making
 
Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...
Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...
Vasyl Zadvornyy, Prozorro. The Future of Governance: Can a Script Replace the...
 
Godard Abel, G2. The SaaS Trust Crisis
Godard Abel, G2. The SaaS Trust CrisisGodard Abel, G2. The SaaS Trust Crisis
Godard Abel, G2. The SaaS Trust Crisis
 
Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...
Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...
Zeb Evans, ClickUp. From $0 to $20M ARR in 2 Years: Bootstrapping to Natural ...
 
Namir Anani, ICTC. Economic Resiliency in The Face of Adversity
Namir Anani, ICTC. Economic Resiliency in The Face of AdversityNamir Anani, ICTC. Economic Resiliency in The Face of Adversity
Namir Anani, ICTC. Economic Resiliency in The Face of Adversity
 
Mada Seghete, Branch. Mobile Growth Trends
 Mada Seghete, Branch. Mobile Growth Trends Mada Seghete, Branch. Mobile Growth Trends
Mada Seghete, Branch. Mobile Growth Trends
 
Julia Petryk, MacPaw. Product PR: a how-to guide
Julia Petryk, MacPaw. Product PR: a how-to guideJulia Petryk, MacPaw. Product PR: a how-to guide
Julia Petryk, MacPaw. Product PR: a how-to guide
 
Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...
Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...
Yaroslav Ravlinko, Intellias. You don’t need Kubernetes. You need to understa...
 
Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...
Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...
Yaroslav Novytskyy, Anton Vasylenko, N-iX. Migrating to the cloud: options an...
 
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and KubeflowKostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
 

Recently uploaded

9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday SafarisKibera Holiday Safaris Safaris
 
"Embark on the Ultimate Adventure: Top 10 Must-Visit Destinations for Thrill-...
"Embark on the Ultimate Adventure: Top 10 Must-Visit Destinations for Thrill-..."Embark on the Ultimate Adventure: Top 10 Must-Visit Destinations for Thrill-...
"Embark on the Ultimate Adventure: Top 10 Must-Visit Destinations for Thrill-...Ishwaholidays
 
08448380779 Call Girls In Chirag Enclave Women Seeking Men
08448380779 Call Girls In Chirag Enclave Women Seeking Men08448380779 Call Girls In Chirag Enclave Women Seeking Men
08448380779 Call Girls In Chirag Enclave Women Seeking MenDelhi Call girls
 
Visa Consultant in Lahore || 📞03094429236
Visa Consultant in Lahore || 📞03094429236Visa Consultant in Lahore || 📞03094429236
Visa Consultant in Lahore || 📞03094429236Sherazi Tours
 
Hire 💕 8617697112 Chamba Call Girls Service Call Girls Agency
Hire 💕 8617697112 Chamba Call Girls Service Call Girls AgencyHire 💕 8617697112 Chamba Call Girls Service Call Girls Agency
Hire 💕 8617697112 Chamba Call Girls Service Call Girls AgencyNitya salvi
 
Texas Tales Brenham and Amarillo Experiences Elevated by Find American Rental...
Texas Tales Brenham and Amarillo Experiences Elevated by Find American Rental...Texas Tales Brenham and Amarillo Experiences Elevated by Find American Rental...
Texas Tales Brenham and Amarillo Experiences Elevated by Find American Rental...Find American Rentals
 
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779Delhi Call girls
 
08448380779 Call Girls In Bhikaji Cama Palace Women Seeking Men
08448380779 Call Girls In Bhikaji Cama Palace Women Seeking Men08448380779 Call Girls In Bhikaji Cama Palace Women Seeking Men
08448380779 Call Girls In Bhikaji Cama Palace Women Seeking MenDelhi Call girls
 
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...Apsara Of India
 
High Profile 🔝 8250077686 📞 Call Girls Service in Siri Fort🍑
High Profile 🔝 8250077686 📞 Call Girls Service in Siri Fort🍑High Profile 🔝 8250077686 📞 Call Girls Service in Siri Fort🍑
High Profile 🔝 8250077686 📞 Call Girls Service in Siri Fort🍑Damini Dixit
 
Hire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
Hire 💕 8617697112 Champawat Call Girls Service Call Girls AgencyHire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
Hire 💕 8617697112 Champawat Call Girls Service Call Girls AgencyNitya salvi
 
08448380779 Call Girls In Chhattarpur Women Seeking Men
08448380779 Call Girls In Chhattarpur Women Seeking Men08448380779 Call Girls In Chhattarpur Women Seeking Men
08448380779 Call Girls In Chhattarpur Women Seeking MenDelhi Call girls
 
Night 7k to 12k Daman Call Girls 👉👉 8617697112⭐⭐ 100% Genuine Escort Service ...
Night 7k to 12k Daman Call Girls 👉👉 8617697112⭐⭐ 100% Genuine Escort Service ...Night 7k to 12k Daman Call Girls 👉👉 8617697112⭐⭐ 100% Genuine Escort Service ...
Night 7k to 12k Daman Call Girls 👉👉 8617697112⭐⭐ 100% Genuine Escort Service ...Nitya salvi
 
Top 10 Traditional Indian Handicrafts.pptx
Top 10 Traditional Indian Handicrafts.pptxTop 10 Traditional Indian Handicrafts.pptx
Top 10 Traditional Indian Handicrafts.pptxdishha99
 
Study Consultants in Lahore || 📞03094429236
Study Consultants in Lahore || 📞03094429236Study Consultants in Lahore || 📞03094429236
Study Consultants in Lahore || 📞03094429236Sherazi Tours
 
Kanpur Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Kanpur Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceKanpur Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Kanpur Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceDamini Dixit
 
Book Cheap Flight Tickets - TraveljunctionUK
Book  Cheap Flight Tickets - TraveljunctionUKBook  Cheap Flight Tickets - TraveljunctionUK
Book Cheap Flight Tickets - TraveljunctionUKTravel Juncation
 

Recently uploaded (20)

Rohini Sector 18 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 18 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 18 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 18 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
9 Days Kenya Ultimate Safari Odyssey with Kibera Holiday Safaris
 
"Embark on the Ultimate Adventure: Top 10 Must-Visit Destinations for Thrill-...
"Embark on the Ultimate Adventure: Top 10 Must-Visit Destinations for Thrill-..."Embark on the Ultimate Adventure: Top 10 Must-Visit Destinations for Thrill-...
"Embark on the Ultimate Adventure: Top 10 Must-Visit Destinations for Thrill-...
 
Call Girls Service !! Indirapuram!! @9999965857 Delhi 🫦 No Advance VVVIP 🍎 S...
Call Girls Service !! Indirapuram!! @9999965857 Delhi 🫦 No Advance  VVVIP 🍎 S...Call Girls Service !! Indirapuram!! @9999965857 Delhi 🫦 No Advance  VVVIP 🍎 S...
Call Girls Service !! Indirapuram!! @9999965857 Delhi 🫦 No Advance VVVIP 🍎 S...
 
08448380779 Call Girls In Chirag Enclave Women Seeking Men
08448380779 Call Girls In Chirag Enclave Women Seeking Men08448380779 Call Girls In Chirag Enclave Women Seeking Men
08448380779 Call Girls In Chirag Enclave Women Seeking Men
 
Visa Consultant in Lahore || 📞03094429236
Visa Consultant in Lahore || 📞03094429236Visa Consultant in Lahore || 📞03094429236
Visa Consultant in Lahore || 📞03094429236
 
Hire 💕 8617697112 Chamba Call Girls Service Call Girls Agency
Hire 💕 8617697112 Chamba Call Girls Service Call Girls AgencyHire 💕 8617697112 Chamba Call Girls Service Call Girls Agency
Hire 💕 8617697112 Chamba Call Girls Service Call Girls Agency
 
Texas Tales Brenham and Amarillo Experiences Elevated by Find American Rental...
Texas Tales Brenham and Amarillo Experiences Elevated by Find American Rental...Texas Tales Brenham and Amarillo Experiences Elevated by Find American Rental...
Texas Tales Brenham and Amarillo Experiences Elevated by Find American Rental...
 
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
Night 7k Call Girls Noida Sector 93 Escorts Call Me: 8448380779
 
08448380779 Call Girls In Bhikaji Cama Palace Women Seeking Men
08448380779 Call Girls In Bhikaji Cama Palace Women Seeking Men08448380779 Call Girls In Bhikaji Cama Palace Women Seeking Men
08448380779 Call Girls In Bhikaji Cama Palace Women Seeking Men
 
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
🔥HOT🔥📲9602870969🔥Prostitute Service in Udaipur Call Girls in City Palace Lake...
 
CYTOTEC DUBAI ☎️ +966572737505 } Abortion pills in Abu dhabi,get misoprostal ...
CYTOTEC DUBAI ☎️ +966572737505 } Abortion pills in Abu dhabi,get misoprostal ...CYTOTEC DUBAI ☎️ +966572737505 } Abortion pills in Abu dhabi,get misoprostal ...
CYTOTEC DUBAI ☎️ +966572737505 } Abortion pills in Abu dhabi,get misoprostal ...
 
High Profile 🔝 8250077686 📞 Call Girls Service in Siri Fort🍑
High Profile 🔝 8250077686 📞 Call Girls Service in Siri Fort🍑High Profile 🔝 8250077686 📞 Call Girls Service in Siri Fort🍑
High Profile 🔝 8250077686 📞 Call Girls Service in Siri Fort🍑
 
Hire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
Hire 💕 8617697112 Champawat Call Girls Service Call Girls AgencyHire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
Hire 💕 8617697112 Champawat Call Girls Service Call Girls Agency
 
08448380779 Call Girls In Chhattarpur Women Seeking Men
08448380779 Call Girls In Chhattarpur Women Seeking Men08448380779 Call Girls In Chhattarpur Women Seeking Men
08448380779 Call Girls In Chhattarpur Women Seeking Men
 
Night 7k to 12k Daman Call Girls 👉👉 8617697112⭐⭐ 100% Genuine Escort Service ...
Night 7k to 12k Daman Call Girls 👉👉 8617697112⭐⭐ 100% Genuine Escort Service ...Night 7k to 12k Daman Call Girls 👉👉 8617697112⭐⭐ 100% Genuine Escort Service ...
Night 7k to 12k Daman Call Girls 👉👉 8617697112⭐⭐ 100% Genuine Escort Service ...
 
Top 10 Traditional Indian Handicrafts.pptx
Top 10 Traditional Indian Handicrafts.pptxTop 10 Traditional Indian Handicrafts.pptx
Top 10 Traditional Indian Handicrafts.pptx
 
Study Consultants in Lahore || 📞03094429236
Study Consultants in Lahore || 📞03094429236Study Consultants in Lahore || 📞03094429236
Study Consultants in Lahore || 📞03094429236
 
Kanpur Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Kanpur Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceKanpur Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Kanpur Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
Book Cheap Flight Tickets - TraveljunctionUK
Book  Cheap Flight Tickets - TraveljunctionUKBook  Cheap Flight Tickets - TraveljunctionUK
Book Cheap Flight Tickets - TraveljunctionUK
 

Domain-Driven Design (Artur Trosin Product Stream)

  • 1. Domain-Driven Design (DDD) effective collaboration Artur Trosin Presentation for: Lviv IT Arena, 2015
  • 3. Why DDD nowadays? • Automation of various business domains • High competition for a market place • Growing business complexity • Many roles and teams involved in a business process • Higher standards & new features • Continuous Delivery: Time to Market Complexity becomes inevitable
  • 4. Domain – a sphere of knowledge or activity
  • 5. Domain Model - is a rigorously organized and selective abstraction of the (Business) Domain knowledge.
  • 6. Ubiquitous Language - language structured around the domain model and used by all team members to connect all the activities of the team with the software.
  • 7. Main DDD premises 1. Primary focus should be on the domain and domain logic 2. Complex domain designs should be based on a model
  • 8. Domain Model and modelling
  • 9. • Modelling and design are the quickest way to actual goal Eric Evans Modelling the Domain
  • 11. Even Music has a Model
  • 12.
  • 13. Keep in mind • Multiple Models • Do not stop just on one even it meets the requirements • Free form sketches or UML • Prefer diagram simplicity over UML syntax correctness • Do NOT FIT TOO MUCH
  • 16.
  • 17. Ubiquitous Language Technical aspects of design Technical terms Technical design patterns S.O.L.I.D design principles Domain Model Terms DDD Patterns Bounded Contexts Business terms developers don’t understand Business terms everyone uses that don’t appear in design Candidates to fold into model
  • 18. Ubiquitous, but Not Universal • One Ubiquitous Language per Bounded Context • Speak the Ubiquitous Language of the isolated domain model within the explicit Bounded Context. • If you try to apply a single Ubiquitous Language to an entire enterprise system you will fail.
  • 20. Iteration 0 Iteration 1 Iteration 2 Iteration 3 Domain Experts And BusinessAnalysts UML Developers Iteration N? Model evolves, bug fixes, found issues with analysismodel,... Initially the code model matches analysismodel No Feedback loop, descriptivedomain lost, Code model no longer reflectsanalysismodel Source: Patterns, Principles, and Practices of Domain-Driven Design, By Scott Millett, Nick Tune
  • 21. Requirements Specification in DDD • Start first with benefits and goals • Working backwards • Exercise the ubiquitous language in StoriesUse-Cases • Look for key business examples in StoriesUse-Cases to source as core scenarios for modeling
  • 22. BA role in DDD • Flash out initial ideas of the product from business experts • Actively participate in domain modelling process • Continuous focus on UL and its correct usage within the team • To facilitate discussion between developers and business experts • Do not remove direct communication between developers and domain experts
  • 23. How models are created • walk with domain expert through core scenarios • Creative collaboration with a business experts • Refinement of ubiquitous language and therefore the model • sketch (informal) UML diagrams on whiteboard explaining how the model supports them • Sequence diagrams can be very helpful for understanding the application flow from the UI, API, or context boundary down to the domain model • Challenge your assumptions
  • 24. Architecture • Architecture is largely orthogonal, but supportive, for DDD • 4+1 views architecture for SAD are still relevant • Focus on core domain business capabilities and context map • Facilitate collaboration when multiple teams are involved for wider system view • Anticipate and provide more architectural views where and when it is needed
  • 25. Classic Layering UI Business Entities Data Access DB Record Sets or Data Sets or POCO or POJO No Clear Business layer isolation
  • 27. During development: Analysis Model and Code Model are in sync UML In synergy with code model UML Evolve Sync Back Source: Patterns, Principles, and Practices of Domain-Driven Design, By Scott Millett, Nic
  • 28. (Continuous) Collaboration in DDD Business Domain (business experts) Domain Model & Ubiquitous Language Software Development (development team) Software Produce Based on Ubiquitous Language Reflected in Direct mapping between business domain concepts and software artifacts
  • 30. What is DDD? • NOT a standard, framework or technology • Is discovered and NOT invented • Technology agnostic • Set of principles, patterns and practices • DDD enforce Object Oriented principles • It is a learning process not a goal • Etc..
  • 31. When to apply • When solutions seem more complex than problems • When communication with team members and business experts deteriorates • When velocity slows due to ineffective collaboration… • Applied in both, green field and legacy projects
  • 32. When could it be harmful? • Data oriented andor CRUD Projects • Use DDD to model a complex domain in the simplest possible way. Never use DDD to make your solution more complex. • Very few business operations (<30) • Client imposes its way of developing products
  • 33. DDD benefits? • Reduced complexity • Continuous collaboration and feedback • Translations are reduced to minimum • Higher maintainability and transparency • Clearer requirements • Etc…
  • 34. How to apply 1. Evaluate if makes sense to apply DDD in your case 2. Shift your focus to business domain 3. Start from Ubiquitous Language 4. Start having modeling brainstorming within the team and domain experts 5. Learn and consider DDD principles and patterns in ALL team’s activities
  • 35. References • Domain-Driven Design: Tackling Complexity in the Heart of Software • Domain Driven Design Quickly • Applying Domain-Driven Design and Patterns: With Examples in C# and .NET • Patterns of Enterprise Application Architecture • .NET Domain-Driven Design with C#: Problem - Design – Solution • Cargo DDD Application Sample – C# implementation/ Java implementation • My e-mail artur.trosin@gmail.com 