SlideShare a Scribd company logo
1 of 26
Download to read offline
Re-engineering
an Enterprise
with
Domain Driven Design
RAJU K
XEBIA
About Raj
• Enterprise Agile Coach
• Professional ScrumTrainer
• Xebia Agile Consulting and Transformation - North Americas Practice Lead
Time for a poll…
If your current Enterprise is bit older (more than 15+ years) –
What type of IT Systems do you see?
A. Individual Silos supporting Line of Businesses
B. Well organized, productized IT Systems focused on BusinessValue
Something familiar?
• Enterprises – which are bit older – are designed and operated in this way:
User experience/UI
Applications
APIs, Business Logic
Platform & Ops
Infrastructure
Line of Business
User experience/UI
Applications
APIs, Business Logic
Platform & Ops
Infrastructure
Line of Business
Shared
services:
Architecture,
App
Sec,
SRE
etc.
Key Challenges…
• Bureaucracy
• Power dynamics between Leaders
• Lot of sunk costs in maintenance
• Slow response times
• Not easy to scale
• Huge hidden costs of SW/HW licensing
https://www.youtube.com/watch?v=whi2vzAc8VY
Better Future State
• A re-engineered Enterprise – ready to take on the world
BusinessValue Stream
Infra &
Platform
Conway’s law…
• Any organization that designs a system, (defined broadly), will produce a design whose structure is a copy of
the organization's communication structure.
-- Melvin Conway, 1968
Domain driven design
• Domain-driven design (DDD) is a major software design approach,[1] focusing on modeling
software to match a domain according to input from that domain's experts.[2]
• Under domain-driven design, the structure and language of software code (class names, class
methods, class variables) should match the business domain. For example, if software processes loan
applications, it might have classes like loan application, customer, and methods such as accept offer
and withdraw.
• Domain-driven design is predicated on the following goals:
• placing the project's primary focus on the core domain and domain logic;
• basing complex designs on a model of the domain;
• initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual
model that addresses particular domain problems.
https://en.wikipedia.org/wiki/Domain-driven_design
DDD – Bounded context
• This is one of the most valuable constructs within DDD.
• It provides the mechanism to break up large and complex systems into discrete
pieces.
• You will need to think of each as being its isolated from its neighbor, and loosely
coupled via events & services
Image source: BoundedContext
(martinfowler.com)
DDD – Bounded context
• One of the goals of Domain Driven Design, is to deliver software that directly reflects
the common language of a given domain.
• Let's use Making a car to illustrate the concepts of DDD.
• Our illustration is going to cover the process of making a car.
Arrange these in correct order
• Can you arrange these steps in making a car in correct order?
Procuring various
components
Assembling
Transporting to a
dealer
Delivering to a
Dealer
Painting
High level flow
• Lets start with the high-level flow Procuring various
components
Assembling
Transporting to a
dealer
Delivering to a
Buyer
Painting
Buyer
Dealer
Transporter
High level flow
• The Domains of making a car – from a car perspective
Manufacturing
Plant
Buyer
Dealer
Transporter
Vocabulary…
• Notice how each Domain has its own unique language and vocabulary
Manufacturing
Plant
Product Load Business Need or
Status Symbol
Buyer
Dealer
Transporter
Vocabulary…
• Each domain has its own understanding
of the “car”
• These can lead to Silos/Monoliths…
Manufacturing
Plant
• Bill of Material
• Assembly Line
• Configuration
• Final
Destination
• Route
• Weather
conditions
• Other vehicles
in load
• Down
payment
• Payment terms
• Delivery Dates
• Exchange/
Trade-in
• Mileage
• Maintenance
costs
• Accessories
• Installments if
any
Domain and Context
• To bring all these into a common understanding, we have to set the context boundaries
• Each domain will expose its services so other domains can consume the same – creating
a BusinessValue Stream perspective
Buyer
Dealer
Transporter
Manufacturing
Plant
Product is
the “car”
Load is the
“car”
Business is
the “car”
Need or
Status Symbol is
the “car”
• GetBoM()
• RoadTest()
• NSRTest()…
• GetLoad()
• PlanLoad()
• Track()…
• SalesOrder()
• Customer_Account
_Creation()
• Process_Order()…
• Do_PaperWork()
• Do_PDI()
• Take_Delivery()…
DDD through Event Storming
Event
Something that has happened
<noun> <verb>, e.g. order submitted
Command
An action started by a policy in response
to an Event
Capability
Component
A component that is part of a business
capability within the Domain. This
becomes a micro-service.
System
An External system or service which is
outside the Domain
Data
The information that represents an Event
Policy
The reaction to an Event:
When <event> then <command>
Sub
Process
A sub process which is reused or defined
in a separate event storm
Question or
Assumption
A question or assumption that requires
follow up
An example
Event
Something that has happened
<noun> <verb>, e.g. order submitted
A New order at Manufacturing Plant
Command
An action started by a policy in response
to an Event
Raw materials are procured
Capability
Component
A component that is part of a business
capability within the Domain. This
becomes a micro-service.
GenerateVIN Label, Sticker
System
An External system or service which is
outside the Domain
Notify Government Agencies
Notify the Dealer and/or Buyer
Data
The information that represents an Event
Car status is “in Transit”
Policy
The reaction to an Event:
When <event> then <command>
Wrap the car to protect from damages
Sub
Process
A sub process which is reused or defined
in a separate event storm
Get Route approvals/permits etc.
Question or
Assumption
A question or assumption that requires
follow up
Vehicles are secured during Transport
Our flow…
Process payment
service
Preferred
Delivery
date
I want to buy a car
Offer pre-delivery
inspection
Buyer
Name,
address,
contact
Send
Vehicle
and Buyer
details
Car is
shipped
Book a car
Car
received
by Dealer
Car
booked
Support preferred
delivery date of
Buyer
Process payment
service
Licensing
details
This emerging pattern is defining the Bounded Context
for the Capability Component
This is our first Deliverable Artifact: It is a map of the Domain's processes.
MV/RTO Database
Data Policy Command
Capability
Component
(Aggregate)
Event
External system
Legend:
After the storm…
• A Capability Component now has a Bounded Context. The Bounded Context is
revealed when you remove the Events and Policies Leaving behind the Components,
Data, and Commands
Update
Dealer
Order Update
Service
Get
Payment
Assemble
the car
Procure
Raw
material
Shipping
Payment
Order
Car Details,
Configuration
• The Commands will become API resources or
Message subscriptions
• The Data entities will become the Data Model
• The Capability Component is the Logic
(Policies) and State (Data Model) necessary to
turn Commands into Events
This is our Second Deliverable
Artifact: Identify the Components and their
Bounded Contexts
… the end game !
• With the Bounded Context defined, a Capability Component becomes a Micro-Service
that we can code and deploy!
Update
Dealer
Order Update
Service
Get
Payment
Assemble
the car
Procure
Raw
material
Shipping
Payment
Order
Car Details,
Configuration
Now the real work begins.
The Event Storm got us to the Bounded Context.
So, now we can define our API or Message
Contracts, the underlying Logic, and derive the
Data Model.
Capability Component
(Microservices)
Business Capability
Product/Service
Domain
Final Example
Car Manufacturer
Make the car
Orders
Order Management
Payment
processing
Shipping
Load Planner
Route Planner
Dealers
Sales & Delivery
Inventory
Management
Service
Service Orders
Spares and
Accessories
Training
Domain - L1
Product - L2
Business capability - L3
Capability Component
- L4
Business capability –
L3
Capability
Components – L4
Product - L2
Business capability - L3
Capability Component
- L4
Business capability –
L3
Capability
Components – L4
Products & ServicesTaxonomy
Services (e.g. Microservice)
Execution Plan
Domain
Products / Services
Microservices aka Capability components
Domain 1
Capability 1
Capability 2
Capability 3
Domain 2
Capability 4
Capability 5
Capability 6
etc….
MVP Increment
Capability 1
Capability 2
Capability 3
Next Increment
Capability 4
Capability 5
Capability 6
etc….
Next Increment
Capability 4
Capability 5
Capability 6
DDD
1a – Establish business process & Identify Domains and
boundaries
1b – Event storm on domains and define capabilities
1c – Breakdown domain / capabilities into candidate
Microservices
Decomp
2a – Analyze current applications and decompose them to
capabilities
2b – Map capabilities to DDD identifies (Step 1)
services
Build 3b – Initiate development on MVP (First Increment)
3c – Create execution roadmap for application based
on capabilities
2c – Identify MVP scope (Initial set of capabilities)
3d – Next Increment planning
3a – Kick-off with dependent domain owners
Iterate
Agility at the core of DDD
• XP Practices –
Collective Code
ownership, Refactoring
etc.
• Short 2-week Sprints
within a quarter
increment cycle –
frequent inspect and
adapt opportunities
• MVP Concepts helping
Business to re-engineer
and reap Agility
benefits
• BusinessValue Streams
providing a unified view
of the Enterprise –
ease in planning,
budgeting and
execution
Any Questions?
ThankYou

