An ADR is a software architecture decision agreed on by the team and recorded in a shared file, with the goal of keeping the application consistent.
For example, we could decide how to name our errors, or where to put them: in a folder, in a file next to where they are thrown, or inside the same file where they are thrown.
What we decide is actually irrelevant. What matters is that if there is an ADR on the subject, the whole team respects it.
What do we gain from having ADRs?
The biggest advantage is that the whole team is aligned and the code looks very similar in every corner of the application.
Speaking this common language increases the speed and quality of development, so it reduces its cost.
For more information:
https://github.com/joelparkerhenderson/architecture-decision-record
