Skip to main content

ADR Title

Overview

This template provides a structured approach to documenting architectural decisions. Use the YAML drafting guide below to organize your thoughts before writing the full ADR.

YAML Drafting Guide

Use this comprehensive YAML template to draft your ADR before writing the full documentation:

# ADR Drafting Worksheet - Complete this first to organize your thinking
adr:
title: "[Clear, descriptive title of the decision]"
description: "[Brief summary of what is being decided]"
author: "[Your name or team name]"
date: "[YYYY-MM-DD]"

context:
scenario: "[What business scenario or use case is this for?]"
problem: "[What specific problem are you solving?]"
background: "[Additional context that readers need to understand]"

stakeholders:
primary: "[Who is most affected by this decision?]"
secondary: "[Who else needs to know about this decision?]"

constraints:
technical:
- "[Platform limitations]"
- "[Integration requirements]"
- "[Performance requirements]"
business:
- "[Budget constraints]"
- "[Timeline requirements]"
- "[Regulatory compliance]"
organizational:
- "[Team expertise]"
- "[Operational capabilities]"
- "[Strategic direction]"

success_criteria:
quantitative:
- "[Measurable performance target]"
- "[Cost target]"
- "[Timeline goal]"
qualitative:
- "[Maintainability goal]"
- "[Security posture]"
- "[Developer experience]"

decision:
summary: "[One clear sentence stating what was decided]"
rationale: "[Why this decision was made - key reasoning]"
implementation_approach: "[High-level approach to implementing this decision]"

decision_drivers:
- name: "[Driver 1 - e.g., Performance Requirements]"
description: "[Why this factor influenced the decision]"
weight: "[High/Medium/Low priority]"
- name: "[Driver 2 - e.g., Cost Optimization]"
description: "[Why this factor influenced the decision]"
weight: "[High/Medium/Low priority]"
- name: "[Driver 3 - e.g., Team Expertise]"
description: "[Why this factor influenced the decision]"
weight: "[High/Medium/Low priority]"

considered_options:
- name: "[Option 1 - e.g., Technology A]"
description: "[Brief description of what this option entails]"

technical_details:
- "[Architecture approach]"
- "[Key components]"
- "[Integration requirements]"

pros:
- "[Specific advantage 1]"
- "[Specific advantage 2]"
- "[Quantifiable benefit]"

cons:
- "[Specific disadvantage 1]"
- "[Specific disadvantage 2]"
- "[Quantifiable limitation]"

risks:
- risk: "[Risk description]"
probability: "[High/Medium/Low]"
impact: "[High/Medium/Low]"
mitigation: "[How to address this risk]"

dependencies:
- "[External dependency]"
- "[Internal capability requirement]"
- "[Timeline dependency]"

costs:
initial: "[Implementation cost]"
ongoing: "[Operational cost]"
effort: "[Development effort required]"

- name: "[Option 2 - e.g., Technology B]"
description: "[Brief description]"
technical_details: ["[Key technical aspects]"]
pros: ["[Advantages]"]
cons: ["[Disadvantages]"]
risks:
- risk: "[Risk]"
probability: "[Level]"
impact: "[Level]"
mitigation: "[Mitigation strategy]"
dependencies: ["[Dependencies]"]
costs:
initial: "[Cost]"
ongoing: "[Cost]"
effort: "[Effort]"

comparison_matrix:
criteria:
- name: "[Evaluation criteria 1]"
weight: "[High/Medium/Low]"
option_1_score: "[Score/Rating]"
option_2_score: "[Score/Rating]"
- name: "[Evaluation criteria 2]"
weight: "[High/Medium/Low]"
option_1_score: "[Score/Rating]"
option_2_score: "[Score/Rating]"

consequences:
positive:
- "[Positive outcome 1]"
- "[Positive outcome 2]"
negative:
- "[Negative impact 1]"
- "[Negative impact 2]"
neutral:
- "[Neutral change 1]"
- "[Neutral change 2]"
risks:
- "[Risk that remains after decision]"
- "[Monitoring requirement]"

implementation:
phases:
- "[Phase 1 description]"
- "[Phase 2 description]"
timeline: "[Expected timeline]"
resources_required: "[Team/budget/tools needed]"
success_metrics: "[How to measure success]"

future_considerations:
monitoring:
- "[What to watch for]"
- "[When to re-evaluate]"
evolution:
- "[Future technology to consider]"
- "[Upcoming decisions that may affect this]"
triggers_for_review:
- "[Condition that would trigger re-evaluation]"
- "[Timeline for regular review]"

ADR Document Structure

After completing the YAML drafting guide above, use this structure for your final ADR:

Status

[Mark the most applicable status for tracking purposes]

  • Draft
  • Proposed
  • Accepted
  • Deprecated

Context

Scenario Context: [Describe the business scenario or use case]

Problem Statement: [Clearly articulate the problem being solved]

Constraints and Requirements: [Document technical, business, and organizational boundaries]

Success Criteria: [Define measurable outcomes for success]

Decision

Decision Statement: [Clear, single sentence stating what was decided]

Decision Rationale: [Explain the reasoning behind this decision]

Implementation Approach: [Outline how this decision will be implemented]

Decision Drivers (optional)

List the key factors that influenced this decision:

  • [Driver 1]
  • [Driver 2]
  • [Driver 3]

Considered Options (optional)

Option Evaluation Framework: [For each option considered, provide:]

Option [Number]: [Option Name]

Description: [What this option entails]

Technical Details: [Architecture, components, requirements]

Pros: [Specific advantages with supporting detail]

Cons: [Specific disadvantages with impact assessment]

Risks and Mitigation: [Risks with probability, impact, and mitigation strategies]

Dependencies: [External dependencies and prerequisites]

Cost Analysis: [Implementation and operational costs]

Comparison Matrix (optional)

CriteriaOption 1Option 2Option 3Weight
[Criteria 1][Score][Score][Score][H/M/L]
[Criteria 2][Score][Score][Score][H/M/L]

Consequences

Positive Consequences: [Benefits and positive outcomes]

Negative Consequences: [Risks and negative impacts]

Neutral Consequences: [Other changes or considerations]

Future Considerations (optional)

Monitoring and Evolution: [What to watch for and when to re-evaluate]

Review Triggers: [Conditions that would require re-evaluation of this decision]


🤖 Crafted with precision by ✨Copilot following brilliant human instruction, then carefully refined by our team of discerning human reviewers.