使用架构决策记录简化软件开发项目的技术决策 - AWS规范性指南

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用架构决策记录简化软件开发项目的技术决策

应用程序架构师大流士 Kunce 和多米尼克·戈比AWS专业服务

2022 年 3 月

本指南介绍了软件工程项目的体系结构决策记录 (ADR) 流程。ADR 支持团队协调,记录项目或产品的战略方向,并减少反复出现且耗时的决策工作。

在项目和产品开发期间,软件工程团队需要做出体系结构决策才能实现自己的目标。这些决策可以是技术性的,例如决定使用命令查询责任分离 (CQRS) 模式,也可以是与流程相关的,例如决定使用 GitFlow 管理源代码的工作流程。做出这些决策是一个耗时且困难的过程。团队必须证明、记录这些决策并将其传达给相关利益相关者。

在做出建筑决策时,经常出现三种主要的反模式:

  • 由于害怕做出错误的选择,根本没有做出任何决定。

  • 决定是毫无道理的,人们也不明白为什么做出决定。这导致同一主题被多次讨论。

  • 决策没有在架构决策存储库中捕获,因此团队成员忘记或不知道决策是做出的。

在产品或项目的开发过程中,这些反模式特别重要。

以 ADR 的形式获取导致决策的背景和考虑因素,使当前和 future 的利益相关者能够收集有关作出的决策和每项决策背后的思考过程的信息。这可以缩短软件开发时间,并为 future 团队提供更好的文档。

目标业务成果

ADR 的目标是三个业务成果:

  • 他们协调当前和 future 的团队成员。

  • 他们为项目或产品设定了战略方向。

  • 他们通过定义正确记录和传达架构决策的流程来避免决策反模式。

发展成果评估记录了通知 future 利益相关者的决定的背景。ADR 集合提供了移交经验和参考文档。团队或项目成员使用 ADR 集合进行后续项目和产品功能规划。能够参考 ADR 可以减少开发、审查和体系结构决策过程中所需的时间。ADR 还允许其他团队学习并深入了解其他项目和产品开发团队的考虑因素。