Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Cover image for Writing Architecture Decision Records
Carlos Cuesta
Carlos Cuesta

Posted on • Edited on • Originally published atcarloscuesta.me

     

Writing Architecture Decision Records

Anarchitecture decision record also known asADR, is a document that captures an important architecture decision, including the context of how the decision was made and the consequences of that change.

What are the benefits?

Sharing context

ADRs capture a decision at the time it's being made. They're the outcome of all of those asynchronous discussions in Slack that'll be lost over time ⏰

When you materialize them into docs, you're allowing your future teammates, to get the context for this specific change. So they'll be able to understand the issues, the decision that was taken and the impact it had on the project.

Writing docs willhelp you and yourfuture peers in thelong run! 🚀

Alignment

Writing decisions leads the team to consensus and ensures that all the assumptions of a change are clear 📏.

This will have a positive impact after the architecture decision has been implemented. Everyone on the team will have a deep understanding which will help on moving forward faster with the new approach.

Writing ADRs

Define a template

When writing them, a common practice is to have a template to write ✍🏼 all the documents in the same way.

You'll find a lot of templates online, but here's the one I use it's very simple but easy to write.

# Title- Status:<!-- PENDING/APPROVED/DEPRECATED -->- Date: DD/MM/YYYY- RFC:<!-- Link to the RFC that ended up into the ADR -->## Context<!-- What is the issue that is motivating the decision or change? -->## Decision<!-- What is the change we're doing? -->## Consequences<!-- What becomes easier or more difficult because of this change? -->
Enter fullscreen modeExit fullscreen mode

Store them next to the code

I believe thatdocumentation should benext to thecode to make it easy to contribute to it. Whenever you add an external tool you're increasing the complexity to contribute and reducing the visibility of the docs 👀.

The solution is simple, check out the ADRs into your project repository and keep things simple and clean ✨

I recommend you to create a folder 📁 where you store all the decision records, for example:docs/adrs/.

Use a naming convention

When saving the files use a naming conventiontitle-of-the-adr-DD-MM-YYYY.md

Conclusion

Write more ADRs 😜, if you're not doing it yet, it's never too late to start!

In my experience as a team grows larger and a codebase becomes more complex, architecture decision records are agreat tool to help your current and future team ❤️

Top comments(2)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss
CollapseExpand
 
bolt04 profile image
David Pereira
I love learning, programming and discover new solutions. Also kotlin rules
  • Location
    Odivelas, Portugal
  • Education
    ISEL - Instituto Superior de Engenharia de Lisboa
  • Work
    Software Developer Consultant at CreateIT
  • Joined

Hi Carlos, great post 👍. Do you know any public repos with examples of this? Actual real ADRs?

CollapseExpand
 
carloscuesta profile image
Carlos Cuesta
Lead Web Engineer @n26 • JavaScript, ReactJS and OpenSource ❤️
  • Email
  • Location
    Barcelona
  • Work
    Lead Web Engineer at N26
  • Joined

Hey! Thanks for the comment 😊

Here's a repo that includes some examplesgithub.com/joelparkerhenderson/arc...

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Lead Web Engineer @n26 • JavaScript, ReactJS and OpenSource ❤️
  • Location
    Barcelona
  • Work
    Lead Web Engineer at N26
  • Joined

Trending onDEV CommunityHot

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp