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

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

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

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

2022 年 3 月文档历史记录

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

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

在做出架构决策时,经常会出现三种主要的反模式:

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

  • 没有任何理由就做出决策,人们不明白为什么会做出这样的决策。这会导致同一主题被多次讨论。

  • 决策没有记录在架构决策库中,因此团队成员会忘记或不知道已做出决策。

在产品或项目的开发过程中,解决这些反模式问题尤其重要。

以 ADR 的形式捕获决策、上下文和做出决策的考虑因素,使当前和未来的利益相关者能够收集有关所做决策以及每个决策背后的思维过程的信息。这不仅缩短了软件开发时间,还为未来的团队提供了更好的文档。

目标业务成果

ADR 针对三个业务成果:

  • 协调当前和未来的团队成员。

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

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

ADR 会捕捉决策的上下文,告知未来的利益相关者。ADR 集合提供了移交经验和参考文档。团队或项目成员使用 ADR 集合进行后续项目和产品功能规划。参考 ADR 可以缩短开发、审查和架构决策所需的时间。ADR 还允许其他团队学习并深入了解其他项目和产品开发团队的考虑因素。