核心问题
ADR 到底记录什么?
真实场景
半年后,Kafka 运维出了问题。新人问:“当初为什么不用更简单的 Redis Stream?”
没人记得。只知道系统已经这样了。
这就是没有 ADR 的代价。
常见误区
坏文档写:
我们使用 Kafka。
好 ADR 写:
我们选择 Kafka,是因为需要高吞吐、多消费者和可重放,接受运维复杂度。
ADR 记录的是选择背后的判断。
工程视角
ADR 应该回答:
- 当时背景是什么?
- 有哪些候选方案?
- 每个方案的利弊是什么?
- 最终选择什么?
- 接受了什么代价?
- 未来什么条件下需要重评?
PM 可以怎么做
PM 可以把 ADR 当成工程版的产品决策记录。
不要只写“结论”,要写清楚:
- 业务压力。
- 技术约束。
- 时间窗口。
- 团队能力。
- 被放弃的替代方案。
Atlas Action
每次重大技术选择后,补一句:
我们没有选择 X,是因为 Y。
这句话往往比“我们选择了什么”更有价值。
小结
ADR 是写给未来团队的解释权。
没有 ADR,未来的人只能从结果反推原因,成本很高,也容易误判。