OIDL-0000 - Use ?? to capture decisions
Use the ?? (MADR) technique to capture decisions
status: {proposed | rejected | accepted | deprecated | … | superseded by ADR-0005}
date: {YYYY-MM-DD when the decision was last updated}
deciders: {list everyone involved in the decision}
consulted: {list everyone whose opinions are sought (typically subject-matter experts); and with whom there is a two-way communication}
informed: {list everyone who is kept up-to-date on progress; and with whom there is a one-way communication}
Use the GitHub ADR and MADR for architecture decisions
Context and Problem Statement
The Architecture Working Group must capture decisions.
We need a simple and agreeable way to capture and track these decisions.
Don't want too many decisions, just the consequential ones.
Decision to make:
what template
where to keep them - github or wiki
maybe in the future we'll have a documentation repo to keep them in
governance
status checking
approvals
Decision Drivers
simple
mature
agreed upon
works for opensource
Considered Options
github adr / madr
ad hoc
{title of option 3}
…
Decision Outcome
Chosen option: "{title of option 1}", because {justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.
Consequences
Good, because {positive consequence, e.g., improvement of one or more desired qualities, …}
Bad, because {negative consequence, e.g., compromising one or more desired qualities, …}
…
Validation
{describe how the implementation of/compliance with the ADR is validated. E.g., by a review or an ArchUnit test}
Pros and Cons of the Options
GitHub ADR / MADR
simple and mature way to capture architecture decisions
Good, because it is widely used
Good, because works in code and in confluence
Bad, because {argument d}
…
Technology Selection Template
High Level Summary
Principles
Options 1/ Option 2
Option 1 Info
Option 2 Info
Cost Factors Option 1
Cost Factors Option 2
Recommendation
useful for Technology/Platform selection
Ad-Hoc
We come up with our own way to capture
Bad, because only used for openIDL