View
686
Download
2
Embed Size (px)
DESCRIPTION
My presentation at London's DDDeXchange 2013 where I talk about a different approach to enterprise modeling.
Citation preview
Rethinking EnterpriseSoftware
@ziobrandoThursday, September 19, 13
What do I do?
Who am I?
Thursday, September 19, 13
What do I do?
I do other things instead
Who am I?
Thursday, September 19, 13
Enterprise software
Thursday, September 19, 13
Ignorance is the single greatest impediment to
throughput.
Dan Northhttp://dannorth.net/2010/08/30/introducing-deliberate-discovery/
Thursday, September 19, 13
Learning is the constraint
Dan Northhttp://dannorth.net/2010/08/30/introducing-deliberate-discovery/
Thursday, September 19, 13
...maybe not the only one...
Thursday, September 19, 13
When doing DDD...
Thursday, September 19, 13
Software development is a learning process
Working code is a side effect
Thursday, September 19, 13
Learning
Thursday, September 19, 13
MemoriesThursday, September 19, 13
Thursday, September 19, 13
Learning
Thursday, September 19, 13
LearningSchool
Thursday, September 19, 13
LearningSchool
Bo
rin
gThursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Thursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Less
on
Thursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Less
on
Exp
erim
ent
Thursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Less
on
Exp
erim
ent
Mistakes
Thursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Less
on
Exp
erim
ent
MistakesFun
Thursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Less
on
Exp
erim
ent
MistakesFun
Marks
Thursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Less
on
Exp
erim
ent
MistakesFun
Marks
Exams
Thursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Less
on
Exp
erim
ent
MistakesFun
Marks
Exams
Stre
ss
Thursday, September 19, 13
LearningSchool
Bo
rin
g
Study
Less
on
Exp
erim
ent
MistakesFun
Marks
Exams
Stre
ss
LifeThursday, September 19, 13
Learning is so important, and yet we don’t know
much about it
Thursday, September 19, 13
Learning is non linear
Thursday, September 19, 13
Learning is non linear
(doesn’t fit into spreadsheets, burndown and Gantt charts)
Thursday, September 19, 13
Stress
Psycological reaction
To an adverse situation
Situation is perceived as inevitable
Thursday, September 19, 13
Braincan’t learn under
stress
Thursday, September 19, 13
Relax
Thursday, September 19, 13
Conformity kills creativity
Thursday, September 19, 13
Pressure hurts problem solving
Thursday, September 19, 13
Can’t actually predict when the
learning will happen
Thursday, September 19, 13
Guaranteed?
Thursday, September 19, 13
Thursday, September 19, 13
Thursday, September 19, 13
Thursday, September 19, 13
Coding against an ecosystem
Thursday, September 19, 13
Coding against an ecosystem
How do we measure effect on an ecosystem?
Thursday, September 19, 13
Thursday, September 19, 13
Value Stream Mapping
http://agile.dzone.com/books/continuous-delivery-freeThursday, September 19, 13
A quickernotation..
Thursday, September 19, 13
Coding 20cl, learning 20cl, deciding 20cl, waiting...
Thursday, September 19, 13
Mutual waiting
Thursday, September 19, 13
Mutual waiting
Apparently, a process and organization issue...
Thursday, September 19, 13
Learning is not the only constraint
Thursday, September 19, 13
Deciding?
Thursday, September 19, 13
We’re damn bad at it
Thursday, September 19, 13
How many DDD practitioners are
needed to name a class?
Thursday, September 19, 13
Thursday, September 19, 13
We should really find a name for our
daughter...
Thursday, September 19, 13
We should really find a name for our
daughter...
Isn’t a GUID sufficient?
Thursday, September 19, 13
We should really find a name for our
daughter...
Isn’t a GUID sufficient?
No, a proper name...
Thursday, September 19, 13
We should really find a name for our
daughter...
Isn’t a GUID sufficient?
No, a proper name...
What about Foo now, and refactor later?
Thursday, September 19, 13
Thursday, September 19, 13
Should I marry her?
YesNo
Thursday, September 19, 13
Thursday, September 19, 13
We really should be getting married soon...
Thursday, September 19, 13
We really should be getting married soon...
Can we talk about this another time, dear? I’m facing a zerg assault right
now...
Thursday, September 19, 13
The strategy?
Thursday, September 19, 13
Deadline!
Thursday, September 19, 13
Wedding cerimony is a Ponzi schema
designed to stop the man procrastinating
Thursday, September 19, 13
...but can we stop afterthoughts?
Thursday, September 19, 13
Thursday, September 19, 13
I really should have married Kate
instead...
Thursday, September 19, 13
I really should have married Kate
instead...
...and used MongoDB in that
project
Thursday, September 19, 13
Problem
Thursday, September 19, 13
Thursday, September 19, 13
Ubiquitous LanguageReloaded
Thursday, September 19, 13
Model Affinity
Thursday, September 19, 13
Domain Events work better
Thursday, September 19, 13
Thursday, September 19, 13
Thursday, September 19, 13
here the user decidesCommand
User
issues
influences
External information
influencesRead Model
Thursday, September 19, 13
Quali informazioni
Thursday, September 19, 13
Thursday, September 19, 13
Fine-Grained Delegation
Management 30.com
Thursday, September 19, 13
Steal and tweak
Thursday, September 19, 13
Process fine tuning
Thursday, September 19, 13
Growth engine
Thursday, September 19, 13
3 model archetypes
-Collaborative construction
-Execution
-Tracking & Control
Thursday, September 19, 13
Engagement
Thursday, September 19, 13
meaningful conversation with the domain expert
Thursday, September 19, 13
Thursday, September 19, 13
“...Eric?”
Thursday, September 19, 13
Thursday, September 19, 13
...even better!Thursday, September 19, 13
Hack!
Thursday, September 19, 13
Hack!
Warning: DDD doesn’t work on the Death StarThursday, September 19, 13
Gamification!
Thursday, September 19, 13
Constraints
Thursday, September 19, 13
Constraints
Rules
Thursday, September 19, 13
Constraints
Rules
TimeboxingThursday, September 19, 13
Let’s collect key events for our domain
Let’s place events on a timeline
Look for pre- and post-
An event is something meaningful that happened in our domain.We can express it as a verb in the past. Es. “Payment Received”We can model it with an orange sticker like...
Ask the domain expert if necessary
Thursday, September 19, 13
Thursday, September 19, 13
Space
Thursday, September 19, 13
Yes, I mean that much space...
Thursday, September 19, 13
Can’t see big problems in a little
space
Thursday, September 19, 13
Context is constraining the solution space
Thursday, September 19, 13
Take control of the constraints
Thursday, September 19, 13
Some great ideas here...
BDD
Specification by example
Concrete scenarios
Thursday, September 19, 13
Solution Space
Thursday, September 19, 13
Short timeboxesthrowaway code
...more ;-)
coderetreat.orgThursday, September 19, 13
coderetreat.orgThursday, September 19, 13
coderetreat.orgThursday, September 19, 13
coderetreat.orgThursday, September 19, 13
coderetreat.orgThursday, September 19, 13
coderetreat.orgThursday, September 19, 13
coderetreat.orgThursday, September 19, 13
coderetreat.orgThursday, September 19, 13
coderetreat.orgThursday, September 19, 13
Can we tweak it?
Thursday, September 19, 13
Conflict resolution
Thursday, September 19, 13
The only thing they agree on is fooling us!
Thursday, September 19, 13
They’re both right!
Context A
Context B
Thursday, September 19, 13
whew!
Thursday, September 19, 13
Tool Affinity
Thursday, September 19, 13
Thursday, September 19, 13
Simple notation
Thursday, September 19, 13
Thursday, September 19, 13
Thursday, September 19, 13
How long is this cycle?
Thursday, September 19, 13
What about ...minutes?
Thursday, September 19, 13
Me and UML...Thursday, September 19, 13
...Waiting
Thursday, September 19, 13
We’re changing the ecosystem...
Thursday, September 19, 13
But most of all...
Thursday, September 19, 13
Experience!
Thursday, September 19, 13
Experience!
...as an imperative verbThursday, September 19, 13
@ziobrando
Thursday, September 19, 13