SlideShare a Scribd company logo
1 of 21
Download to read offline
Domain Driven Design:
Panagiotis Papaioannou
p.papaioannou@gmail.com
Made Easy employing Systemic Approach
2
Software for Domain Experts (SFDE)
Purpose and Structure of the Presentation
Topics:
• Software for Domain Experts (SFDE) - Low Code development
• Domain Driven Design basics
• Systemic Approach basics
Proposition:
Domain Driven Design
based on simple Systemic principles
helps developing high value Software for Domain Experts
3
Software for Domain Experts (SFDE)
SFDE for small projects
Domain Expert
S/W Expert
Low Code Dev
A
Niche Market
Product
Domain expert: A person with special knowledge or skills in a particular area
(different than s/w development)
Software expert: A technical expert or a “Business – IT Liaison”
Low Code Dev: Developing applications with minimal coding requirement
SFDE concept can be applied to:
 External customers
 Internal customers
4
Software for Domain Experts (SFDE)
Why Software for Domain Experts
Empathetic Software
I want s/w that works the way I think
Specifics of my job are not covered by our ERP
ERP is not friendly regarding my work
Bridge the gap between
Business and IT
Specific business processes are not covered by the ERP
Business Differentiation
Competitive advantage
I do not work the same way with my competitors
I need functionality that serves my competitive advantage
Process/Business Agility
Need for rapid response to market change
Monolithic and ERP systems are not change-friendly
5
Software for Domain Experts (SFDE)
Domain Driven Design
Introduced by Eric Evans (2004) as an approach to
the development of complex software
The idea:
• Start focusing on the core domain and domain
logic
• Base the design on model(s) of the domain
• Initiate a creative collaboration between technical
and domain experts
• Iteratively refine a conceptual model of the
domain and the related problems
6
Software for Domain Experts (SFDE)
Domain Driven Design :: Key Concepts
* Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015)
Domain A sphere of knowledge, influence, or activity. The subject area to which
the user applies a program is the domain of the software.
Model A system of abstractions that describes selected aspects of a domain and
can be used to solve problems related to that domain.
Ubiquitous
Language
A language structured around the domain model and used by all team
members within a bounded context to connect all the activities of the
team with the software.
Context The setting in which a word or statement appears that determines its
meaning. Statements about a model can only be understood in a
context.
Bounded
Context
A description of a boundary (typically a subsystem, or the work of a
particular team) within which a particular model is defined and
applicable.
*
7
Software for Domain Experts (SFDE)
Ubiquitous
Language
Model-Driven
Design
Bounded
Context
Model gives
structure to
Define model within
Names enter
Domain Driven Design :: Overview *
* Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015)
Express model with:
• Entities
• Value Objects
• Services
• Domain Events
Isolate Domain(s) with:
• Layered Architectures
Keep model unified with:
• Continuous Integration
Assess/Overview
Relationships with:
• Context Map
8
Software for Domain Experts (SFDE)
Domain Driven Design :: Model Driven Design
* Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015)
*
9
Software for Domain Experts (SFDE)
Domain Driven Design :: Bounded Context
* Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015)
*
10
Software for Domain Experts (SFDE)
Domain Driven Design :: Summary
1) Focus on the core domain.
2) Explore models in a creative collaboration of
domain practitioners and software practitioners.
3) Speak a ubiquitous language
within an explicitly bounded context.
*
* Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015)
11
Software for Domain Experts (SFDE)
Why Domain Driven Design
Is it worth for small projects?
DDD was intended for complex projects.
DDD is (said to be) too complex for a simple (CRUD) app.
BUT
• How do we know it’s a simple app, without having a domain model?
• DDD is a way of thinking - not a technology or a methodology
• Focuses on the value of the application.
• Domain driven design is all about understanding the problem that the
customer is trying to solve.
• Models – models - models
Where is the scale of the project ?
12
Software for Domain Experts (SFDE)
Domain Driven Design :: Sharing Knowledge
Ba as shared context in motion (Nonaka and Konno, 1998)
Domain ExpertS/W Expert
Models Models
Models
13
Software for Domain Experts (SFDE)
The System of the Organization
Raw Materials
Capital
Information
(…)
Inputs
Work Activities
Management Activities
Methods
(…)
Transformation
Products
Services
Financial Results
Information
(…)
Outputs
Feedback
The Organization as an Open System
14
Software for Domain Experts (SFDE)
Systemic Approach
• Organization is a system of interacting components
• There is a system-subsystem structure of the organization
• The system has boundaries that have to be defined
• A system has inputs/outputs and performs a transformation
Benefits: Understand and model the domain – Define context
Reduce complexity formulating domains - subdomains
Establish the ubiquitous language
15
Software for Domain Experts (SFDE)
Systemic Approach
• What matters is the interaction between the parts, not the parts themselves
• The whole is greater than the sum of its parts (the big picture!)
• The system (the organization) serves a purpose
Benefits: Understand the internal function of the domain
Understand what customer wants – strategic goals – satisfaction criteria
Focus on outcomes
16
Software for Domain Experts (SFDE)
Systemic Approach
There are feedback loops in the causality paths.
These feedback loops produce complex system behaviors.
Benefits: Deeply understand the domain (structure  behavior)
Dynamics of the domain (behavior  events)
Uncover the big pic of the domain
17
Software for Domain Experts (SFDE)
Systemic Approach
• What matters are reoccurring patterns
rather than individual events.
Patterns of behavior lead to structure
discovery.
• Small interventions in a part of the
organization may have effects on other
sections or on the organization as a
whole.
Benefits: Understand the domain events  behavior  structure
Intervention risks
Sustainable solutions
18
Software for Domain Experts (SFDE)
How Systemic Approach helps in Domain Driven Designing
• Understand the Domain (purpose, boundaries)
• Model the Domain (System – subsystem structure, relations)
• Uncover the big picture of the domain
• Stay focused on outcomes
• Discover dynamics that are taking place in the domain
• Explore intervention risks
• Deal with Complexity - bring Order out of chaos
• A stable background for learning
• A good way to integrate new ideas within the organization’s context
• Model the Context of the Domain and Subdomains
• Establish a common language (the ubiquitous language)
• Sustainable solutions
• Effectively management of organizational changes
Summary
19
Software for Domain Experts (SFDE)
What we try to avoid
businessballs.com Original drawing: J Oakland, 1989
20
Software for Domain Experts (SFDE)
Domain Driven Design concepts
Focus on the core domain
Explore models
Collaborate with domain practitioners
Create and use a common language
Systemic Approach principles
Model and understand the domain
and the context / Reduce complexity
Establishes the common language
Sustainable solutions
Empathetic Software
Process/Business Agility
Bridge the gap between Business and IT
Business Differentiation, Competitive advantage
SFDE
21
Software for Domain Experts (SFDE)
g{tÇ~ lÉâ
Panagiotis Papaioannou
p.papaioannou@gmail.com

More Related Content

What's hot

Software Generic Design Process.
Software Generic Design Process.Software Generic Design Process.
Software Generic Design Process.Syed Hassan Ali
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect DoesEberhard Wolff
 
Inno tech20131112 c
Inno tech20131112 cInno tech20131112 c
Inno tech20131112 cPaul Preiss
 
Software architecture for developers by Simon Brown
Software architecture for developers by Simon BrownSoftware architecture for developers by Simon Brown
Software architecture for developers by Simon BrownCodemotion
 
Design in construction
Design in constructionDesign in construction
Design in constructionKrishna E.G
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
Solid Software Design
Solid Software DesignSolid Software Design
Solid Software DesignAbbas Raza
 
IA 3: Information Architecture Concepts
IA 3: Information Architecture ConceptsIA 3: Information Architecture Concepts
IA 3: Information Architecture ConceptsHarald Felgner, PhD
 
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...mircea.lungu
 
An Introduction to Software Architecture - Summary
An Introduction to Software Architecture - SummaryAn Introduction to Software Architecture - Summary
An Introduction to Software Architecture - SummaryJohn Ortiz
 
10 solution architecture concepts
10 solution architecture concepts10 solution architecture concepts
10 solution architecture conceptsPaul Preiss
 
Non functional requirements framework
Non functional requirements frameworkNon functional requirements framework
Non functional requirements frameworkwweinmeyer79
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsGanesh Samarthyam
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptswweinmeyer79
 

What's hot (20)

Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
Software Generic Design Process.
Software Generic Design Process.Software Generic Design Process.
Software Generic Design Process.
 
Software design
Software designSoftware design
Software design
 
What a Good Software Architect Does
What a Good Software Architect DoesWhat a Good Software Architect Does
What a Good Software Architect Does
 
Software design
Software designSoftware design
Software design
 
Inno tech20131112 c
Inno tech20131112 cInno tech20131112 c
Inno tech20131112 c
 
Software architecture for developers by Simon Brown
Software architecture for developers by Simon BrownSoftware architecture for developers by Simon Brown
Software architecture for developers by Simon Brown
 
Design in construction
Design in constructionDesign in construction
Design in construction
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Solid Software Design
Solid Software DesignSolid Software Design
Solid Software Design
 
Software design
Software designSoftware design
Software design
 
IA 3: Information Architecture Concepts
IA 3: Information Architecture ConceptsIA 3: Information Architecture Concepts
IA 3: Information Architecture Concepts
 
L16 Documenting Software
L16 Documenting SoftwareL16 Documenting Software
L16 Documenting Software
 
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
Software Architecture Recovery: The 5 Questions You Always Asked Yourself Abo...
 
An Introduction to Software Architecture - Summary
An Introduction to Software Architecture - SummaryAn Introduction to Software Architecture - Summary
An Introduction to Software Architecture - Summary
 
10 solution architecture concepts
10 solution architecture concepts10 solution architecture concepts
10 solution architecture concepts
 
Non functional requirements framework
Non functional requirements frameworkNon functional requirements framework
Non functional requirements framework
 
Refactoring for Software Architecture Smells
Refactoring for Software Architecture SmellsRefactoring for Software Architecture Smells
Refactoring for Software Architecture Smells
 
An introduction to fundamental architecture concepts
An introduction to fundamental architecture conceptsAn introduction to fundamental architecture concepts
An introduction to fundamental architecture concepts
 

Similar to Domain Driven Design: Made Easy employing Systemic Approach

The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software ArchitectHayim Makabee
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignMuhammad Ali
 
Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignCode & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignFrank Levering
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)IT Arena
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven DesignR-P-Azevedo
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsGabor Guta
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
Domain driven design simplified
Domain driven design simplifiedDomain driven design simplified
Domain driven design simplifiedVinod Wilson
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven ArchitecturesLalit Kale
 
