Juan Rodriguez
Senior Software Engineer - M.Sc. in Computer Science.
Helpful now, invaluable later
Design decisions that address architecturally significant requirements
hard to make and/or costly to change
Oral history
PR / issues
Before long, important details are forgotten
Documentation?
Oral history
PR / issues
What is the least we can document
and still remain effective?
is it easy to track changes? 🤔
Without understanding the motivation behind certain decision, a new person coming on to a project has only two choices:
Blindly accept the decision
Blindly change it
ADR 🙂
Oral history
PR / issues
“An architecture decision record is a short text file in a format similar to an Alexandrian pattern that describes a set of forces and a single decision in response to those forces.”
Rationale
Architecturally significant change
Decision
Consequences
Status
Context
# ADR N: Brief Decision Title
Context goes here. Describe the forces at play, including technological, political,
social, and project local. These forces are likely in tension, and should be called
out as such. The language in this section is value-neutral. It is simply describing
facts. Rationale should be self-evident from the context
## Decision
This section describes our response to these forces. It is stated in full sentences,
with active voice. "We will ...“
## Status
choose one: [Proposed | Accepted | Deprecated | Superseded]
if deprecated, include a rationale. If superseded, include a link to the new ADR
## Consequences
Describe the resulting context, after applying the decision. All consequences should
be listed here, not just the "positive" ones. A particular decision may have positive,
negative, and neutral consequences, but all of them affect the team and project in the
future.
missed the discussion meeting? no problem
1997: Architecture in Practice, first edition. Len Bass, Paul Clements, Rick Kazman
2002: Documenting Software Architecture: Views and Beyond, first edition. Paul Clements et al
2005: Architecture Decisions: Demystifying Architecture. Jeff Tyree and Art Akerman
2009: The Decision View's Role in Software Architecture Practice. Phillipe Krutchten
2011: A documentation framework for architecture decisions. Uwe Van Heesch, Paris Avgerioum, and Rich Hilliard
2011: Documenting Architecture Decisions. Michael Nygard
By Juan Rodriguez