Architecture Decision Record

Active theme: Light

← 의사결정 기록 템플릿

Jeff Tyree와 Art Akerman의 의사결정 기록 템플릿

이것은 "Architecture Decisions: Demystifying Architecture", Jeff Tyree와 Art Akerman, Capital One Financial에 게재된 아키텍처 결정 기술 템플릿입니다.

  • 이슈(Issue): 다루고 있는 아키텍처 설계 이슈를, 왜 지금 이 이슈를 다루는지에 대해 의문이 남지 않도록 기술하십시오. 최소주의 접근 방식에 따라 수명 주기의 여러 시점에서 다룰 필요가 있는 이슈만 다루고 문서화하십시오.

  • 결정(Decision): 아키텍처의 방향, 즉 선택한 입장을 명확히 밝히십시오.

  • 상태(Status): 결정의 상태. 예: pending, decided, approved.

  • 그룹(Group): 결정의 집합을 정리하는 데 도움이 되도록 통합, 프레젠테이션, 데이터 등 간단한 그룹화를 사용할 수 있습니다. John Kyaruzi와 Jan van Katwijk의 것처럼 이벤트, 캘린더, 위치와 같은 더 추상적인 범주를 포함하는 더 정교한 아키텍처 온톨로지를 사용할 수도 있습니다. 예를 들어 이 온톨로지를 사용하면 시스템이 정보를 필요로 하는 발생 상황을 다루는 결정을 이벤트 아래에 묶게 됩니다.

  • 가정(Assumptions): 결정을 내리는 환경의 근본적인 가정, 즉 비용, 일정, 기술 등을 명확히 기술하십시오. 환경적 제약(수용된 기술 표준, 엔터프라이즈 아키텍처, 흔히 사용되는 패턴 등)이 고려하는 대안을 제한할 수 있음에 유의하십시오.

  • 제약(Constraints): 선택된 대안(결정)이 환경에 가할 수 있는 추가 제약을 기록하십시오.

  • 입장(Positions): 고려한 입장(실행 가능한 선택지 또는 대안)을 나열하십시오. 이는 흔히 긴 설명이 필요하고, 때로는 모델과 다이어그램까지 필요합니다. 이것이 모든 것을 망라한 목록은 아닙니다. 그러나 최종 검토에서 “...는 생각해 보셨나요?”라는 질문을 듣고 싶지는 않을 것입니다. 이는 신뢰의 상실과 다른 아키텍처 결정에 대한 의문으로 이어집니다. 이 섹션은 다른 사람들의 의견을 들었음을 확인하는 데도 도움이 됩니다. 다른 의견을 명시적으로 밝히면 그 옹호자들을 당신의 결정에 끌어들이는 데 도움이 됩니다.

  • 논거(Argument): 구현 비용, 총 소유 비용, 출시 시간, 필요한 개발 자원의 가용성 같은 항목을 포함하여 왜 한 입장을 선택했는지 개략적으로 설명하십시오. 이는 아마도 결정 자체만큼 중요합니다.

  • 영향(Implications): REMAP 메타모델이 보여 주듯 결정에는 많은 영향이 따릅니다. 예를 들어 결정은 다른 결정을 내려야 할 필요를 만들거나, 새 요구사항을 만들거나 기존 요구사항을 수정하거나, 환경에 추가 제약을 가하거나, 고객과 범위나 일정을 재협상해야 하거나, 추가 직원 교육을 필요로 할 수 있습니다. 결정의 영향을 명확히 이해하고 밝히는 것은 동의를 얻고 아키텍처 실행을 위한 로드맵을 만드는 데 매우 효과적일 수 있습니다.

  • 관련 결정: 많은 결정이 서로 관련되어 있음은 분명합니다. 여기에 나열할 수 있습니다. 그러나 실제로는 추적성 매트릭스, 결정 트리 또는 메타모델이 더 유용하다는 것을 알게 되었습니다. 메타모델은 복잡한 관계를 다이어그램으로 보여 주는 데 유용합니다(예: Rose 모델).

  • 관련 요구사항: 결정은 비즈니스 주도여야 합니다. 책임성을 보여 주려면 결정을 목표나 요구사항에 명시적으로 매핑하십시오. 이러한 관련 요구사항을 여기에 열거할 수도 있지만, 추적성 매트릭스를 참조하는 것이 더 편리하다는 것을 알게 되었습니다. 각 아키텍처 결정이 각 요구사항 충족에 기여하는 정도를 평가한 다음, 모든 결정에 걸쳐 요구사항이 얼마나 잘 충족되는지 평가할 수 있습니다. 어떤 결정이 요구사항 충족에 기여하지 않는다면 그 결정을 내리지 마십시오.

  • 관련 산출물: 이 결정이 영향을 미치는 관련 아키텍처, 설계 또는 범위 문서를 나열하십시오.

  • 관련 원칙: 기업에 합의된 원칙 집합이 있다면 결정이 그중 하나 이상과 일관되도록 하십시오. 이는 도메인이나 시스템 전반의 정렬을 보장하는 데 도움이 됩니다.

  • 메모: 의사결정 과정은 몇 주가 걸릴 수 있으므로, 사전 공유 과정에서 팀이 논의하는 메모와 이슈를 기록해 두는 것이 유용하다는 것을 알게 되었습니다.