More Related Content

Similar to Re-engineering Technology to break barriers with Business

Cloud Migration: Azure acceleration with CAST Highlight
Cloud Migration: Azure acceleration with CAST HighlightCloud Migration: Azure acceleration with CAST Highlight
Cloud Migration: Azure acceleration with CAST HighlightCAST
 
M.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comM.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comArun Somu Panneerselvam
 
Best Practices for Partnering with AWS
Best Practices for Partnering with AWSBest Practices for Partnering with AWS
Best Practices for Partnering with AWSAmazon Web Services
 
Implementing Service Oriented Architecture
Implementing Service Oriented ArchitectureImplementing Service Oriented Architecture
Implementing Service Oriented ArchitectureAmazon Web Services
 
Implementing Service Oriented Architecture
Implementing Service Oriented ArchitectureImplementing Service Oriented Architecture
Implementing Service Oriented ArchitectureAmazon Web Services
 
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture Implementing Service Oriented Architecture
Implementing Service Oriented Architecture Amazon Web Services
 
Browser Diagnostics using dynatrace Ajax Edition
Browser Diagnostics using dynatrace Ajax EditionBrowser Diagnostics using dynatrace Ajax Edition
Browser Diagnostics using dynatrace Ajax EditionDeepak Kaul
 
Crm implementation (oracle)
Crm implementation (oracle)Crm implementation (oracle)
Crm implementation (oracle)Lauren Taylor
 
