3158 字
约 10 分钟
17
S18-A14 · 事故复盘的组织:怎么开成不追责又有改进

第一次复盘会开到一半,有人问"这个操作是谁执行的",会议室安静了十秒。第二次同类事故,当事人说自己那天在休假,什么都没看到;再下一次,时间线里出现了一段没人解释的空白。

复盘会变成追责会,不是因为有人想追责,而是因为会议没有产出结构,讨论自然滑向最容易归因的地方——人。

复盘的组织设计,要解决的就是这件事:让人愿意说,同时不让"不追责"变成"不改进"。


1. 三样产出,缺一样就等于白开

产出 具体形态 缺了会怎样
时间线 带证据来源的事件序列,精确到能排序 讨论变成各人记忆的拼接,因果颠倒
判据缺口 人在当时缺了哪条信息、缺了哪个信号 结论落在"下次注意",无法改动任何东西
可执行改动 有 owner、有截止日、能验证的条目 会开得很好,行为不变

三者是一条链:时间线给事实,缺口给解释,改动切断复发路径。只有时间线,产出的是事故说明;只有缺口,产出的是一次情绪释放。


2. "不追责"的真实含义

不追责常被误解成"不记录、不点名、不写细节"。这会让复盘失去解释力。真实含义是三条分开处理的东西:

层面 处理方式 边界
事实 完整记录,含操作者与操作时刻 记录不等于评价
判断 讨论"当时掌握的信息下是否合理" 不用事后信息评判当时决策
行为后果 故意违规、隐瞒、绕过流程另案处理 这一条必须事先说清,否则"不追责"是假的

第三行是"不追责"可信的前提:不敢写"隐瞒要处理",这句话在当事人听来就是"这次先骗过去";而把所有行为都归因于系统,真正的侥幸操作反而被免责。

─── 复盘开场必须说的三句话(占位)

1. 今天只讨论"当时看到什么、为什么这样判断",不评价人。
2. 故意违规与隐瞒不在此列,按 XX 流程另案处理,这条事先讲清。

3. 时间线精确到什么粒度

粒度 适用场景 代价
分钟级 有明确变更、有告警、恢复过程有人工介入 整理成本高,需要多源对齐
事件级(阶段) 无外部影响、过程简单、以流程问题为主 容易掩盖顺序,因果判断变粗
秒级 并发竞争、超时叠加类,顺序决定结论 只在少数事故里值得

粒度选择的标准不是"越细越好",而是结论是否依赖顺序:结论若是"没人把告警转成工单",分钟级无收益;若是"回滚与扩容并发导致状态错乱",秒级才有意义。

时间线里的每条事件都要带证据来源(日志、指标、发布记录、工单时间)。无证据的推测单列一节,不混进时间线——混进去之后,后面所有推理都建立在一个可能错误的顺序上。


4. 判据缺口比"人为失误"更有解释力

"人为失误"是个结论终止符:它一旦写进纪要,讨论就停了。而它几乎从不是真实原因——人在当时的信息条件下做了一个合理决策,只是那个决策在事后看来是错的。

把"失误"翻译成缺口,有四类:

缺口类型 提问方式 例子
信息缺口 当时看不到什么? 面板没显示下游超时,只显示本服务 QPS
判据缺口 看到了但不知道算不算异常? 延迟从 200ms 涨到 400ms,没有阈值定义
时间缺口 需要在几秒内决定,但没人能在几秒内确认? 自动降级缺失,只能人工判断
─── 把"失误"改写成缺口(占位)

原句: 值班人误判为流量抖动,延迟 20 分钟才升级。
改写: 当时面板只有 QPS 与 CPU,无下游超时指标(信息缺口);
      延迟阈值未定义,400ms 在历史区间内(判据缺口);
      升级对象是"主管",非角色,且无备份人(流程缺口)。
改动: 补下游超时指标 / 定义 P99 阈值 / 升级对象改为角色 + 备份人。

三行对应三个 owner、三种验证方式;原句只能改出"加强判断"——那不是改动。


5. 五个为什么的失效与替代

五个为什么在机制简单的事故里有效,在系统型事故里会退化成猜测链:每层答案由会上最会说话的人提供,越往下越像编故事,最后停在"管理不到位"。

追问方式 失效原因 替代做法
连环为什么 每层答案无证据约束,可无限发散 只追问"这一步的证据是什么"
找"根本原因" 复杂系统里通常没有单一根因 找"必要条件的集合",逐个能否定

替代方法叫决策复现:在时间线的每个关键节点上问三件事——当时有哪些选项?当事人依据什么排除了其他选项?要改变这个选择,需要哪个信息在当时就存在?第三问直接给出改动项。


6. 参与者与会怎么开

角色 必须到场的原因 不承担
当事人(操作者/决策者) 只有他知道当时屏幕上有什么 不承担被评价的压力
相邻系统 owner 判断影响面与误判来源 不承担本系统的修复
值班人 提供响应时序与升级判断 不承担根因修复