MOND Semantics Integration
MOND Semantics IntegrationMOND Semantics Integration
MOND Semantics IntegrationSales Emea
 

Similar to Domain Driven Design: Made Easy employing Systemic Approach (20)

Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignCode & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven Design
 
DOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGNDOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGN
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven Design
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
A Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small ProjectsA Lightweight MDD Process Applied in Small Projects
A Lightweight MDD Process Applied in Small Projects
 
DDD
DDDDDD
DDD
 
DDD eXchange
DDD eXchangeDDD eXchange
DDD eXchange
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
Domain driven design simplified
Domain driven design simplifiedDomain driven design simplified
Domain driven design simplified
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
Design final
Design finalDesign final
Design final
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
MOND Semantics Integration
MOND Semantics IntegrationMOND Semantics Integration
MOND Semantics Integration
 

More from Panagiotis Papaioannou

A systemic approach to the operations of the Education Department of large or...
A systemic approach to the operations of the Education Department of large or...A systemic approach to the operations of the Education Department of large or...
A systemic approach to the operations of the Education Department of large or...Panagiotis Papaioannou
 
Using the Design and Control Systemic Methodology to calculate Systems Comple...
Using the Design and Control Systemic Methodology to calculate Systems Comple...Using the Design and Control Systemic Methodology to calculate Systems Comple...
Using the Design and Control Systemic Methodology to calculate Systems Comple...Panagiotis Papaioannou
 