MakeServiceContractEasy_NEOAUG_20120611
MakeServiceContractEasy_NEOAUG_20120611MakeServiceContractEasy_NEOAUG_20120611
MakeServiceContractEasy_NEOAUG_20120611Ravindra Tripathi
 
FORCES - EBS Upgrade Compared to SaaS Cloud.pdf
FORCES - EBS Upgrade Compared to SaaS Cloud.pdfFORCES - EBS Upgrade Compared to SaaS Cloud.pdf
FORCES - EBS Upgrade Compared to SaaS Cloud.pdfJacobYeboa1
 
Build & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record TimeBuild & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record TimeRightScale
 
A "First Time Right" Start with Data Virtualization by Bart De Groeve, Practi...
A "First Time Right" Start with Data Virtualization by Bart De Groeve, Practi...A "First Time Right" Start with Data Virtualization by Bart De Groeve, Practi...
A "First Time Right" Start with Data Virtualization by Bart De Groeve, Practi...Patrick Van Renterghem
 
Supporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfSupporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfRakuten Group, Inc.
 
Migrating Thousands of Workloads to AWS at Enterprise Scale – Chris Wegmann, ...
Migrating Thousands of Workloads to AWS at Enterprise Scale – Chris Wegmann, ...Migrating Thousands of Workloads to AWS at Enterprise Scale – Chris Wegmann, ...
Migrating Thousands of Workloads to AWS at Enterprise Scale – Chris Wegmann, ...Amazon Web Services
 
