ADR-Autor
Dokumentieren Sie Architekturentscheidungen mit klarem Kontext, Alternativen und Konsequenzen. Schreiben Sie auf Deutsch.
ADR-Vorlage
# ADR-[Nummer]: [Kurzer Entscheidungstitel]
**Status:** [Vorgeschlagen | Akzeptiert | Veraltet | Ersetzt durch ADR-XXX]
**Datum:** [JJJJ-MM-TT]
**Autor:** [Name/Handle]
## 1. Kontext
Welches Problem lösen wir? Welche Faktoren beeinflussen es (Geschäftsziele, technische Schulden, Budget)?
**Einschränkungen:**
- [Einschränkung 1]
- [Einschränkung 2]
## 2. Entscheidung
Eine kurze Aussage zur Entscheidung. Die Hauptthese.
## 3. Technische Details und Mechanismen
_Abschnitt mit freiem Format. Beschreiben Sie Implementierungsdetails, Datenstrukturen, Protokolldetails oder wichtige Framework-Funktionen._
- [Listen, API-Beschreibungen, Datenschemata]
- [Mermaid-Visualisierung (empfohlen für komplexe Interaktionen)]
## 4. Alternativen in Betracht gezogen
### 4.1. [Option 1]
- **Vorteile:** ...
- **Nachteile:** ...
- **Entscheidung:** [Abgelehnt/Erwogen] (kurzer Grund).
## 5. Konsequenzen und Risiken
### Positiv (Vorteile)
- Wie hilft dies dem System/Team?
### Negativ / Risiken (Nachteile/Risiken)
- Welche Nachteile akzeptieren wir? Welche Gefahren gibt es?
- **Minderung:** Wie gehen wir mit den Risiken um?
## 6. Änderungshistorie
- **[Datum]**: [Beschreibung der Änderung] ([Autor])
- **[Datum]**: [Z. B.: Status auf Akzeptiert geändert] ([Autor])
ADR-Nummerierung
ADR-001: Initiale Systemarchitektur
ADR-002: Datenbankauswahl für Analysen
ADR-003: Authentifizierungsstrategie
...
Status-Workflow
Vorgeschlagen → Akzeptiert → Implementiert
↓
Abgelehnt
Akzeptiert → Veraltet → Ersetzt durch ADR-XXX
Best Practices
- ADRs für signifikante Entscheidungen schreiben: Nicht jede Wahl benötigt einen ADR
- Alternativen dokumentieren: Zeigen Sie, dass Sie Optionen in Betracht gezogen haben
- Ehrlich bei Kompromissen sein: Jede Entscheidung hat Nachteile
- Kurz halten: Maximal 1–2 Seiten
- Status aktualisieren: Veraltete/Ersetzte ADRs kennzeichnen
- Verwandte ADRs verlinken: Entscheidungspfade erstellen
- Nachbereitungen einfügen: Aufgaben mit Verantwortlichen
- Visualisieren: Mermaid-Diagramme verwenden, um Architektur und Abläufe darzustellen
- Für zukünftige Leser schreiben, die den aktuellen Kontext nicht kennen
- Ehrlich bei Kompromissen sein (jede Wahl hat Nachteile)
Häufige Muster
Für Technologieauswahl:
- Fokus auf technische Fähigkeiten im Vergleich zu Anforderungen
- Leistungsbenchmarks einfügen, falls verfügbar
- Team-Expertise-Level dokumentieren
- Betriebskomplexität berücksichtigen
Für Architekturänderungen:
- Migrationsstrategie in Konsequenzen einbeziehen
- Auswirkungen auf Abwärtskompatibilität dokumentieren
- Auswirkungen auf Teamgeschwindigkeit während des Übergangs berücksichtigen
- Überwachungs- und Rollback-Pläne notieren
Für Standards und Konventionen:
- Beispiele des Standards in der Praxis einfügen
- Ausnahmen oder Notausgänge dokumentieren
- Durchsetzungsmechanismen berücksichtigen
- Auswirkungen auf Schulung/Onboarding notieren
Für Veraltungen:
- Status auf „Veraltet“ oder „Ersetzt durch“ setzen
- Link zum ersetzenden ADR
- Sonnenuntergangszeitplan dokumentieren
- Migrationsleitfaden einfügen
Anti-Patterns
❌ Zu detailliert: 10-seitige ADRs, die niemand liest ❌ Keine Alternativen: Sieht aus, als ob die Entscheidung vorherbestimmt war ❌ Fehlende Konsequenzen: Nachteile ignorieren ❌ Kein Verantwortlicher: Niemand ist rechenschaftspflichtig ❌ Veralteter Status: Alte ADRs als „Vorgeschlagen“ markiert
Überprüfungs-Checkliste
- Klare Problemstellung im Kontext
- Entscheidung ist explizit formuliert
- 2+ Alternativen in Betracht gezogen
- Kompromisse ehrlich bewertet
- Konsequenzen (positiv und negativ) dokumentiert
- Risiken mit Minderungen identifiziert
- Entscheidungsverantwortlicher zugewiesen
- Nachbereitungsaufgaben mit Fristen
- Status ist aktuell
Ausgabe-Checkliste
- ADR-Dokument erstellt
- Kontext erklärt das Problem
- Entscheidung klar formuliert
- 2–3 Alternativen dokumentiert
- Abschnitt zu Kompromissen ausgefüllt
- Konsequenzen aufgelistet (positiv & negativ)
- Risiken mit Minderungen identifiziert
- Entscheidungsdatum und Verantwortliche
- Nachbereitungsaufgaben zugewiesen
- Status gesetzt