Architecture Decision Records
Arnaud Bos
Toulouse DevFest 2018
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
Practical steps
Theoretical
knowledge
Most useful
when studying
Most useful
when working
Slide 4
Slide 4 text
Practical steps
Theoretical
knowledge
Most useful
when studying
Most useful
when working
TUTORIAL
LEARNING-ORIENTED
Slide 5
Slide 5 text
Practical steps
Theoretical
knowledge
Most useful
when studying
Most useful
when working
HOW-TO
PROBLEM-ORIENTED
TUTORIAL
LEARNING-ORIENTED
Slide 6
Slide 6 text
EXPLANATION
UNDERSTANDING-ORIENTED
HOW-TO
PROBLEM-ORIENTED
TUTORIAL
LEARNING-ORIENTED
Practical steps
Theoretical
knowledge
Most useful
when studying
Most useful
when working
Slide 7
Slide 7 text
REFERENCE
INFORMATION-ORIENTED
EXPLANATION
UNDERSTANDING-ORIENTED
HOW-TO
PROBLEM-ORIENTED
TUTORIAL
LEARNING-ORIENTED
Practical steps
Theoretical
knowledge
Most useful
when studying
Most useful
when working
Slide 8
Slide 8 text
Most useful
when studying
Theoretical
knowledge
Most useful
when working
Slide 9
Slide 9 text
WHY
Most useful
when studying
Theoretical
knowledge
Most useful
when working
Slide 10
Slide 10 text
HOW
WHY
Most useful
when studying
Theoretical
knowledge
Most useful
when working
Slide 11
Slide 11 text
Lightweight
Architecture Decision Records
HOW
WHY
Most useful
when studying
Theoretical
knowledge
Most useful
when working
Slide 12
Slide 12 text
Context: Why
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
Context: why?
● New features
● Change existing features
● Refactor
Slide 15
Slide 15 text
BREAKING CHANGE
Slide 16
Slide 16 text
BREAKING CHANGE
STATUS QUO
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
Context: recap
● Know thy history: keep track of events
● Take better decisions with greater insight
● Better ROI on documentation
Slide 19
Slide 19 text
Decision: What/How
Slide 20
Slide 20 text
Title ADR N°1: Use ADR
Date
Context
Decision
Status
Consequences
Slide 21
Slide 21 text
Title ADR N°1: Use ADR
Date (local-date)
Context
Decision
Status
Consequences
Slide 22
Slide 22 text
Title ADR N°1: Use ADR
Date (local-date)
Context Why? What’s the problem?
Decision
Status
Consequences
Slide 23
Slide 23 text
Title ADR N°1: Use ADR
Date (local-date)
Context Why? What’s the problem?
Decision How? We will ...
Status
Consequences
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
Title ADR N°1: Use ADR
Date (local-date)
Context Why? What’s the problem?
Decision How? We will ...
Status Proposed/Accepted/Superseded
Consequences
Slide 29
Slide 29 text
Status: Proposed
Slide 30
Slide 30 text
Status: Accepted
Slide 31
Slide 31 text
Status: Superseded
Slide 32
Slide 32 text
Title ADR N°1: Use ADR
Date (local-date)
Context Why? What’s the problem?
Decision How? We will ...
Status Proposed/Accepted/Superseded
Consequences + / -
Slide 33
Slide 33 text
Consequences: Good/Bad/Ugly
Slide 34
Slide 34 text
Consequences
Slide 35
Slide 35 text
● Rigor VS Flexibility: Find the right balance
Consequences
Slide 36
Slide 36 text
● Rigor VS Flexibility: Find the right balance
● Have someone who likes to write (a little), it helps
Consequences
Slide 37
Slide 37 text
● Rigor VS Flexibility: Find the right balance
● Have someone who likes to write, it helps
● Be agile, do “design tasks”
Consequences
Slide 38
Slide 38 text
● Rigor VS Flexibility: Find the right balance
● Have someone who likes to write, it helps
● Be agile, do “design tasks”
● Hammock driven development
Consequences
Slide 39
Slide 39 text
● Rigor VS Flexibility: Find the right balance
● Have someone who likes to write, it helps
● Be agile, do “design tasks”
● Hammock driven development
● It’s not about tooling
Consequences
Slide 40
Slide 40 text
Status: Proposed
Superseeds previous ADR
N°0: “Outdated doc is better than no doc (lol)”