CSCMP 2014: Traditional vs Cloud-Based WMS -- Cornerstone V Track 18 Warehous...
CSCMP 2014: Traditional vs Cloud-Based WMS -- Cornerstone V Track 18 Warehous...CSCMP 2014: Traditional vs Cloud-Based WMS -- Cornerstone V Track 18 Warehous...
CSCMP 2014: Traditional vs Cloud-Based WMS -- Cornerstone V Track 18 Warehous...InterimONE
 
Breaking down the economics and tco of migrating to aws - Toronto
Breaking down the economics and tco of migrating to aws - TorontoBreaking down the economics and tco of migrating to aws - Toronto
Breaking down the economics and tco of migrating to aws - TorontoAmazon Web Services
 
Confluent Partner Tech Talk with BearingPoint
Confluent Partner Tech Talk with BearingPointConfluent Partner Tech Talk with BearingPoint
Confluent Partner Tech Talk with BearingPointconfluent
 

Similar to Re-engineering Technology to break barriers with Business (20)

Cloud Migration: Azure acceleration with CAST Highlight
Cloud Migration: Azure acceleration with CAST HighlightCloud Migration: Azure acceleration with CAST Highlight
Cloud Migration: Azure acceleration with CAST Highlight
 
M.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.comM.S. Dissertation in Salesforce on Force.com
M.S. Dissertation in Salesforce on Force.com
 
Best Practices for Partnering with AWS
Best Practices for Partnering with AWSBest Practices for Partnering with AWS
Best Practices for Partnering with AWS
 
Implementing Service Oriented Architecture
Implementing Service Oriented ArchitectureImplementing Service Oriented Architecture
Implementing Service Oriented Architecture
 
Implementing Service Oriented Architecture
Implementing Service Oriented ArchitectureImplementing Service Oriented Architecture
Implementing Service Oriented Architecture
 
Implementing Service Oriented Architecture
Implementing Service Oriented Architecture Implementing Service Oriented Architecture
Implementing Service Oriented Architecture
 
Browser Diagnostics using dynatrace Ajax Edition
Browser Diagnostics using dynatrace Ajax EditionBrowser Diagnostics using dynatrace Ajax Edition
Browser Diagnostics using dynatrace Ajax Edition
 
Migration Planning
Migration PlanningMigration Planning
Migration Planning
 
Crm implementation (oracle)
Crm implementation (oracle)Crm implementation (oracle)
Crm implementation (oracle)
 
MakeServiceContractEasy_NEOAUG_20120611
MakeServiceContractEasy_NEOAUG_20120611MakeServiceContractEasy_NEOAUG_20120611
MakeServiceContractEasy_NEOAUG_20120611
 
FORCES - EBS Upgrade Compared to SaaS Cloud.pdf
FORCES - EBS Upgrade Compared to SaaS Cloud.pdfFORCES - EBS Upgrade Compared to SaaS Cloud.pdf
FORCES - EBS Upgrade Compared to SaaS Cloud.pdf
 
Build & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record TimeBuild & Deploy Scalable Cloud Applications in Record Time
Build & Deploy Scalable Cloud Applications in Record Time
 
A "First Time Right" Start with Data Virtualization by Bart De Groeve, Practi...
A "First Time Right" Start with Data Virtualization by Bart De Groeve, Practi...A "First Time Right" Start with Data Virtualization by Bart De Groeve, Practi...
A "First Time Right" Start with Data Virtualization by Bart De Groeve, Practi...
 
