使用架構決策記錄來簡化軟體開發專案的技術決策 - AWS 規定指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用架構決策記錄來簡化軟體開發專案的技術決策

Darius Kunce and Dominik Goby,Amazon Web Services (AWS)

2022 年 3 月 (文件歷史記錄)

本指南介紹了軟體工程專案的架構決策記錄 (ADR) 程序。ADR 支援團隊協調、記錄專案或產品的策略方向,並減少重複且耗時的決策工作。

在專案和產品開發期間,軟體工程團隊需要做出架構決策以實現目標。這些決策可以是技術性的,例如決定使用命令查詢職責分離 (CQRS) 模式,也可以是與程序相關的,例如決定使用 GitFlow 工作流程來管理原始程式碼。做出這些決策是一個耗時且困難的程序。團隊必須證明、記錄這些決策並向相關利害關係人傳達這些決策。

在做出架構決策時,通常會出現三種主要的反面模式:

  • 由於擔心進行錯誤的選擇,根本沒有做出任何決策。

  • 決策是在沒有任何理由的情況下做出的,人們不明白為什麼會做出此決策。這會導致多次討論相同的主題。

  • 決策未在架構決策儲存庫中擷取,因此團隊成員忘記或不知道已做出此決策。

在產品或專案的開發程序期間處理這些反面模式尤其重要。

以 ADR 的形式擷取決策、內容和導致決策的考量事項,可讓目前和未來的利害關係人收集有關所做決策以及每個決策背後的思維程序的資訊。這可減少軟體開發時間,並為未來的團隊提供了更好的文件。

目標業務成果

ADR 旨在實現以下三項業務成果:

  • 他們調整目前和未來團隊成員。

  • 他們為專案或產品設定策略方向。

  • 他們透過定義正確記錄和傳達架構決策的程序來避免決策反面模式。

ADR 擷取決策的內容,以通知未來的利害關係人。ADR 集合提供了交接經驗和參考文件。團隊或專案成員使用 ADR 集合進行後續專案和產品功能規劃。能夠參考 ADR 可減少開發、審核和架構決策期間所需的時間。ADR 還允許其他團隊學習並深入了解其他專案和產品開發團隊做出的考量。