• Home
  • BVSSH
  • Engineering Enablement
  • Playbooks
  • Frameworks
  • Good Reads
Search

What are you looking for?

Practice : Architecture Decision Records (ADRs)

Purpose and Strategic Importance

Architecture Decision Records (ADRs) are lightweight documents that capture important decisions made during software design. They document context, trade-offs, and rationale so that future engineers understand why something was chosen - even if it later changes.

By using ADRs, teams make technical decision-making transparent, traceable, and shareable. They reduce knowledge loss, accelerate onboarding, and support alignment across teams working on complex systems.


Description of the Practice

  • Each ADR describes a single architectural or technical decision.
  • Follows a consistent structure: context, decision, status, consequences.
  • Stored in version control alongside the codebase for easy access and review.
  • ADRs evolve - new ones can supersede outdated decisions.
  • Can be authored collaboratively by engineers, architects, and stakeholders.

How to Practise It (Playbook)

1. Getting Started

  • Create an adr/ directory in your repo and agree on a template format.
  • Write ADRs for key decisions like technology choices, service boundaries, data contracts.
  • Keep ADRs focused and concise - they are not formal specs or design docs.
  • Review ADRs during retrospectives or architecture forums to ensure visibility.

2. Scaling and Maturing

  • Tag ADRs by domain, team, or architectural theme.
  • Link ADRs to RFCs, tickets, or epic documentation for traceability.
  • Use automation to flag stale or superseded ADRs for review.
  • Create a knowledge base or index to help teams discover decisions across the organisation.
  • Include ADR review in onboarding to ramp up new engineers quickly.

3. Team Behaviours to Encourage

  • Write down decisions while they’re fresh - don’t wait for perfection.
  • Make ADRs inclusive - engineers of all levels should contribute.
  • Use ADRs to promote healthy debate and decision rigour.
  • Revisit ADRs after major incidents, replatforming, or technical pivots.

4. Watch Out For…

  • Writing ADRs too late or with insufficient context.
  • Using ADRs as justification rather than exploration.
  • Creating ADRs that are never updated or referenced.
  • Rigidly enforcing ADRs that no longer make sense.

5. Signals of Success

  • Engineers understand why past decisions were made - even if they disagree.
  • Teams align on changes through shared context and rationality.
  • Architecture evolves responsibly - not reactively.
  • New joiners ramp up faster by reading ADRs.
  • Decisions feel inclusive, documented, and explainable.
Associated Standards
  • Hiring and growth practices are inclusive and fair
  • Systems are documented in a way that reflects how they evolve
  • Teams own and evolve their internal technical standards
Associated Measures
  • Technical Debt Ratio

Technical debt is like junk food - easy now, painful later.

Awesome Blogs
  • LinkedIn Engineering
  • Github Engineering
  • Uber Engineering
  • Code as Craft
  • Medium.engineering