@hofstef @wps_de
Fach-
sprache
Domain Expert Software Expert
Slide 4
Slide 4 text
@hofstef @wps_de
Thanks to DDD Europe for this
awesome picture of Henning!
Slide 5
Slide 5 text
Why Domain Storytelling?
Today:
• Understanding a domain
• Reasoning about sub-domains and bounded contexts
There is more:
• Deriving domain model
• Deriving requirements
• Designing new processes
• Facilitate change
• …
Slide 6
Slide 6 text
@hofstef @wps_de
Schedule
1. Understanding a domain
demo – explanation – exercise – break
2. Domain-Driven Design & finding boundaries
demo – explanation – exercise – break
3. Practice
4. Your domain or a real world example
Slide 7
Slide 7 text
@hofstef @wps_de
Demo:
Leasing a Car
Slide 8
Slide 8 text
@hofstef @wps_de
Slide 9
Slide 9 text
@hofstef @wps_de
@hofstef @hschwentner
Pictographic Language
Slide 10
Slide 10 text
@hofstef @wps_de
actor work object activity annotation
Slide 11
Slide 11 text
@hofstef @wps_de
Risk
manager
contract votes
Slide 12
Slide 12 text
@hofstef @wps_de
person people system
Slide 13
Slide 13 text
@hofstef @wps_de
…sends the contract to...
...passes on the contract to...
sends
contract
passes on to
to
contract
Slide 14
Slide 14 text
@hofstef @wps_de
The sales person passes on the contract to the risk manager.
passes on
contract
Risk manager
Sales person
to
Slide 15
Slide 15 text
@hofstef @wps_de
1
1
1
Slide 16
Slide 16 text
@hofstef @wps_de
tells whish for
Sales person
Customer
1
monthly
installment
contract
car
to
in
2
Slide 17
Slide 17 text
@hofstef @wps_de
tells whish for
Sales person
Customer
1
monthly
installment
contract
car
to
in
2
contract
3
Slide 18
Slide 18 text
@hofstef @wps_de
CONCRETE STORIES VS. ABSTRACT PROCESSES
Slide 19
Slide 19 text
@hofstef @wps_de
3 good examples
are better than
1 bad abstraction
Slide 20
Slide 20 text
@hofstef @wps_de
Draw here
Leave some empty space there →
Annotations,
variations, and
purpose
Preconditions,
assumptions, and
triggers
Slide 21
Slide 21 text
@hofstef @wps_de
Workshops
Slide 22
Slide 22 text
@hofstef @wps_de
Slide 23
Slide 23 text
@hofstef @wps_de
Slide 24
Slide 24 text
@hofstef @wps_de
Slide 25
Slide 25 text
@hofstef @wps_de
Slide 26
Slide 26 text
@hofstef @wps_de
Whiteboard Kit Picture: W. Kinkeldei @wkinkeldei
Slide 27
Slide 27 text
@hofstef @wps_de
Slide 28
Slide 28 text
@hofstef @wps_de
PowerPoint, yEd, Viso, gliphy…
asks for
Reservation
(movie, time,
seats)
cashier
customer
1
Screen plan
finds available
seats in
CineSoft
2
seats
recommends
3
@hofstef @wps_de
eBook and free sample available at:
https://leanpub.com/domainstorytelling
Get a discount using the link:
http://leanpub.com/domainstorytelling/c/saconf
Slide 32
Slide 32 text
@hofstef @wps_de
If you speak German:
Take a free bruchure!
And grab a sticker:
@hofstef @wps_de
A Quick Introduction to
Domain-Driven Design
Slide 35
Slide 35 text
@hofstef @wps_de
Slide 36
Slide 36 text
@hofstef @wps_de
Slide 37
Slide 37 text
@hofstef @wps_de
Domain
Knowledge
Slide 38
Slide 38 text
@hofstef @wps_de
Blue Book
Red Book
2015 ’16 ’17
’14
’13
’12
2010 ’11
’09
’08
’07
’06
2005
’04
’03
’02
2000 01
’99
’98
Slide 39
Slide 39 text
Strategic Design
Ubiquitous Language
Tactical Design
Eric Evans, 2003
Picture: Martin Schimak @martinschimak
Paul Rayner, DDD Explore 2018
+ Ubiquitous Language as an
overarching principle
DDD 2003 vs. DDD 2018
Slide 40
Slide 40 text
@hofstef @wps_de
Demo:
Leasing a Car
Slide 41
Slide 41 text
@hofstef @wps_de
Slide 42
Slide 42 text
One Domain – Multiple Models
Foto: Maiconfz/pixabay/CCO
Foto: Globus from book shelf/wikipedia/
CC-BY-3.0
Foto:Clker-Free-Vector-Images/pixabay/ CCO
Foto: Wasserseemüller-Globus/Wikipedia/CC-PD-Mark
Slide 43
Slide 43 text
@hofstef @wps_de
Bounded Context:
A coherent model with an
unambiguous language.
Sub-domain vs. Bounded Context
• Ideally, there is a 1:1 relation between sub-domain and bounded
context (at least for your core sub-domains).
• In real life, there is a trade-off between
• Business process/domain
• Organizational structure
• Business value
• Technical constraints
• User experience
• …
• Legacy systems are often unbounded
Foto: Dreibund Medaille/Wikipedia/CC BY-SA 3.0
Slide 46
Slide 46 text
@hofstef @wps_de
Heuristic:
Look for activities that - from an
actor’s perspective - belong
together.
Slide 47
Slide 47 text
@hofstef @wps_de
Activities that belong together:
Slide 48
Slide 48 text
@hofstef @wps_de
Indicator: only one actor involved
xyz context
Slide 49
Slide 49 text
@hofstef @wps_de
Indicator: one-way information flow
abc context xyz context
Slide 50
Slide 50 text
@hofstef @wps_de
Indicator: different triggers
abc context xyz context