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