Ankit Badhani
Ankit BadhaniAnkit Badhani
Ankit Badhani
 
Supporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdfSupporting Internal Customers as Technical Account Managers.pdf
Supporting Internal Customers as Technical Account Managers.pdf
 
MeshU Cloud Camp
MeshU Cloud CampMeshU Cloud Camp
MeshU Cloud Camp
 
Migrating Thousands of Workloads to AWS at Enterprise Scale – Chris Wegmann, ...
Migrating Thousands of Workloads to AWS at Enterprise Scale – Chris Wegmann, ...Migrating Thousands of Workloads to AWS at Enterprise Scale – Chris Wegmann, ...
Migrating Thousands of Workloads to AWS at Enterprise Scale – Chris Wegmann, ...
 
CSCMP 2014: Traditional vs Cloud-Based WMS -- Cornerstone V Track 18 Warehous...
CSCMP 2014: Traditional vs Cloud-Based WMS -- Cornerstone V Track 18 Warehous...CSCMP 2014: Traditional vs Cloud-Based WMS -- Cornerstone V Track 18 Warehous...
CSCMP 2014: Traditional vs Cloud-Based WMS -- Cornerstone V Track 18 Warehous...
 
Breaking down the economics and tco of migrating to aws - Toronto
Breaking down the economics and tco of migrating to aws - TorontoBreaking down the economics and tco of migrating to aws - Toronto
Breaking down the economics and tco of migrating to aws - Toronto
 
Confluent Partner Tech Talk with BearingPoint
Confluent Partner Tech Talk with BearingPointConfluent Partner Tech Talk with BearingPoint
Confluent Partner Tech Talk with BearingPoint
 

More from XPDays

Change the Conversation! Unleash Your Potential in a Complex World.pptx
Change the Conversation! Unleash Your Potential in a Complex World.pptxChange the Conversation! Unleash Your Potential in a Complex World.pptx
Change the Conversation! Unleash Your Potential in a Complex World.pptxXPDays
 
Agile Culture Transformation
Agile Culture TransformationAgile Culture Transformation
Agile Culture TransformationXPDays
 
Practicing Red, Green, Refactor!
Practicing Red, Green, Refactor!Practicing Red, Green, Refactor!
Practicing Red, Green, Refactor!XPDays
 
Ready, Steady, Sprint
Ready, Steady, SprintReady, Steady, Sprint
Ready, Steady, SprintXPDays
 
The Whole Story of The User Story
The Whole Story of The User StoryThe Whole Story of The User Story
The Whole Story of The User StoryXPDays
 
Scrum Master Facilitation Techniques
Scrum Master Facilitation TechniquesScrum Master Facilitation Techniques
Scrum Master Facilitation TechniquesXPDays
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqXPDays
 
An Introduction to The Cynefin Framework
An Introduction to The Cynefin FrameworkAn Introduction to The Cynefin Framework
An Introduction to The Cynefin FrameworkXPDays
 
Team Mental Health
Team Mental HealthTeam Mental Health
Team Mental HealthXPDays
 
Business Analyst in the Agile Space
Business Analyst in the Agile SpaceBusiness Analyst in the Agile Space
Business Analyst in the Agile SpaceXPDays
 
DevOps in action - Azure DevOps
DevOps in action - Azure DevOpsDevOps in action - Azure DevOps
DevOps in action - Azure DevOpsXPDays
 
Priotrization techniques
Priotrization techniquesPriotrization techniques
Priotrization techniquesXPDays
 
Scaled Agile Framework
Scaled Agile FrameworkScaled Agile Framework
Scaled Agile FrameworkXPDays
 
Building Team Habits
Building Team HabitsBuilding Team Habits
Building Team HabitsXPDays
 
4 Keys to Success in your Agile Journey
4 Keys to Success in your Agile Journey4 Keys to Success in your Agile Journey
4 Keys to Success in your Agile JourneyXPDays
 
