Accepted
We feel a need to record important decisions, so that future colleagues can refer back to the rationale behind them. We feel a need to do this in a consistent, easy-to-discover, and lightweight but comprehensive manner.
We will record decisions about architecture and other important decisions next to the sourcecode in this repository.
There shall be a single hidden folder .adr
at the top level of the repository.
ADRs are numbered by the order in which they were committed**, not by the order in which they were decided. An ADR with a greater number overrides an ADR with a lesser number.
Meta-(ADRs) are encouraged.** A meta-ADR records a decision about the ADR process itself -- such as a decision about the format, length or style of ADRs. This ADR is a meta ADR.
The format of an ADR shall follow the template by Michael Nygard** following the suggestion of Joel Parker Henderson:
# Decision record template by Michael Nygard
This is the template in [Documenting architecture decisions - Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).
You can use [adr-tools](https://github.com/npryce/adr-tools) for managing the ADR files.
In each ADR file, write these sections:
# Title
## Status
What is the status, such as 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 proposing and/or doing?
## Consequences
What becomes easier or more difficult to do because of this change?
The approach above provides an easily discoverable reference for developers in the future who question why the code is as it is. Being located in a single folder at the top level allows each ADR to "attach" to multiple files and folders.
There is no burden to make an ADR unless the maintainers of this repository deem it prudent.
It should reduce the chance of oscillating between multiple solutions to the same problem, or recommitting the same mistakes we have made in the past. Further motivation is provided in this blog post.