Cut & Shave - resources & links

Presentation "Cut & Shave" about Domain Modelling (and language / philosophy) on https://kandddinsky.de/ Berlin 2019,October 18
Slides on https://www.slideshare.net/HermanPeeren/cut-shave

In mister Occam's barbershop we'll have Domain Modelling in our chair to have a fresh cut and shave. We'll cut, redefine, rename and rearrange concepts like bounded contexts, ubiquitous language, context maps, aggregates and their roots, entities, value objects and event sourcing. Our modeling tools have grown, but might need some maintenance service... Language is the vehicle of modeling, it is the tool by which we understand the world. Our words are the building blocks of our models. If our language is imprecise, inconsistent or contradictory, so our models will be imprecise, inconsistent or contradictory. Although some practicioners of Domain Driven Design proudly call themselves "domain linguists", not all DDD-jargon is very well defined. Some concepts come from different paradigms or contain logical errors. Too broad or too narrow definitions introduce unnecessary accidental complexity. This presentation aims to show some mistakes and do proposals to improve the situation. The proof of the pudding is to show how models can be made more useful by that. On our road we'll be helped by some modelers from the past, like Aristotle, Hume, Kant, Wittgenstein or Ryle. And we'll see how a 14th century razor blade can still be sharp.

Creative developer Herman Peeren likes creativity and exploring new ideas. Modelling is a way to better understand the world around us. Computer Science is Philosophy. Languages carry our thoughts, and that holds for both natural languages and computer language.

 


Sapir-Whorf hypothesis
language can have (some) effect on thought
https://en.wikipedia.org/wiki/Linguistic_relativity
Keith Chen's saving behaviour research; see TED-talk 2012 https://www.ted.com/talks/keith_chen_could_your_language_affect_your_ability_to_save_money/

criticism: John McWorter, "The Language Hoax" (2014/2016)
https://www.amazon.com/Language-Hoax-John-H-McWhorter/dp/0190468890
https://www.youtube.com/watch?v=yXBQrz_b-Ng

Steven Pinker
https://en.wikipedia.org/wiki/Steven_Pinker
https://en.wikipedia.org/wiki/The_Language_Instinct
https://en.wikipedia.org/wiki/The_Stuff_of_Thought
TED-talk (2005) https://archive.org/details/StevenPinker_2005G


Aristotle
categorising entities
A great resource on philosophy is Stanford Encyclopedia of Philosophy (SEP)
https://plato.stanford.edu/contents.html
About Aristotle's categories in SEP:
https://plato.stanford.edu/entries/aristotle-categories/
https://plato.stanford.edu/entries/aristotle-metaphysics/
https://plato.stanford.edu/entries/aristotle/

Newton-Leibniz-Kant
time as a separate entity
Some of the articles from the SEP:
https://plato.stanford.edu/entries/newton-stm/
https://plato.stanford.edu/entries/leibniz-physics/
https://plato.stanford.edu/entries/newton-philosophy/
https://plato.stanford.edu/entries/spacetime-theories/

https://plato.stanford.edu/entries/kant-spacetime/
https://plato.stanford.edu/entries/kant-transcendental-idealism/
https://plato.stanford.edu/entries/kant-science/
https://plato.stanford.edu/entries/kant-leibniz/

Immanuel Kant Song: https://www.youtube.com/watch?v=DC8ioZkb-Sc


Wittgenstein
about the limits of language
Tractatus logico-philosophicus, 1918
Early Wittgenstein (Tractatus): the picture theory of language
https://en.wikipedia.org/wiki/Picture_theory_of_language
https://plato.stanford.edu/entries/wittgenstein/
https://plato.stanford.edu/entries/meaning/

Gilbert Ryle
category-mistake
The Concept of Mind, 1949 (one of the best books I've ever read!)
against Carthesian dualism (body and mind as two separate entities)
You can find the entire work as a free pdf on internet.
https://en.wikipedia.org/wiki/The_Concept_of_Mind
https://plato.stanford.edu/entries/ryle/


Occam
Razor: not more entities than necessary
https://en.wikipedia.org/wiki/Occam%27s_razor
https://plato.stanford.edu/entries/simplicity/

 

documentation of the model
(in non-technical language, to be shared bertween customer / people working in the domain and software developers)

 

Book "Living Documentation" by Cyrille Martraire, 2019
http://www.informit.com/store/living-documentation-continuous-knowledge-sharing-by-9780134689326
Q&A:
https://www.infoq.com/articles/book-review-living-documentation/
Presentations (2016):
https://www.youtube.com/watch?v=sLmEBpDdnB0
https://www.youtube.com/watch?v=Tw-wcps7WqU
https://vimeo.com/131660202

 

Make your tests tell the story of your domain - Mads Opheim & Anne Landro
Was a presentation on KanDDDinsky 2019
See https://vimeo.com/324159725 for their presentation on 2019 Booster conf.

 

Miscellaneous
Alvaro Videla: Programming Languages are not Languages (blogpost Sept. 2018)
https://medium.com/@old_sound/programming-languages-are-not-languages-c6f161a78c44

Christopher Alexander: A city is not a Tree (essay, 1965)
Do not simply divide your domain into mutually exclusive parts (tree-structures)
https://en.wikipedia.org/wiki/A_City_is_Not_a_Tree
https://www.academia.edu/16545395/Christopher_Alexander_A_city_is_not_a_tree

Gödel's Incompleteness Theorems
https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems
https://infinityplusonemath.wordpress.com/2017/08/04/godels-incompleteness-theorems/

How to survive the Dutch weather (many different words for rain in Dutch)
https://www.youtube.com/watch?v=Ys-KP8oPdvg