会议运行有两条硬规则:先讲时间线,后讨论原因(顺序颠倒会让讨论提前进入归因);当事人先讲,其他人后问(否则当事人只剩辩解的位置)。

管理者在场必要,但发言要靠后:他先表态,会议就会围绕他的判断收敛。


7. Action item 的质量判据与关闭联动

判据 不合格的样子 合格的样子
有唯一 owner "后端组跟进" "ROLE_A 在 11-20 前完成"
可验证 "加强监控" "新增下游超时告警,注入延迟可触发"
能失败 无论做没做都算完成 验收时能明确判定未达成
有时间盒 "尽快" 与事故等级匹配的截止日
─── 改进项(占位):进缺陷库,不进复盘文档
- id: AI-2317
  from: INC-2311
  owner: ROLE_A
  due: 2026-11-20
  change: "新增下游超时指标 + P99 阈值告警"
  verify: "注入 500ms 延迟,告警在 2 分钟内触发"
  tier: L1            // 走对应的变更级别,不额外开审批
  status: open

关键在最后两行:改进项本身就是变更,走变更分级而不是走"复盘文档"。留在文档里的改进项,完成率取决于有人想不想得起来;进了缺陷库并绑定 owner 的才会被排期。

关闭判据只有一条:验证动作被独立执行过一次;owner 说"已完成"不算关闭。


8. 同源聚合与频率匹配

单次复盘只看得到个案;同类事故反复发生,根因往往在流程:同一类缺口被三个团队各修一遍,第四次换个形态又回来了。

─── 同源聚合的标签方案(占位)

incident: INC-2311
labels:
  trigger:   [deploy, config-change]       // 触发面
  gap:       [missing-metric, no-threshold] // 缺口类型
  impact:    [latency, no-user-loss]        // 影响面
─── 每季度按 gap 聚合一次,而不是按团队聚合

按缺口类型聚合,才能看出"缺指标"这类问题是不是系统性的。按团队聚合只会得到三份互相独立的整改计划。

复盘频率要与事故量匹配:事故多而复盘少,只处理了症状;事故少而复盘重(每次两小时),会让人开始隐瞒小事故。小事故降级为异步记录,会议时间留给有缺口可挖的那几次。


9. 对外口径与对内真相

两者可以不同,但不可以矛盾:对外"部分用户短时受影响"、对内"影响 12% 请求、8 分钟"是允许的;对外"未影响用户"、对内"错误率 30%",一旦被对照,之后所有对外说明都失去可信度。

─── 对外口径(占位):三句话结构

1. 现象与范围:什么功能、多长时间、大致比例
2. 已采取动作:已恢复 / 已回滚 / 已加限制

对外的每一句都要能在对内文档里找到对应事实。做不到这一条时,正确的动作是缩小对外承诺,而不是改写对内记录。


10. 度量:四个能改变决策的数

指标 口径 用来决定什么
action 完成率 到期已验收的比例 复盘是否只是文档生产
同源复发率 相同 gap 标签的事故占比 改动是否切在了机制上
复盘到落地时长 会议到验证通过的中位数 改进项是否被排期
参与人数变化 同类事故的到会人数趋势 会议是否已让人回避

最后一项是软信号但很灵敏:同类事故的到会人数逐次减少,通常不是"大家懂了",而是"说了也没用"。


11. 排错:复盘开坏的六种现场

现象 真实成因 处理方向
时间线里出现空白段 当事人不在场或不敢讲 补当事人,先讲后问
结论停在"人为失误" 没有缺口分类框架 用四类缺口改写结论
改进项全是"加强" 无验收判据 每条改动必须能被注入验证
每次都是同一批人发言 会议结构让管理者先表态 调整发言顺序

12. 边界:什么时候完整复盘是过度设计

场景 为什么可降级 降级形态
无用户影响的小故障 判据缺口通常是已知的 一页记录:现象、动作、是否需改动
纯外部依赖导致的不可控事故 内部无改动空间 记录依赖方 SLA 与降级策略是否生效
高压交付期 深度复盘会被挤压成形式 先记录,两周内补一次 30 分钟复盘

判断口径:**降级的唯一合法理由是"这次挖不出新的判据缺口",不是"没时间"。**用没时间降级,同一个缺口会在下季度以另一种形态回来。


13. 自测

  1. 只有时间线没有判据缺口的复盘,产出的是什么?
  2. "不追责"必须配上哪一条边界才可信?
  3. 时间线该精确到分钟级还是事件级,取决于什么?
  4. 把"人为失误"改写成缺口,能多得到什么?
  5. 改进项为什么要进缺陷库并定变更级别,而不是留在复盘文档里?
  6. 什么情况下,完整复盘可以合法降级为简要记录?
S18-A14 · 事故复盘的组织:怎么开成不追责又有改进
https://www.clxhxhhr.top/posts/6262/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。