Transcript
Page 1: Why Domain-Driven Design Matters

@MATHIASVERRAES

DESIGNMATTERS

DOMAIN-DRIVENWHY

Page 2: Why Domain-Driven Design Matters

Mathias VerraesStudent of Systems Meddler of Models Labourer of Legacy

verraes.net mathiasverraes

Page 3: Why Domain-Driven Design Matters

SET OF DESIGN PATTERNS?

Page 4: Why Domain-Driven Design Matters

SET OF DESIGN PATTERNS? METHODOLOGY?

Page 5: Why Domain-Driven Design Matters

SET OF DESIGN PATTERNS? METHODOLOGY?

TOTAL APPROACH TO DEALING WITH COMPLEXITY?

Page 6: Why Domain-Driven Design Matters

SET OF DESIGN PATTERNS? METHODOLOGY?

TOTAL APPROACH TO DEALING WITH COMPLEXITY?

PHILOSOPHY?

Page 7: Why Domain-Driven Design Matters

INFLUENCEORGANISATION!

⬇!

SOFTWARE

Page 8: Why Domain-Driven Design Matters

INFLUENCEORGANISATION!

⬇SOFTWARE

ORGANISATION

!

Page 9: Why Domain-Driven Design Matters

INFLUENCE- ORGANISATION -

- SOFTWARE - HARDWARE - - RESPONSIVENESS TO BUGS -

- CONTRACTS - THIRD PARTIES - - DEVELOPER HAPPINESS - TOOLS -

- TESTS - SKILLS - COMMUNICATION -

Page 10: Why Domain-Driven Design Matters

“IT IS AN AXIOM THAT INFLUENCE IS BOTH A

CAUSE AND AN EFFECT. NOTHING IS EVER

INFLUENCED IN JUST ONE DIRECTION.”

CHARLEY PETERS

Page 11: Why Domain-Driven Design Matters

“THE CAUSATION FALLACY:

!

EVERY EFFECT HAS A CAUSE AND WE CAN

TELL WHICH IS WHICH.”

GERALD M. WEINBERG

Page 12: Why Domain-Driven Design Matters

SYSTEMSGENERALTHINKING

Page 13: Why Domain-Driven Design Matters

“EVERYTHING IS A SYSTEM.

EVERYTHING IS PART OF A SYSTEM.”

GERALD M. WEINBERG

Page 14: Why Domain-Driven Design Matters

SYSTEMS!

Thinking about systems as dynamic, evolving patterns of

interaction and feedback.

Page 15: Why Domain-Driven Design Matters

“JUST CALLING IT ‘FEEDBACK’ DOESN'T MEAN THAT IS HAD

ACTUALLY FED BACK. IT HASN'T FED BACK UNTIL THE SYSTEM CHANGES COURSE.”

JOHN GALL

Page 16: Why Domain-Driven Design Matters

“IGNORING FEEDBACK MERELY MEANS THAT THE SYSTEM WILL EVENTUALLY

EXPERIENCE A MASSIVE UNPLEASANT SURPRISE (RATHER THAN A SMALL

UNPLEASANT SURPRISE).”

JOHN GALL

Page 17: Why Domain-Driven Design Matters

“IT MAY LOOK LIKE A CRISIS, BUT IT'S ONLY

THE END OF AN ILLUSION.”

GERALD M. WEINBERG

Page 18: Why Domain-Driven Design Matters

“SYSTEMS TEND TO OPPOSE THEIR

OWN PROPER FUNCTION.”

HENRI LOUIS LE CHATELIER

Page 19: Why Domain-Driven Design Matters

“SYSTEMS INHERENTLY

RESIST CHANGE.”

SCOTT PECK

Page 20: Why Domain-Driven Design Matters

“THE MORE ADAPTED AN ORGANISM IS TO

PRESENT CONDITIONS, THE LESS ADAPTABLE IT

TENDS TO BE TO UNKNOWN FUTURE

CONDITIONS.”SIR RONALD FISHER

Page 21: Why Domain-Driven Design Matters

“IT'S CALLED ‘SOFTWARE’ FOR A

REASON. IT'S SUPPOSED TO BE

EASY TO CHANGE.”UNCLE BOB?

Page 22: Why Domain-Driven Design Matters

DESIGNSOFTWAREHAS A SLOWFEEDBACK CYCLE

Page 23: Why Domain-Driven Design Matters

FAST ITERATIONLEAN STARTUP AGILE TDD BDD KANBAN

Page 24: Why Domain-Driven Design Matters

FAST ITERATIONLEAN STARTUP VALIDATED LEARNING

Page 25: Why Domain-Driven Design Matters

FAST ITERATIONAGILE COLLABORATE

Page 26: Why Domain-Driven Design Matters

FAST ITERATIONTDD DESIGN SMALL

Page 27: Why Domain-Driven Design Matters

FAST ITERATIONBDD COMMUNICATE

Page 28: Why Domain-Driven Design Matters

FAST ITERATIONKANBAN IMPROVE CONTINUOUSLY

Page 29: Why Domain-Driven Design Matters

(broad generalisations)

Page 30: Why Domain-Driven Design Matters

DESIGNGOES DEEPERDOMAIN-DRIVEN

Page 31: Why Domain-Driven Design Matters

DOMAINPROBLEM SPACE

DOMAIN MODELSOLUTION SPACE

Page 32: Why Domain-Driven Design Matters

DOMAIN&

DOMAIN MODELIN SYNC

KEEP

Page 33: Why Domain-Driven Design Matters

UBIQUITOUSLANGUAGE

Page 34: Why Domain-Driven Design Matters

DESIGNTACKLES

DOMAIN-DRIVEN

COMPLEXITY

Page 35: Why Domain-Driven Design Matters

ACCIDENTAL COMPLEXITY ESSENTIAL

COMPLEXITY

Page 36: Why Domain-Driven Design Matters

DESIGN PATTERNS

Page 37: Why Domain-Driven Design Matters

“DESIGN PATTERNS ARE A GATEWAY DRUG

TO DOMAIN-DRIVEN DESIGN”

ROSS TUCK

Page 38: Why Domain-Driven Design Matters

SUPPLE DESIGN

Page 39: Why Domain-Driven Design Matters

DECLARATIVE DESIGN

Page 40: Why Domain-Driven Design Matters

REFACTORING

Page 41: Why Domain-Driven Design Matters

BOUNDED CONTEXTS

Page 42: Why Domain-Driven Design Matters

DISTILLATION

Page 43: Why Domain-Driven Design Matters

LARGE SCALE STRUCTURE

Page 44: Why Domain-Driven Design Matters

MODELLING WHIRLPOOL

Page 45: Why Domain-Driven Design Matters

MODEL STORMING

Page 46: Why Domain-Driven Design Matters

DESIGNMATTER ?

DOMAIN-DRIVENSo WHY DOES

Page 47: Why Domain-Driven Design Matters

INFLUENCE FEEDBACK PATTERNS SYSTEMS

COMPLEXITY ITERATIONS

WHY CAN’T IT BE SIMPLE?

Page 48: Why Domain-Driven Design Matters

“A LARGE SYSTEM, PRODUCED BY EXPANDING

THE DIMENSIONS OF A SMALL SYSTEM,

DOES NOT BEHAVE LIKE THE SMALLER

SYSTEM”JOHN GALL

Page 49: Why Domain-Driven Design Matters

verraes.netmathiasverraes

Page 50: Why Domain-Driven Design Matters

verraes.netmathiasverraes