View on GitHub

gadr

Generalized Architecture Decision Records

Generalized Architectural Decision Records part of ADR

An Architectural Decision Record (ADR) is recording an architectural decision (AD). Such a decision might be to use Gradle instead of Maven as build tool. In another project, Maven might be preferred over Gradle. The pros and cons of each decision might be somewhat general (appearing in both projects) or local (appearing in the context of one project only). GADRs are about capturing the general options and their pros and cons. Prof. Dr. Olaf Zimmermann coined the terms “Decision Required” and “Decisions Made” in his PhD thesis. An overview is in the article Decisions Required vs. Decisions Made. He also distinguishes between “Problem Space” and “Solution Space” (see O. Zimmermann et al. Architectural Decision Guidance across Projects, IEEE/IFIP WICSA 2015).

Model Type Problem Space Relation Solution Space
Reach/Level Asset (Community)   Project
Owner Knowledge Engineer   Software Architect
Purpose Design Guidance   Decision (Back-)Log
Need for Architectural Decision Problem
\--raises-^
--1-instantiates-n--> Problem Occurrence
Design Candidates Option --1-instantiates-n--> Option Occurrence

We collect generalized architectural decisions based on categories:

Category Repository
Java https://github.com/adr/gadr-java
LaTeX https://github.com/latextemplates/gadr-latex-packages
Misc https://github.com/adr/gadr-misc

ADRs taken when designing GADR are recorded at docs/adr.

Scientific paper: Oliver Kopp and Anita Armbruster: Generalized Markdown Architectural Decision Records: Capturing the Essence of Decisions (short paper). ZEUS 2019: 55-57