Coaching stances
Coaching stancesCoaching stances
Coaching stancesXPDays
 
Re-focus for Agile leaders
Re-focus for Agile leadersRe-focus for Agile leaders
Re-focus for Agile leadersXPDays
 
Business Decomposition
Business DecompositionBusiness Decomposition
Business DecompositionXPDays
 
Agile projects | Prioritization
Agile projects | PrioritizationAgile projects | Prioritization
Agile projects | PrioritizationXPDays
 
Scaling Agile | Spotify
Scaling Agile | SpotifyScaling Agile | Spotify
Scaling Agile | SpotifyXPDays
 

More from XPDays (20)

Change the Conversation! Unleash Your Potential in a Complex World.pptx
Change the Conversation! Unleash Your Potential in a Complex World.pptxChange the Conversation! Unleash Your Potential in a Complex World.pptx
Change the Conversation! Unleash Your Potential in a Complex World.pptx
 
Agile Culture Transformation
Agile Culture TransformationAgile Culture Transformation
Agile Culture Transformation
 
Practicing Red, Green, Refactor!
Practicing Red, Green, Refactor!Practicing Red, Green, Refactor!
Practicing Red, Green, Refactor!
 
Ready, Steady, Sprint
Ready, Steady, SprintReady, Steady, Sprint
Ready, Steady, Sprint
 
The Whole Story of The User Story
The Whole Story of The User StoryThe Whole Story of The User Story
The Whole Story of The User Story
 
Scrum Master Facilitation Techniques
Scrum Master Facilitation TechniquesScrum Master Facilitation Techniques
Scrum Master Facilitation Techniques
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and Moq
 
An Introduction to The Cynefin Framework
An Introduction to The Cynefin FrameworkAn Introduction to The Cynefin Framework
An Introduction to The Cynefin Framework
 
Team Mental Health
Team Mental HealthTeam Mental Health
Team Mental Health
 
Business Analyst in the Agile Space
Business Analyst in the Agile SpaceBusiness Analyst in the Agile Space
Business Analyst in the Agile Space
 
DevOps in action - Azure DevOps
DevOps in action - Azure DevOpsDevOps in action - Azure DevOps
DevOps in action - Azure DevOps
 
Priotrization techniques
Priotrization techniquesPriotrization techniques
Priotrization techniques
 
Scaled Agile Framework
Scaled Agile FrameworkScaled Agile Framework
Scaled Agile Framework
 
Building Team Habits
Building Team HabitsBuilding Team Habits
Building Team Habits
 
4 Keys to Success in your Agile Journey
4 Keys to Success in your Agile Journey4 Keys to Success in your Agile Journey
4 Keys to Success in your Agile Journey
 
Coaching stances
Coaching stancesCoaching stances
Coaching stances
 
Re-focus for Agile leaders
Re-focus for Agile leadersRe-focus for Agile leaders
Re-focus for Agile leaders
 
Business Decomposition
Business DecompositionBusiness Decomposition
Business Decomposition
 
Agile projects | Prioritization
Agile projects | PrioritizationAgile projects | Prioritization
Agile projects | Prioritization
 
Scaling Agile | Spotify
Scaling Agile | SpotifyScaling Agile | Spotify
Scaling Agile | Spotify
 

Recently uploaded

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
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
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 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
 
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
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
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
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
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
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

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
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
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 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....
 
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...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
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
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
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)
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

