M8-097M8: ML Systems, Engineering & ResearchTechnical Communication & ImpactMedium
Mastery:
Technical Communication & Impact: 如何做技术决策并记录(ADR)?
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 用架构决策记录(ADR)记录背景、决策、备选方案、理由与后果;让决策可追溯、可复盘,避免反复争论与知识流失。
📌 Key Takeaways
- •背景(context)——问题是什么、约束是什么(时间/成本/合规/团队能力)
- •决策(decision)——选择了什么(明确、可执行)
- •备选方案(alternatives)——考虑过什么、为何未选
- •理由(rationale)——为何选这个(权衡依据)
- •后果(consequences)——正面/负面影响、需接受的代价、后续影响
📐 Mathematical Derivations
数学机理:<strong>架构决策记录(Architecture Decision Record, ADR)</strong>——(1) <strong>结构</strong>——(a) <strong>标题与状态</strong>——编号、标题、状态(提议/已接受/已废弃/被取代);(b) <strong>背景(context)</strong>——面临的问题、约束(时间、成本、合规、团队能力、既有系统);(c) <strong>决策(decision)</strong>——明确选择了什么(可执行、无歧义);(d) <strong>备选方案(alternatives)</strong>——考虑过哪些方案、各自的优缺点、为何未选;<strong>关键</strong>——记录'未选'避免后人重复讨论;(e) <strong>理由(rationale)</strong>——选择的依据(权衡、数据、原则);(f) <strong>后果(consequences)</strong>——正面影响、负面影响(需接受的代价)、对后续决策的影响。(2) <strong>作用</strong>——(a) <strong>可追溯</strong>——为什么做这个决定(半年后还能查);(b) <strong>可复盘</strong>——决策的依据当时是否成立,现在是否需重审;(c) <strong>避免反复争论</strong>——记录后不必每次重新辩论;(d) <strong>知识沉淀</strong>——新人能理解历史决策(避免'为什么这么设计'的困惑);(e) <strong>问责</strong>——明确决策者与时间。(3) <strong>ADR vs 设计文档</strong>——(a) <strong>ADR</strong>——聚焦<strong>单个决策</strong>(轻量、一个决定一篇);(b) <strong>设计文档</strong>——描述<strong>整体设计</strong>(较重、多决策);(c) <strong>关系</strong>——设计文档可引用多个 ADR。(4) <strong>何时写</strong>——(a) 影响架构/接口/技术栈的决策;(b) 难以逆转的决策;(c) 有争议的决策;(d) <strong>不必</strong>——琐碎的、易改的。(5) <strong>粒度</strong>——(a) 一个决策一篇 ADR(轻量);(b) 简短(半页到一页);(c) 版本控制(与代码同仓库)。(6) <strong>决策的流程</strong>——(a) <strong>明确决策者</strong>(谁拍板);(b) <strong>收集输入</strong>(相关方意见);(c) <strong>评估备选</strong>(权衡矩阵);(d) <strong>决策并记录</strong>;(e) <strong>沟通</strong>(让相关方知晓);(f) <strong>定期重审</strong>(条件变化时)。(7) <strong>常见问题</strong>——(a) 不记录(知识流失);(b) 只记决策不记理由与备选(无法复盘);(c) 过长(无人读);(d) 不更新(决策已变但记录未改);(e) 无人负责(决策模糊)。(8) <strong>工具</strong>——(a) Markdown 文件(docs/adr/)与代码同仓库;(b) 模板化;(c) 编号与索引。<strong>与其他问题的关系</strong>——(a) 与推动方案(决策的沟通);(b) 与 disagree and commit(决策后执行);(c) 与技术传承(知识沉淀)。<strong>度量</strong>——(a) ADR 覆盖率(重大决策有记录的比例);(b) 决策重审频率;(c) 新人理解历史决策的时间。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>记录未选的备选方案最关键</strong>——避免后人重复讨论;面试中能指出这点是深度理解的标志。② <strong>ADR 轻量、一个决策一篇</strong>——与设计文档分工不同。③ <strong>记录理由使决策可复盘</strong>——条件变化时可重审。④ <strong>明确决策者</strong>——避免模糊责任。⑤ <strong>不必为琐碎决策写</strong>——否则无人读。⑥ <strong>ADR 需与代码同仓库并版本化</strong>。⑦ <strong>面试要点</strong>——被问怎么做技术决策,应给出'<strong>ADR 结构(背景/决策/备选/理由/后果)+ 明确决策者 + 收集输入 + 定期重审 + 与代码同仓库</strong>';能指出记录备选方案与理由的价值是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕不记录决策理由(无法复盘)
- ✕ADR 写得过长(无人阅读)
🎯 Interviewer Follow-ups
- ?为什么记录'未选的备选方案'很重要?
- ?ADR 与设计文档有何区别?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.