Why do all my ddd apps look the same - Vienna 2014
-
Upload
alberto-brandolini -
Category
Software
-
view
995 -
download
0
Transcript of Why do all my ddd apps look the same - Vienna 2014
![Page 1: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/1.jpg)
Why do all my DDD apps look the same?
@ziobrando
![Page 2: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/2.jpg)
About meIn the IT field since ZX Spectrum Generally in large scale projects (I might be biased) Freelance consultant: NotOnlyCode Trainer (Freelance & Skills MaDer) Technical Writer Blogger: h=p://ziobrando.blogspot.com TwiDer: @ziobrando
My e-‐mail: [email protected]
![Page 3: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/3.jpg)
What I do
9%
11%
12%
31%
38%
Agile processesDomain-‐Driven DesignEfficiency & ManagementArchitectureFunny clown
![Page 4: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/4.jpg)
![Page 5: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/5.jpg)
Some things work pre=y well
Focusing on Core Domain
![Page 6: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/6.jpg)
![Page 7: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/7.jpg)
Core Domain
![Page 8: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/8.jpg)
Core Domain
Nothing less than your best here.
![Page 9: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/9.jpg)
Some things work pre=y well
Focusing on Core Domain Software Development as a Learning Process
![Page 10: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/10.jpg)
Ignorance is the single greatest impediment
to throughput
Dan North
![Page 11: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/11.jpg)
100 1 2 3 4 5 6 7 8 9
100%
0
10%
20%
30%
40%
50%
60%
70%
80%
90%
Time
Igno
ranc
e
Ignorance
This is when we make critical decisions
![Page 12: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/12.jpg)
100 1 2 3 4 5 6 7 8 9
100%
0
10%
20%
30%
40%
50%
60%
70%
80%
90%
Time
Igno
ranc
e
IgnoranceBreakthrough
Can we anticipate this moment?
![Page 13: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/13.jpg)
Is there any impediments to breakthroughs in the
way we develop soGware?
![Page 14: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/14.jpg)
Hmm... let me think
![Page 15: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/15.jpg)
Learning impediments
Time pressure --> estimations / expectations
Domain Experts availability / First Person experience
Learning Tools --> Discussion space, whiteboards, etc
Safety --> consequences of mistakes / Test env., etc.
Organization & Logistics --> noise, interruptions
Architecture
Food
![Page 16: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/16.jpg)
100 1 2 3 4 5 6 7 8 9
100%
0
10%
20%
30%
40%
50%
60%
70%
80%
90%
Time
Igno
ranc
e
IgnoranceBreakthrough
Ignorance
![Page 17: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/17.jpg)
Some things work pre=y well
Focusing on Core Domain Software Development as a Learning Process Explicit Bounded Context management
![Page 18: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/18.jpg)
Establish a defensive perimeter
![Page 19: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/19.jpg)
...and a fence
![Page 20: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/20.jpg)
Know your bordersOur Bounded Context
Friendly BC
Pool
Promo
Campaign
...ACL
ACL
External Service Provider
...
ACL
APIData Exchange
Danger 1
Danger 2
obscure unnecessary complicated concept
Promozione
FilterCondition
Reward
Legacy Mess
![Page 21: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/21.jpg)
Some things work pre=y well
Focusing on Core Domain Developing software as a learning process Explicit bounded context management Modeling the domain starting from Events
![Page 22: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/22.jpg)
flow
EventEvent
Event
Event
Event
Domain Experts like Events
![Page 23: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/23.jpg)
flow
EventEvent
Event
Event
Event
Domain Experts like Events
Command
Command
![Page 24: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/24.jpg)
flow
EventEvent
Event
Event
Event
Domain Experts like Events
Command
Command
Command Event
![Page 25: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/25.jpg)
![Page 26: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/26.jpg)
But...
![Page 27: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/27.jpg)
![Page 28: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/28.jpg)
![Page 29: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/29.jpg)
Why?
![Page 30: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/30.jpg)
2 similar problems
![Page 31: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/31.jpg)
STOP
Validation
![Page 32: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/32.jpg)
We should prevent the user from entering incorrect data.
![Page 33: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/33.jpg)
The Notorious Pub
hypothesis
![Page 34: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/34.jpg)
![Page 35: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/35.jpg)
Why doesn’t the police shut down this place?
Mother:
![Page 36: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/36.jpg)
...
![Page 37: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/37.jpg)
There’s a universe out there
![Page 38: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/38.jpg)
Same data different behaviour
![Page 39: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/39.jpg)
Before AGer
missing or inconsistent informaSon ModificaSons are possible DraG-‐like semanScs
all mandatory informaSon present No changes allowed Printed & Signed paper semanScs
![Page 40: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/40.jpg)
DraG Contract
Deal
Source Executable
negoSaSon
finalize
sign off
compile
CartOrderPlan
![Page 41: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/41.jpg)
CollaboraSve ConstrucSonMissingRoof
Warning
Comments & ConversaOon
Incomplete, growing artifact
![Page 42: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/42.jpg)
...just like building soGware
![Page 43: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/43.jpg)
The Deja-vu hypothesis
![Page 44: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/44.jpg)
![Page 45: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/45.jpg)
...not always
![Page 46: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/46.jpg)
What if the domain expert is...
badly wrong
![Page 47: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/47.jpg)
Boss:
Users must follow a prescripSve,
mandatory process
![Page 48: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/48.jpg)
User:
The process as-‐is cannot be applied in
pracSce
![Page 49: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/49.jpg)
Boss:
Users must follow a prescripSve,
mandatory process
![Page 50: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/50.jpg)
![Page 51: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/51.jpg)
Problem is...
![Page 52: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/52.jpg)
![Page 53: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/53.jpg)
© Alberto Brandolini -‐ 2008-‐2010
I’ve tried all this sh*t, man...
...and your idea doesn’t work...
![Page 54: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/54.jpg)
Some problems have been solved well
in soGware development
![Page 55: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/55.jpg)
© Alberto Brandolini -‐ 2008-‐2010
Don’t push it too far...
but we’ve learnt something
![Page 56: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/56.jpg)
How we thought we solved the
problem
![Page 57: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/57.jpg)
![Page 58: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/58.jpg)
R.I.P.
![Page 59: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/59.jpg)
![Page 60: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/60.jpg)
Maybe a be=er example...
Why don’t we just teach them to use github?
![Page 61: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/61.jpg)
Cognitive load
![Page 62: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/62.jpg)
© Alberto Brandolini -‐ 2008-‐2010
They’re users, not hackers
too much cogniSve load
![Page 63: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/63.jpg)
Integration strategies
![Page 64: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/64.jpg)
Core Domain Strategy:
Simple enough to be included (in the domain) Good architectural integration UX Demanding (..?) ...increasing amount of generic requirements
Collaboration
![Page 65: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/65.jpg)
Where’s the instrucSon manual?
![Page 66: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/66.jpg)
UX Demanding
...pervasive changes in presentation layer user implicit expectations are high if it’s not beautiful & simple it won’t work
...remember we’re changing people’s behaviour
![Page 67: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/67.jpg)
Conformist
(hopefully) better UI Lock-in (surrendering to zombies)
Our stuff
Big Collaboration Software
![Page 68: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/68.jpg)
Zombies can be friendly aGer all...
![Page 69: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/69.jpg)
Welcome����������� ������������������ in����������� ������������������ the����������� ������������������ world����������� ������������������ of����������� ������������������ plugin����������� ������������������ &����������� ������������������ customization
![Page 70: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/70.jpg)
Separate Ways
lightweight links user cognitive load increased
Collaboration app
Our B.C.
![Page 71: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/71.jpg)
Shared Kernel
Potentially reusable possibly overkill for generic subdomain unpredictable social consequences (the wizard)
Core domain
Collaboration
![Page 72: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/72.jpg)
Domain-‐Specific commands
Domain-‐agnosSc primiSves
![Page 73: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/73.jpg)
© Alberto Brandolini -‐ 2008-‐2010
Yeah ...the problem’s sSll
open
...what about a White Russian?
![Page 74: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/74.jpg)
From the UX expert
Need Help
![Page 75: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/75.jpg)
Results -‐ Confidence -‐ Safety
Build Trust
![Page 76: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/76.jpg)
(Having ideas != being right)
Experiment
![Page 77: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/77.jpg)
be prepared to surprises (we are changing an ecosystem)
Measure
![Page 78: Why do all my ddd apps look the same - Vienna 2014](https://reader034.fdocuments.net/reader034/viewer/2022042701/55a522ee1a28abaf348b486c/html5/thumbnails/78.jpg)
We’re both learning now...