Re-engineering Technology to break barriers with Business

  • 2. About Raj • Enterprise Agile Coach • Professional ScrumTrainer • Xebia Agile Consulting and Transformation - North Americas Practice Lead
  • 3. Time for a poll… If your current Enterprise is bit older (more than 15+ years) – What type of IT Systems do you see? A. Individual Silos supporting Line of Businesses B. Well organized, productized IT Systems focused on BusinessValue
  • 4. Something familiar? • Enterprises – which are bit older – are designed and operated in this way: User experience/UI Applications APIs, Business Logic Platform & Ops Infrastructure Line of Business User experience/UI Applications APIs, Business Logic Platform & Ops Infrastructure Line of Business Shared services: Architecture, App Sec, SRE etc.
  • 5. Key Challenges… • Bureaucracy • Power dynamics between Leaders • Lot of sunk costs in maintenance • Slow response times • Not easy to scale • Huge hidden costs of SW/HW licensing https://www.youtube.com/watch?v=whi2vzAc8VY
  • 6. Better Future State • A re-engineered Enterprise – ready to take on the world BusinessValue Stream Infra & Platform
  • 7. Conway’s law… • Any organization that designs a system, (defined broadly), will produce a design whose structure is a copy of the organization's communication structure. -- Melvin Conway, 1968
  • 8. Domain driven design • Domain-driven design (DDD) is a major software design approach,[1] focusing on modeling software to match a domain according to input from that domain's experts.[2] • Under domain-driven design, the structure and language of software code (class names, class methods, class variables) should match the business domain. For example, if software processes loan applications, it might have classes like loan application, customer, and methods such as accept offer and withdraw. • Domain-driven design is predicated on the following goals: • placing the project's primary focus on the core domain and domain logic; • basing complex designs on a model of the domain; • initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems. https://en.wikipedia.org/wiki/Domain-driven_design
  • 9. DDD – Bounded context • This is one of the most valuable constructs within DDD. • It provides the mechanism to break up large and complex systems into discrete pieces. • You will need to think of each as being its isolated from its neighbor, and loosely coupled via events & services Image source: BoundedContext (martinfowler.com)
  • 10. DDD – Bounded context • One of the goals of Domain Driven Design, is to deliver software that directly reflects the common language of a given domain. • Let's use Making a car to illustrate the concepts of DDD. • Our illustration is going to cover the process of making a car.
  • 11. Arrange these in correct order • Can you arrange these steps in making a car in correct order? Procuring various components Assembling Transporting to a dealer Delivering to a Dealer Painting
  • 12. High level flow • Lets start with the high-level flow Procuring various components Assembling Transporting to a dealer Delivering to a Buyer Painting
  • 13. Buyer Dealer Transporter High level flow • The Domains of making a car – from a car perspective Manufacturing Plant
  • 14. Buyer Dealer Transporter Vocabulary… • Notice how each Domain has its own unique language and vocabulary Manufacturing Plant Product Load Business Need or Status Symbol
  • 15. Buyer Dealer Transporter Vocabulary… • Each domain has its own understanding of the “car” • These can lead to Silos/Monoliths… Manufacturing Plant • Bill of Material • Assembly Line • Configuration • Final Destination • Route • Weather conditions • Other vehicles in load • Down payment • Payment terms • Delivery Dates • Exchange/ Trade-in • Mileage • Maintenance costs • Accessories • Installments if any
  • 16. Domain and Context • To bring all these into a common understanding, we have to set the context boundaries • Each domain will expose its services so other domains can consume the same – creating a BusinessValue Stream perspective Buyer Dealer Transporter Manufacturing Plant Product is the “car” Load is the “car” Business is the “car” Need or Status Symbol is the “car” • GetBoM() • RoadTest() • NSRTest()… • GetLoad() • PlanLoad() • Track()… • SalesOrder() • Customer_Account _Creation() • Process_Order()… • Do_PaperWork() • Do_PDI() • Take_Delivery()…
  • 17. DDD through Event Storming Event Something that has happened <noun> <verb>, e.g. order submitted Command An action started by a policy in response to an Event Capability Component A component that is part of a business capability within the Domain. This becomes a micro-service. System An External system or service which is outside the Domain Data The information that represents an Event Policy The reaction to an Event: When <event> then <command> Sub Process A sub process which is reused or defined in a separate event storm Question or Assumption A question or assumption that requires follow up
  • 18. An example Event Something that has happened <noun> <verb>, e.g. order submitted A New order at Manufacturing Plant Command An action started by a policy in response to an Event Raw materials are procured Capability Component A component that is part of a business capability within the Domain. This becomes a micro-service. GenerateVIN Label, Sticker System An External system or service which is outside the Domain Notify Government Agencies Notify the Dealer and/or Buyer Data The information that represents an Event Car status is “in Transit” Policy The reaction to an Event: When <event> then <command> Wrap the car to protect from damages Sub Process A sub process which is reused or defined in a separate event storm Get Route approvals/permits etc. Question or Assumption A question or assumption that requires follow up Vehicles are secured during Transport
  • 19. Our flow… Process payment service Preferred Delivery date I want to buy a car Offer pre-delivery inspection Buyer Name, address, contact Send Vehicle and Buyer details Car is shipped Book a car Car received by Dealer Car booked Support preferred delivery date of Buyer Process payment service Licensing details This emerging pattern is defining the Bounded Context for the Capability Component This is our first Deliverable Artifact: It is a map of the Domain's processes. MV/RTO Database Data Policy Command Capability Component (Aggregate) Event External system Legend:
  • 20. After the storm… • A Capability Component now has a Bounded Context. The Bounded Context is revealed when you remove the Events and Policies Leaving behind the Components, Data, and Commands Update Dealer Order Update Service Get Payment Assemble the car Procure Raw material Shipping Payment Order Car Details, Configuration • The Commands will become API resources or Message subscriptions • The Data entities will become the Data Model • The Capability Component is the Logic (Policies) and State (Data Model) necessary to turn Commands into Events This is our Second Deliverable Artifact: Identify the Components and their Bounded Contexts
  • 21. … the end game ! • With the Bounded Context defined, a Capability Component becomes a Micro-Service that we can code and deploy! Update Dealer Order Update Service Get Payment Assemble the car Procure Raw material Shipping Payment Order Car Details, Configuration Now the real work begins. The Event Storm got us to the Bounded Context. So, now we can define our API or Message Contracts, the underlying Logic, and derive the Data Model.
  • 22. Capability Component (Microservices) Business Capability Product/Service Domain Final Example Car Manufacturer Make the car Orders Order Management Payment processing Shipping Load Planner Route Planner Dealers Sales & Delivery Inventory Management Service Service Orders Spares and Accessories Training Domain - L1 Product - L2 Business capability - L3 Capability Component - L4 Business capability – L3 Capability Components – L4 Product - L2 Business capability - L3 Capability Component - L4 Business capability – L3 Capability Components – L4 Products & ServicesTaxonomy Services (e.g. Microservice)
  • 23. Execution Plan Domain Products / Services Microservices aka Capability components Domain 1 Capability 1 Capability 2 Capability 3 Domain 2 Capability 4 Capability 5 Capability 6 etc…. MVP Increment Capability 1 Capability 2 Capability 3 Next Increment Capability 4 Capability 5 Capability 6 etc…. Next Increment Capability 4 Capability 5 Capability 6 DDD 1a – Establish business process & Identify Domains and boundaries 1b – Event storm on domains and define capabilities 1c – Breakdown domain / capabilities into candidate Microservices Decomp 2a – Analyze current applications and decompose them to capabilities 2b – Map capabilities to DDD identifies (Step 1) services Build 3b – Initiate development on MVP (First Increment) 3c – Create execution roadmap for application based on capabilities 2c – Identify MVP scope (Initial set of capabilities) 3d – Next Increment planning 3a – Kick-off with dependent domain owners Iterate
  • 24. Agility at the core of DDD • XP Practices – Collective Code ownership, Refactoring etc. • Short 2-week Sprints within a quarter increment cycle – frequent inspect and adapt opportunities • MVP Concepts helping Business to re-engineer and reap Agility benefits • BusinessValue Streams providing a unified view of the Enterprise – ease in planning, budgeting and execution