diff --git a/docs/decisions/README.md b/docs/decisions/README.md new file mode 100644 index 0000000..d013e26 --- /dev/null +++ b/docs/decisions/README.md @@ -0,0 +1,22 @@ +# Decision Log + +We capture important decisions with [architectural decision records](https://adr.github.io/). + +These records provide context, trade-offs, and reasoning taken at our community & technical cross-roads. Our goal is to preserve the understanding of the project growth, and capture enough insight to effectively revisit previous decisions. + +Get started created a new decision record with the template: + +```sh +cp template.md NN-title-with-dashes.md +``` + +For more rational behind this approach, see [Michael Nygard's article](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions). + +We've inherited MADR [ADR template](https://adr.github.io/madr/), which is a bit more verbose than Nygard's original template. We may simplify it in the future. + +## Evolving Decisions + +Many decisions build on each other, a driver of iterative change and messiness +in software. By laying out the "story arc" of a particular system within the +application, we hope future maintainers will be able to identify how to rewind +decisions when refactoring the application becomes necessary. diff --git a/docs/decisions/template.md b/docs/decisions/template.md new file mode 100644 index 0000000..30af501 --- /dev/null +++ b/docs/decisions/template.md @@ -0,0 +1,42 @@ +--- +# status and date are the only required elements. Feel free to remove the rest. +status: {[proposed | rejected | approved | deprecated | … | superceded by [2021-01-01 Example](2021-01-01-example.md)]} +date: {YYYY-MM-DD when the decision was last updated} +based-on: {[Short Title](2021-05-15-short-title.md)} +story: {description or link to contextual issue} +--- + +# {short title of solved problem and solution} + +## Context & Problem Statement + +2-3 sentences explaining the problem, and what are the forces influencing the decision. + + +## Priorities & Constraints + +* {list of concerns} +* {that are influencing the decision} + +## Considered Options + +* Option 1: Thing +* Option 2: Another + +## Decision Outcome + +Chosen option [Option 1: Thing] + +[justification] + +### Expected Consequences + +* List of unrelated outcomes this decision creates. + + +## More Information + + + + + \ No newline at end of file