Mathias
Verraes
Independent Consultant
Value Object Comm.V
Student of Systems
Meddler of Models
Labourer of Legacy
verraes.net
Slide 3
Slide 3 text
Is modelling a
learnable skill?
Slide 4
Slide 4 text
The pain of a
wrong abstraction
Slide 5
Slide 5 text
Upfront Model? 1
1 Scott W. Ambler, "Big Modeling Up Front (BMUF) Anti-Pattern", http://www.agilemodeling.com/
essays/bmuf.htm
Slide 6
Slide 6 text
You are always making
mental models
Slide 7
Slide 7 text
Analysis model 2
vs
Domain model
2 Martin Fowler, 1996, "Analysis Patterns: Reusable Object Models"
Slide 8
Slide 8 text
Heuristic
Domain
Language
Slide 9
Slide 9 text
Linguistic
Relativism
Sapir-Whorf Hypothesis 3,4
4 Paul Graham, "Beating the Averages", http://www.paulgraham.com/avg.html
3 Steven Pinker, 1994, "The Language Instinct"
Verb-based:
f = chain(
breakTextIntoWords() : [String]
groupWordsIntoLines() : [[String]]
joinWordsInBrokenLines() : [String]
joinBrokenLines() : String
)
f("A long paragraph") -> "A long\nparagraph"
Slide 16
Slide 16 text
Noun-based: 7
f = chain(
words() : [String]
brokenLines() : [[String]]
wordJoinedLines() : [String]
joinedLines() : String
)
f("A long paragraph") -> "A long\nparagraph"
7 Michael Feathers, "A Type Driven Approach to Functional Design", InfoQ
Slide 17
Slide 17 text
Heuristic
Find the Sentences
Find the Idioms
Slide 18
Slide 18 text
Heuristic
Find the Scenarios
Slide 19
Slide 19 text
Given I have a product
When I look at the price of a product ...
or
Given I have a product
When I lookup the product in the pricing table ...
?
Slide 20
Slide 20 text
Remember, you are always
making mental models
Slide 21
Slide 21 text
As a customer I want to ...
Given there is a product
When I look at the price of a product ...
As a shop owner I want to ...
Given I have a product
When I lookup the product in the pricing table ...
Slide 22
Slide 22 text
Heuristic
Actors and Roles
Slide 23
Slide 23 text
Heuristic
The Worker and
the Beneficiary
Slide 24
Slide 24 text
When I look at the price of a product ...
When I lookup the product in the pricing table ...
Slide 25
Slide 25 text
Heuristic
Segregating
Reading and Writing
Slide 26
Slide 26 text
Heuristic
Being
Behaving
Becoming
Three B's 5
5 Gerald M. Weinberg, 1988, "Rethinking Systems Analysis and Design"
Slide 27
Slide 27 text
The customer sometimes has an email.
Missing concept?
Slide 28
Slide 28 text
Heuristic
Collaborative Construction6
Execution
Tracking
aka Planning/Execution/Analysis
6 Cyrille Martraire, "Collaborative Construction by Alberto Brandolini", http://
cyrille.martraire.com/2012/09/collaborative-construction-by-alberto-brandolini/