Topic: Architecture Decision Records
====================================
###### tags: `lead` `best-practice` `topic` `adr` `public` `obsidian`
## Read
http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions
TR Radar: https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records
## Links
Good entry point:
https://github.com/joelparkerhenderson/architecture_decision_record
German:
https://www.heise.de/hintergrund/Gut-dokumentiert-Architecture-Decision-Records-4664988.html
## Phrases
> Software architecture—the conceptual glue that holds every phase of a project together for its many stakeholders—is widely recognized as a critical element in modern software development. Practitioners have increasingly discovered that close attention to a software system's architecture pays valuable dividends. Without an architecture that is appropriate for the problem being solved, a project will stumble along or, most likely, fail. Even with a superb architecture, if that architecture is not well understood or well communicated the project is unlikely to succeed.
*from: Documenting Software Architectures: Views and Beyond, Bachmann, 2nd Ed., 2010*
> Much documentation can be replaced with highly readable code and tests. In a world of evolutionary architecture, however, it's important to record certain design decisions for the benefit of future team members as well as for external oversight. **Lightweight Architecture Decision Records** is a technique for capturing important architectural decisions along with their context and consequences. We recommend storing these details in source control, instead of a wiki or website, as then they can provide a record that remains in sync with the code itself. For most projects, we see no reason why you wouldn't want to use this technique.
*from: https://www.thoughtworks.com/radar/techniques/lightweight-architecture-decision-records*
## Tools
https://github.com/npryce/adr-tools (Did not try)
## More
Examples:
https://github.com/arachne-framework/architecture
Template is also an [extra document](https://hackmd.io/@h1f1x/Hkd74acVB)
----
# Template
**TITLE**
<short present tense imperative phrase, less than 50 characters, like a git commit message.>
## Status
<proposed, accepted, rejected, deprecated, superseded, etc.>
## Context
<what is the issue that we're seeing that is motivating this decision or change.>
## Decision
<what is the change that we're actually proposing or doing.>
## Consequences