SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Johannes Dienst (@JohannesDienst)
Effizient arbeiten mit
Architecture Decision
Records (ADR)
Johannes Dienst @JohannesDienst2
Produktentwicklung
• Single-Source-of-Truth für Content
• Omni-Channel Ausspielung
• Viele Entscheidungen
• Was ist Produkt? - Was ist Projekt?
• Diskussionen um Entscheidungen
Johannes Dienst (@JohannesDienst)3
Was ist eine Entwurfsentscheidung?
Code-Ebene
Bubble-Sort
statt
Merge-Sort
Solution-Ebene
Circuit Breaker
Applikations-Ebene
Hystrix
Johannes Dienst (@JohannesDienst)4 https://arc42.de/
Johannes Dienst (@JohannesDienst)5
Architecture Decision Record (ADR)
Johannes Dienst (@JohannesDienst)6
Titel
Entscheidung
Status
Kontext / Hintergrund
Konsequenz(en)
Alternativen
Johannes Dienst (@JohannesDienst)7
ADR-3: Staging-Umgebung für CMS
Entscheidung
Wir verwenden kein Push-Publishing bzw. verschiedene Staging Umgebungen.
Status
BESCHLOSSEN
Kontext
Es wird eine Lösung gesucht um Skalierbarkeit für das gesamte System sicherzustellen.
Konsequenzen
Änderung der System-Architektur notwendig
• Abbau der beiden Public Instanzen
• Dekonfigurieren von Push Publishing
Es wird keine Umgebung zur Verfügung gestellt, auf der Content gepushed wird
Alternativen
Cluster-Lösung
• Betrieb des CMS im Cluster
Push Publishing
• Verwendung für mehrere Stages
Anatomie einer ADR - Titel
Johannes Dienst (@JohannesDienst)8
Titel
Entscheidung
Status
Kontext / Hintergrund
Konsequenz(en)
Alternativen
Kurze Nomen-Phrasen
Anatomie einer ADR - Titel
Johannes Dienst (@JohannesDienst)9
Titel
Entscheidung
Status
Kontext / Hintergrund
Konsequenz(en)
Alternativen
• Aktive Sprache
• Knappe Erklärung
• Wir implementieren…
Anatomie einer ADR - Titel
Johannes Dienst (@JohannesDienst)10
Titel
Entscheidung
Status
Kontext / Hintergrund
Konsequenz(en)
Alternativen
• Beschlossen
• Offen
• Widerrufen
Anatomie einer ADR - Titel
Johannes Dienst (@JohannesDienst)11
Titel
Entscheidung
Status
Kontext / Hintergrund
Konsequenz(en)
Alternativen
• Fakten beschreiben
• Oft politisch,
technologisch,
strategisch,
soziologisch …
• Alles einbeziehen
• Wirklich ALLES
Anatomie einer ADR - Titel
Johannes Dienst (@JohannesDienst)12
Titel
Entscheidung
Status
Kontext / Hintergrund
Konsequenz(en)
Alternativen
• Gliedern in:
Positiv, Negativ, Neutral
• Ganze Sätze
Anatomie einer ADR - Titel
Johannes Dienst (@JohannesDienst)13
Titel
Entscheidung
Status
Kontext / Hintergrund
Konsequenz(en)
Alternativen
• Mindestens zwei
Auswahlmöglichkeiten
• Vor- und Nachteile
beschreiben
Johannes Dienst (@JohannesDienst)14
Entscheidungslog
Icons made by Freepik and Smashicons from www.flaticon.com
ADR - 001
ADR - 002
ADR - 003
.
.
.
Extend System B to implement
interactive approval processing
Keine kundenspezifischen
Acceptance-Tests
Module Structure & Loading
Johannes Dienst (@JohannesDienst)15
Große Entscheidungslogs?
Icons made by Freepik and Smashicons from www.flaticon.com
Gute Titel!
Noch bessere Titel!
Habe ich schon gute Titel
erwähnt?
Johannes Dienst (@JohannesDienst)16
Große Entscheidungslogs?
Icons made by Freepik and Smashicons from www.flaticon.com
https://github.com/mrwilson/adr-viewer
Johannes Dienst (@JohannesDienst)17
Docs-as-Code
Icons made by Freepik and Smashicons from www.flaticon.com
Johannes Dienst (@JohannesDienst)18
Docs as Code
Icons made by Freepik and Smashicons from www.flaticon.com
Johannes Dienst (@JohannesDienst)19
Entscheidungen?
Johannes Dienst (@JohannesDienst)20
Entscheidungen?
Johannes Dienst (@JohannesDienst)21
Tagging
Johannes Dienst (@JohannesDienst)22
Technik hinter der Microsite
Icons made by Freepik, Good Ware and Smashicons from www.flaticon.com
docToolchain
Johannes Dienst (@JohannesDienst)23
Technik hinter der Microsite
Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
master
adr-042
Johannes Dienst (@JohannesDienst)24
Weitere Vorteile - Transparenz von Architekturentscheidungen
Icons made by Freepik, Good Ware, Sprang and Smashicons from www.flaticon.com
Johannes Dienst (@JohannesDienst)25
Weitere Vorteile – Anbindung an interne Suchmaschine
Learnings
Johannes Dienst (@JohannesDienst)26
ADRs als Log von Entscheidungen -> Nachvollziehbarkeit
Schwierig zu verwalten bei vielen Architekturentscheidungen
Docs-as-Code mit Microsite für ADR-Log
Durchsuchbarkeit durch Tagging
Transparenz von Architekturentscheidungen durch Anbindung an
interne Suchmaschine
Welche zwei Fragen sind noch offen?
Johannes.Dienst@DeutscheBahn.com
@JohannesDienst
Johannes Dienst @JohannesDienst28
https://github.com/joelparkerhenderson/architecture_decision_record#suggestions-for-writing-good-adrs
Weiterführende Links
https://kevinjalbert.com/start-now-architecture-decision-records/
https://github.com/mrwilson/adr-viewer
https://adr.github.io/
https://personal.utdallas.edu/~chung/SA/zz-Impreso-architecture_decisions-tyree-05.pdf

