About ADR(Architecture Decision Record)s

Back to post list

2024. 06. 23.

ADR (Architecture Decision Record) refers to a record of decisions made regarding a project's architecture. Depending on perspective, some broadly view architecture decisions as any decisions that affect the architecture, so it seems okay not to think of it as strictly defined. Each record consists of a single document, and while it may vary by situation, the format of ADRs is usually managed consistently within a project. An ADR should clearly describe what decision needs to be made on a particular topic, what options were considered, what are the pros and cons of each option, and why a specific option was chosen among these. So why do we write ADRs? Using ADRs would have the following advantages.

  • Clear communication: As evident from the previous explanation, the content of an ADR shows how carefully a decision was made (or if it was hastily glossed over). The authors and decision-makers need to make clear decisions and articulate them well in writing for the readers, and the readers can gain a clear understanding of the project by reading the ADR.
  • History logging: ADRs are not only for current project members but also for future members. When a new member joins, they can easily grasp how the project reached its current state by reading the ADRs.

Looking at the explanation above, it might seem that ADRs show their true value in projects involving multiple people. However, thinking back, haven't we all had the experience of developing a feature using something we found through intensive Googling, only to return a few days later, squinting at the code and wondering, "Did I write this?", having to read the code from the beginning again? From this perspective, it's not unreasonable to think of ourselves a few days from now as separate entities from our current selves. Therefore, the current me needs to carefully record what decisions are being made now for the future me, and ADRs can be very useful in this context.

In that sense, I'm considering creating a new category to manage ADRs about the process of creating this site.

Back to post list