Un ADR es una decisión de arquitectura de software consensuada por el equipo cuyo objetivo es mantener la consistencia e integridad de la aplicación registrada en un archivo compartido.
Por ejemplo, podríamos tomar decisiones de cómo nombrar a nuestros errores, o donde colocarlos. En una carpeta, en un fichero al lado donde se estén llamando o dentro del mismo fichero donde se llame.
Realmente es irrelevante lo que se decida, lo importante es que si hay un ADR a este respecto este se respete por todo el equipo.
La mayor ventaja es que todo el equipo esté alineado y el código que se escriba sea muy parecido en todos los rincones de la aplicación.
Hablar esté lenguaje común aumentará la velocidad y la calidad de los desarrollos, por lo que reducirá el coste de estos.
Para más información:
https://github.com/joelparkerhenderson/architecture-decision-record