Weitere ähnliche Inhalte

Ähnlich wie Effizient arbeiten mit Architecture Decision Records (ADR)

Ähnlich wie Effizient arbeiten mit Architecture Decision Records (ADR) (20)

Dev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfDev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdf
 
DNUG2013-Vortrag-Notes9-Featurevergleich
DNUG2013-Vortrag-Notes9-FeaturevergleichDNUG2013-Vortrag-Notes9-Featurevergleich
DNUG2013-Vortrag-Notes9-Featurevergleich
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
 
Code Review to the Rescue
Code Review to the RescueCode Review to the Rescue
Code Review to the Rescue
 
UX Design - Concept Maps, Flowcharts, Specs (3. Sitzung)
UX Design - Concept Maps, Flowcharts, Specs (3. Sitzung)UX Design - Concept Maps, Flowcharts, Specs (3. Sitzung)
UX Design - Concept Maps, Flowcharts, Specs (3. Sitzung)
 
Infrastructure Solution Day | Core
Infrastructure Solution Day | CoreInfrastructure Solution Day | Core
Infrastructure Solution Day | Core
 
Plone im Kontext des WCMS Marktes
Plone im Kontext des WCMS MarktesPlone im Kontext des WCMS Marktes
Plone im Kontext des WCMS Marktes
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
UX Design: Ziele - Metriken - Patterns (4. Sitzung)
UX Design: Ziele - Metriken - Patterns (4. Sitzung)UX Design: Ziele - Metriken - Patterns (4. Sitzung)
UX Design: Ziele - Metriken - Patterns (4. Sitzung)
 
2. Technologie-Tag - Frontend Architektur
2. Technologie-Tag - Frontend Architektur2. Technologie-Tag - Frontend Architektur
2. Technologie-Tag - Frontend Architektur
 
Skalierbare Flutter Architektur - eine Einführung
Skalierbare Flutter Architektur - eine EinführungSkalierbare Flutter Architektur - eine Einführung
Skalierbare Flutter Architektur - eine Einführung
 
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-UmgebungDas Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
Das Ganze ist mehr als seine Teile: Die moderne Continuous-Delivery-Umgebung
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-AppsAber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
Aber schnell! Top HTML5 Performance Tipps für Hybrid- und Web-Apps
 
Chaos Kata Fitnesstraining für DevOps Teams
Chaos Kata Fitnesstraining für DevOps TeamsChaos Kata Fitnesstraining für DevOps Teams
Chaos Kata Fitnesstraining für DevOps Teams
 

Mehr von Johannes Dienst

Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client Clusters
Johannes Dienst
 
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Johannes Dienst
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client Clusters
Johannes Dienst
 
Griechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne SoftwareentwicklungGriechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne Softwareentwicklung
Johannes Dienst
 
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen UmfeldPride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
Johannes Dienst
 

Mehr von Johannes Dienst (18)

Developer Relations Metrics - A Humble Guide
Developer Relations Metrics - A Humble GuideDeveloper Relations Metrics - A Humble Guide
Developer Relations Metrics - A Humble Guide
 
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdf
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdfReal Cross-Platform Workflow UI Automation_JohannesDienst.pdf
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdf
 
The Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI AutomationThe Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI Automation
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client Clusters
 
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client Clusters
 
Griechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne SoftwareentwicklungGriechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne Softwareentwicklung
 
Lessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamLessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps Team
 
Work efficiently with Architecture Decision Records
Work efficiently with Architecture Decision RecordsWork efficiently with Architecture Decision Records
Work efficiently with Architecture Decision Records
 
The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?
 
Spock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft MutationstestenSpock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
 
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)
 
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen UmfeldPride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
 
DevOps im Konzern: Autonomie vs Betriebssicherheit
DevOps im Konzern: Autonomie vs BetriebssicherheitDevOps im Konzern: Autonomie vs Betriebssicherheit
DevOps im Konzern: Autonomie vs Betriebssicherheit
 
Und wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PITUnd wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PIT
 
Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!
 
Ist das Softwarearchitektur oder kann das weg?
Ist das Softwarearchitektur oder kann das weg?Ist das Softwarearchitektur oder kann das weg?
Ist das Softwarearchitektur oder kann das weg?
 
Clean Code ist doch einfach... Qualität ist schwierig!
Clean Code ist doch einfach... Qualität ist schwierig!Clean Code ist doch einfach... Qualität ist schwierig!
Clean Code ist doch einfach... Qualität ist schwierig!
 

Effizient arbeiten mit Architecture Decision Records (ADR)