Applying systemic methodologies to bridge the gap between a process-oriented ...
Applying systemic methodologies to bridge the gap between a process-oriented ...Applying systemic methodologies to bridge the gap between a process-oriented ...
Applying systemic methodologies to bridge the gap between a process-oriented ...Panagiotis Papaioannou
 
Process Mining applications and a correlation with the Systemic Approach (app...
Process Mining applications and a correlation with the Systemic Approach (app...Process Mining applications and a correlation with the Systemic Approach (app...
Process Mining applications and a correlation with the Systemic Approach (app...Panagiotis Papaioannou
 
Systemic approach to the Business-IT alignment issue
Systemic approach to the Business-IT alignment issueSystemic approach to the Business-IT alignment issue
Systemic approach to the Business-IT alignment issuePanagiotis Papaioannou
 
Electronic registry for the management of childhood obesity in Greece
Electronic registry for the management of childhood obesity in GreeceElectronic registry for the management of childhood obesity in Greece
Electronic registry for the management of childhood obesity in GreecePanagiotis Papaioannou
 
Domain Driven Design and Soft Systems Methodology for Information Systems in ...
Domain Driven Design and Soft Systems Methodology for Information Systems in ...Domain Driven Design and Soft Systems Methodology for Information Systems in ...
Domain Driven Design and Soft Systems Methodology for Information Systems in ...Panagiotis Papaioannou
 
DOMAIN-DRIVEN DESIGN AND SOFT SYSTEMS METHODOLOGY AS A FRAMEWORK TO AVOID SOF...
DOMAIN-DRIVEN DESIGN AND SOFT SYSTEMS METHODOLOGY AS A FRAMEWORK TO AVOID SOF...DOMAIN-DRIVEN DESIGN AND SOFT SYSTEMS METHODOLOGY AS A FRAMEWORK TO AVOID SOF...
DOMAIN-DRIVEN DESIGN AND SOFT SYSTEMS METHODOLOGY AS A FRAMEWORK TO AVOID SOF...Panagiotis Papaioannou
 
Digital Transformation Mapmaking - DCSYM for value modelling
Digital Transformation Mapmaking - DCSYM for value modellingDigital Transformation Mapmaking - DCSYM for value modelling
Digital Transformation Mapmaking - DCSYM for value modellingPanagiotis Papaioannou
 
Business Process Management and Business Intelligence
Business Process Management and Business IntelligenceBusiness Process Management and Business Intelligence
Business Process Management and Business IntelligencePanagiotis Papaioannou
 
Business Process Management as an enabling factor for Digital Transformation
Business Process Management as an enabling factor for Digital TransformationBusiness Process Management as an enabling factor for Digital Transformation
Business Process Management as an enabling factor for Digital TransformationPanagiotis Papaioannou
 
Business Process Management as the basis for Digital Transformation
Business Process Management as the basis for Digital TransformationBusiness Process Management as the basis for Digital Transformation
Business Process Management as the basis for Digital TransformationPanagiotis Papaioannou
 
Reengineering of the Process of a Call Center Using Systemic Methodologies, H...
Reengineering of the Process of a Call Center Using Systemic Methodologies, H...Reengineering of the Process of a Call Center Using Systemic Methodologies, H...
Reengineering of the Process of a Call Center Using Systemic Methodologies, H...Panagiotis Papaioannou
 
Systemic Modeling and Relations Thinking for Risk Assessment and IT Resources...
Systemic Modeling and Relations Thinking for Risk Assessment and IT Resources...Systemic Modeling and Relations Thinking for Risk Assessment and IT Resources...
Systemic Modeling and Relations Thinking for Risk Assessment and IT Resources...Panagiotis Papaioannou
 
Applied Process Mining in a Blood Bank and correlation with the Systemic Appr...
Applied Process Mining in a Blood Bank and correlation with the Systemic Appr...Applied Process Mining in a Blood Bank and correlation with the Systemic Appr...
Applied Process Mining in a Blood Bank and correlation with the Systemic Appr...Panagiotis Papaioannou
 
SW ecosystems for Business-IT alignment
SW ecosystems for Business-IT alignmentSW ecosystems for Business-IT alignment
SW ecosystems for Business-IT alignmentPanagiotis Papaioannou
 

More from Panagiotis Papaioannou (16)

A systemic approach to the operations of the Education Department of large or...
A systemic approach to the operations of the Education Department of large or...A systemic approach to the operations of the Education Department of large or...
A systemic approach to the operations of the Education Department of large or...
 
Using the Design and Control Systemic Methodology to calculate Systems Comple...
Using the Design and Control Systemic Methodology to calculate Systems Comple...Using the Design and Control Systemic Methodology to calculate Systems Comple...
Using the Design and Control Systemic Methodology to calculate Systems Comple...
 
Applying systemic methodologies to bridge the gap between a process-oriented ...
Applying systemic methodologies to bridge the gap between a process-oriented ...Applying systemic methodologies to bridge the gap between a process-oriented ...
Applying systemic methodologies to bridge the gap between a process-oriented ...
 
Process Mining applications and a correlation with the Systemic Approach (app...
Process Mining applications and a correlation with the Systemic Approach (app...Process Mining applications and a correlation with the Systemic Approach (app...
Process Mining applications and a correlation with the Systemic Approach (app...
 
Systemic approach to the Business-IT alignment issue
Systemic approach to the Business-IT alignment issueSystemic approach to the Business-IT alignment issue
Systemic approach to the Business-IT alignment issue
 
Electronic registry for the management of childhood obesity in Greece
Electronic registry for the management of childhood obesity in GreeceElectronic registry for the management of childhood obesity in Greece
Electronic registry for the management of childhood obesity in Greece
 
Domain Driven Design and Soft Systems Methodology for Information Systems in ...
Domain Driven Design and Soft Systems Methodology for Information Systems in ...Domain Driven Design and Soft Systems Methodology for Information Systems in ...
Domain Driven Design and Soft Systems Methodology for Information Systems in ...
 
DOMAIN-DRIVEN DESIGN AND SOFT SYSTEMS METHODOLOGY AS A FRAMEWORK TO AVOID SOF...
DOMAIN-DRIVEN DESIGN AND SOFT SYSTEMS METHODOLOGY AS A FRAMEWORK TO AVOID SOF...DOMAIN-DRIVEN DESIGN AND SOFT SYSTEMS METHODOLOGY AS A FRAMEWORK TO AVOID SOF...
DOMAIN-DRIVEN DESIGN AND SOFT SYSTEMS METHODOLOGY AS A FRAMEWORK TO AVOID SOF...
 
Digital Transformation Mapmaking - DCSYM for value modelling
Digital Transformation Mapmaking - DCSYM for value modellingDigital Transformation Mapmaking - DCSYM for value modelling
Digital Transformation Mapmaking - DCSYM for value modelling
 
Business Process Management and Business Intelligence
Business Process Management and Business IntelligenceBusiness Process Management and Business Intelligence
Business Process Management and Business Intelligence
 
Business Process Management as an enabling factor for Digital Transformation
Business Process Management as an enabling factor for Digital TransformationBusiness Process Management as an enabling factor for Digital Transformation
Business Process Management as an enabling factor for Digital Transformation
 
Business Process Management as the basis for Digital Transformation
Business Process Management as the basis for Digital TransformationBusiness Process Management as the basis for Digital Transformation
Business Process Management as the basis for Digital Transformation
 
Reengineering of the Process of a Call Center Using Systemic Methodologies, H...
Reengineering of the Process of a Call Center Using Systemic Methodologies, H...Reengineering of the Process of a Call Center Using Systemic Methodologies, H...
Reengineering of the Process of a Call Center Using Systemic Methodologies, H...
 
Systemic Modeling and Relations Thinking for Risk Assessment and IT Resources...
Systemic Modeling and Relations Thinking for Risk Assessment and IT Resources...Systemic Modeling and Relations Thinking for Risk Assessment and IT Resources...
Systemic Modeling and Relations Thinking for Risk Assessment and IT Resources...
 
Applied Process Mining in a Blood Bank and correlation with the Systemic Appr...
Applied Process Mining in a Blood Bank and correlation with the Systemic Appr...Applied Process Mining in a Blood Bank and correlation with the Systemic Appr...
Applied Process Mining in a Blood Bank and correlation with the Systemic Appr...
 
SW ecosystems for Business-IT alignment
SW ecosystems for Business-IT alignmentSW ecosystems for Business-IT alignment
SW ecosystems for Business-IT alignment
 

Recently uploaded

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
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
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
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
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
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
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 

Recently uploaded (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
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
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
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
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
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
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 

Domain Driven Design: Made Easy employing Systemic Approach

  • 1. Domain Driven Design: Panagiotis Papaioannou p.papaioannou@gmail.com Made Easy employing Systemic Approach
  • 2. 2 Software for Domain Experts (SFDE) Purpose and Structure of the Presentation Topics: • Software for Domain Experts (SFDE) - Low Code development • Domain Driven Design basics • Systemic Approach basics Proposition: Domain Driven Design based on simple Systemic principles helps developing high value Software for Domain Experts
  • 3. 3 Software for Domain Experts (SFDE) SFDE for small projects Domain Expert S/W Expert Low Code Dev A Niche Market Product Domain expert: A person with special knowledge or skills in a particular area (different than s/w development) Software expert: A technical expert or a “Business – IT Liaison” Low Code Dev: Developing applications with minimal coding requirement SFDE concept can be applied to:  External customers  Internal customers
  • 4. 4 Software for Domain Experts (SFDE) Why Software for Domain Experts Empathetic Software I want s/w that works the way I think Specifics of my job are not covered by our ERP ERP is not friendly regarding my work Bridge the gap between Business and IT Specific business processes are not covered by the ERP Business Differentiation Competitive advantage I do not work the same way with my competitors I need functionality that serves my competitive advantage Process/Business Agility Need for rapid response to market change Monolithic and ERP systems are not change-friendly
  • 5. 5 Software for Domain Experts (SFDE) Domain Driven Design Introduced by Eric Evans (2004) as an approach to the development of complex software The idea: • Start focusing on the core domain and domain logic • Base the design on model(s) of the domain • Initiate a creative collaboration between technical and domain experts • Iteratively refine a conceptual model of the domain and the related problems
  • 6. 6 Software for Domain Experts (SFDE) Domain Driven Design :: Key Concepts * Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015) Domain A sphere of knowledge, influence, or activity. The subject area to which the user applies a program is the domain of the software. Model A system of abstractions that describes selected aspects of a domain and can be used to solve problems related to that domain. Ubiquitous Language A language structured around the domain model and used by all team members within a bounded context to connect all the activities of the team with the software. Context The setting in which a word or statement appears that determines its meaning. Statements about a model can only be understood in a context. Bounded Context A description of a boundary (typically a subsystem, or the work of a particular team) within which a particular model is defined and applicable. *
  • 7. 7 Software for Domain Experts (SFDE) Ubiquitous Language Model-Driven Design Bounded Context Model gives structure to Define model within Names enter Domain Driven Design :: Overview * * Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015) Express model with: • Entities • Value Objects • Services • Domain Events Isolate Domain(s) with: • Layered Architectures Keep model unified with: • Continuous Integration Assess/Overview Relationships with: • Context Map
  • 8. 8 Software for Domain Experts (SFDE) Domain Driven Design :: Model Driven Design * Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015) *
  • 9. 9 Software for Domain Experts (SFDE) Domain Driven Design :: Bounded Context * Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015) *
  • 10. 10 Software for Domain Experts (SFDE) Domain Driven Design :: Summary 1) Focus on the core domain. 2) Explore models in a creative collaboration of domain practitioners and software practitioners. 3) Speak a ubiquitous language within an explicitly bounded context. * * Eric Evans, Domain-Driven Design Reference - Definitions and Pattern Summaries (2015)
  • 11. 11 Software for Domain Experts (SFDE) Why Domain Driven Design Is it worth for small projects? DDD was intended for complex projects. DDD is (said to be) too complex for a simple (CRUD) app. BUT • How do we know it’s a simple app, without having a domain model? • DDD is a way of thinking - not a technology or a methodology • Focuses on the value of the application. • Domain driven design is all about understanding the problem that the customer is trying to solve. • Models – models - models Where is the scale of the project ?
  • 12. 12 Software for Domain Experts (SFDE) Domain Driven Design :: Sharing Knowledge Ba as shared context in motion (Nonaka and Konno, 1998) Domain ExpertS/W Expert Models Models Models
  • 13. 13 Software for Domain Experts (SFDE) The System of the Organization Raw Materials Capital Information (…) Inputs Work Activities Management Activities Methods (…) Transformation Products Services Financial Results Information (…) Outputs Feedback The Organization as an Open System
  • 14. 14 Software for Domain Experts (SFDE) Systemic Approach • Organization is a system of interacting components • There is a system-subsystem structure of the organization • The system has boundaries that have to be defined • A system has inputs/outputs and performs a transformation Benefits: Understand and model the domain – Define context Reduce complexity formulating domains - subdomains Establish the ubiquitous language
  • 15. 15 Software for Domain Experts (SFDE) Systemic Approach • What matters is the interaction between the parts, not the parts themselves • The whole is greater than the sum of its parts (the big picture!) • The system (the organization) serves a purpose Benefits: Understand the internal function of the domain Understand what customer wants – strategic goals – satisfaction criteria Focus on outcomes
  • 16. 16 Software for Domain Experts (SFDE) Systemic Approach There are feedback loops in the causality paths. These feedback loops produce complex system behaviors. Benefits: Deeply understand the domain (structure  behavior) Dynamics of the domain (behavior  events) Uncover the big pic of the domain
  • 17. 17 Software for Domain Experts (SFDE) Systemic Approach • What matters are reoccurring patterns rather than individual events. Patterns of behavior lead to structure discovery. • Small interventions in a part of the organization may have effects on other sections or on the organization as a whole. Benefits: Understand the domain events  behavior  structure Intervention risks Sustainable solutions
  • 18. 18 Software for Domain Experts (SFDE) How Systemic Approach helps in Domain Driven Designing • Understand the Domain (purpose, boundaries) • Model the Domain (System – subsystem structure, relations) • Uncover the big picture of the domain • Stay focused on outcomes • Discover dynamics that are taking place in the domain • Explore intervention risks • Deal with Complexity - bring Order out of chaos • A stable background for learning • A good way to integrate new ideas within the organization’s context • Model the Context of the Domain and Subdomains • Establish a common language (the ubiquitous language) • Sustainable solutions • Effectively management of organizational changes Summary
  • 19. 19 Software for Domain Experts (SFDE) What we try to avoid businessballs.com Original drawing: J Oakland, 1989
  • 20. 20 Software for Domain Experts (SFDE) Domain Driven Design concepts Focus on the core domain Explore models Collaborate with domain practitioners Create and use a common language Systemic Approach principles Model and understand the domain and the context / Reduce complexity Establishes the common language Sustainable solutions Empathetic Software Process/Business Agility Bridge the gap between Business and IT Business Differentiation, Competitive advantage SFDE
  • 21. 21 Software for Domain Experts (SFDE) g{tÇ~ lÉâ Panagiotis Papaioannou p.papaioannou@gmail.com