复盘流程:复盘四步法与会议组织

复盘这件事,说起来简单,做起来难。

我在嵌入式行业摸爬滚打十几年,见过太多项目做完就扔到一边的团队。代码跑通了,功能实现了,大家开个庆功宴,然后下一个项目继续踩同样的坑。说实话,这是最可惜的。

为什么?因为经验没有沉淀下来。

今天我就把复盘的核心流程拆开来讲。你照着做,至少能避免80%的重复错误。

复盘四步法

我个人习惯把复盘分成四个步骤。不多不少,刚好够用。

第一步:回顾目标

很多人觉得这步多余——目标不就在需求文档里吗?

嗯,问题就在这里。文档里的目标和实际执行的目标,往往是两回事。

我在项目中遇到过这样的情况:需求文档写的是「系统响应时间小于100ms」,但开发过程中大家默认成了「界面不卡就行」。结果复盘时才发现,大家对目标的理解根本不在一个频道上。

回顾目标时,你要问三个问题:

  • 原始目标是什么?——翻出项目启动时的文档,白纸黑字写清楚
  • 目标有没有变化?——中途改需求、加功能,目标可能已经漂移了
  • 大家理解一致吗?——项目经理、开发、测试,每个人对目标的认知是否相同
我的小技巧: 复盘前先把原始需求文档打印出来,人手一份。大家看着同一份材料聊,避免「我记得当时说的是...」这种扯皮。

第二步:评估结果

目标定好了,接下来看结果。

评估结果不是简单说「完成了」或「没完成」。你要把结果量化出来。

举个例子:

维度 目标 实际 偏差
响应时间 ≤100ms 85ms 达标
内存占用 ≤256KB 312KB 超标22%
开发周期 8周 11周 延期37.5%
Bug数量 ≤10个 23个 超标130%

你看,数据一摆出来,问题就清晰了。不用争,不用吵,数字说话。

注意: 评估结果时最容易犯的错是「报喜不报忧」。我曾经见过一个团队,复盘时只讲好的,坏的一笔带过。结果呢?下个项目同样的Bug又出现一次。复盘不是表彰大会,是找问题的大会。

第三步:分析原因

这是最核心的一步,也是最难的一步。

为什么?因为人天生会找借口。「时间太紧了」「需求变太多了」「硬件不给力」——这些听起来都像原因,但都不是根本原因。

我建议用「5Why分析法」。就是连续问五个「为什么」,直到找到根因。

举个例子:

问题:内存占用超标22%

Why1:为什么超标? → 因为缓存区开太大了
Why2:为什么开这么大? → 因为怕数据丢失
Why3:为什么怕数据丢失? → 因为没有做流控机制
Why4:为什么没做流控? → 因为设计时没考虑这个场景
Why5:为什么没考虑? → 因为需求评审时遗漏了边界条件

你看,问到第五层,根因就出来了——不是技术问题,是需求评审流程的问题。

分析原因时,我习惯把原因分成三类:

  • 技术原因: 算法选型不对、数据结构不合理、驱动有Bug
  • 流程原因: 评审不充分、测试覆盖不全、沟通不到位
  • 管理原因: 计划不合理、资源不足、优先级混乱

记住: 大部分问题的根因都不是技术问题,而是流程和管理问题。别总想着「换个技术方案就解决了」,那只是治标不治本。

第四步:总结规律

这一步是把经验变成可复用的资产。

总结规律不是写「下次注意」,而是提炼出可以执行的规则。

比如:

  • ❌ 错误的总结:「下次要更仔细」
  • ✅ 正确的总结:「所有涉及DMA的模块,必须做边界测试,测试用例覆盖最大和最小传输长度」

我自己的做法是,每次复盘后输出三样东西:

  1. 一条规则: 以后做类似项目必须遵守的硬性要求
  2. 一个检查清单: 下次启动项目前逐项核对
  3. 一个改进项: 需要修改的流程或工具
我曾经... 在一个项目复盘后,总结了一条规则:「所有中断服务函数中禁止使用printf」。这条规则后来帮我们避免了好几次死机问题。你看,一条简单的规则,价值千金。

复盘会议组织

复盘四步法讲完了,但怎么组织会议也是个技术活。

我参加过很多复盘会,有的开得热火朝天,有的开得昏昏欲睡。区别在哪?

会议前的准备

  • 提前发资料: 至少提前2天把项目数据、问题清单发给大家。别指望会上大家现看
  • 定好角色: 主持人、记录员、计时员。主持人最好不是项目经理,避免主观倾向
  • 定好规则: 不追责、不甩锅、不打断。这三条写在白板上

会议中的节奏

我建议按这个时间分配:

环节 时间 内容
回顾目标 10分钟 主持人宣读原始目标,确认是否有变化
评估结果 15分钟 逐项对比目标与实际,列出偏差
分析原因 30分钟 针对主要偏差,用5Why法深挖根因
总结规律 20分钟 提炼规则、检查清单、改进项
行动计划 15分钟 明确责任人、完成时间、验收标准

总时长控制在90分钟以内。超过这个时间,大家的注意力就开始下降了。

切记: 复盘会不是批斗会。我曾经见过一个项目经理,在会上把开发人员骂得抬不起头。结果呢?下次复盘没人敢说真话了。复盘要的是真相,不是认错。

复盘记录规范

会议开完了,记录怎么写?

很多人写复盘记录,洋洋洒洒几千字,结果没人看。为什么?因为太啰嗦了。

我建议用「一页纸复盘」的格式:

项目名称:智能家居网关V2.0
复盘日期:2024-03-15
参与人员:张三、李四、王五、赵六

一、目标回顾
- 原始目标:响应时间≤100ms,内存≤256KB,8周交付
- 实际变化:第5周新增OTA功能,目标未调整

二、结果评估(关键偏差)
1. 内存超标22%(目标256KB,实际312KB)
2. 开发延期37.5%(目标8周,实际11周)
3. Bug超标130%(目标10个,实际23个)

三、根因分析
1. 内存超标 → 缓存区设计未考虑边界条件 → 需求评审遗漏
2. 开发延期 → OTA功能未纳入计划 → 变更管理流程缺失
3. Bug超标 → 测试用例覆盖不足 → 测试评审流于形式

四、总结规律
1. 规则:所有新增功能必须走变更管理流程
2. 检查清单:需求评审时逐项核对边界条件
3. 改进项:测试用例必须经过三方评审(开发、测试、产品)

五、行动计划
| 改进项 | 责任人 | 完成时间 | 验收标准 |
|--------|--------|----------|----------|
| 建立变更管理流程 | 张三 | 3月30日 | 流程文档+试点运行 |
| 完善需求评审清单 | 李四 | 3月25日 | 清单覆盖所有边界场景 |
| 测试评审制度 | 王五 | 4月5日 | 至少完成一个项目的试点 |

六、遗留问题
- OTA功能的稳定性需要长期跟踪
- 建议在V2.1版本中增加内存监控模块

你看,一页纸,该有的都有了。谁负责、什么时候完成、怎么验收,清清楚楚。

我的习惯: 复盘记录写完后,我会在团队群里发一个「一句话总结」。比如:「本次复盘核心结论:所有新增功能必须走变更管理流程。」这样大家不用看全文,也知道重点在哪。

复盘这件事,说白了就是「把经验变成资产」。

你想想看,一个项目做完了,代码、文档、测试报告都在,但最值钱的东西——经验——却留在每个人的脑子里。复盘就是把这些经验挖出来,变成团队都能用的东西。

我做了十几年嵌入式,最大的体会就是:项目可以失败,但经验不能浪费。

好了,复盘流程就讲到这里。下一章我们聊聊「复盘中的常见陷阱」,到时候我会分享几个我踩过的坑,保证让你少走弯路。