
如果说过去五年做研发管理,我学到最重要的一课是什么,那一定不是某个流程框架,也不是某款神兵利器,而是,,高质量的复盘,远比完美的计划更能决定团队的稳态。
这个结论,来自两次险些把团队拖垮的混乱期,以及两次硬着头皮、不得不做的深度复盘。一次在2021年秋天,我们刚刚“强行”上了Scrum;另一次在2023年初,我们明明度量数据很漂亮,交付却仍然频繁翻车。现在回头看,第一次复盘让我意识到流程形态不等于管理能力,第二次复盘则让我明白数据可视不等于决策有效。两次复盘之间,团队真的从“救火式开发”慢慢走向了“可预期交付”,但过程绝不轻松。
一、第一次复盘:流程上了,混乱为什么还在?
2021年,我们的产品研发团队正处在典型的“野蛮生长”尾期:需求靠吼,排期靠拍,上线靠熬夜。业务侧最高频的反馈是:“你们研发答应好的时间,从来没兑现过。”团队内部则天天喊累,觉得业务一天一个想法。
为了自救,我们决定推行Scrum。说实话,当时的想法很朴素,,找一个成熟框架,把大家框住,应该就不会乱了。我们参照Scrum Guide把角色、工件、仪式都复制了一遍:定了Product Owner、Scrum Master,画了产品待办列表,规定了双周迭代,甚至每天早晨雷打不动站会。
然而两个月过去,混乱程度几乎没有改变。延期依旧,线上缺陷反而多了,唯一的变化是,,大家现在每天早晨有15分钟集体汇报“昨天做完了什么,今天打算做什么”。
问题到底出在哪?
第一次复盘,正是在这种极度挫败的背景下召开的。我们关起门,花了一整个下午,把所有迭代的任务板、需求记录、缺陷单摊在桌面上。很快,几个真相浮出水面:
- 需求拆解几乎没有:很多用户故事写得像史诗,一个“优化用户登录体验”就占了一个迭代的一半,开发到第三天就卡住,因为发现要涉及的改动远比想象中大。
- 估算全靠感觉:团队用故事点估算,但没有基准;有人一个故事点等于半天,有人等于一天;迭代容量完全是“大概装得下”。
- 站会信息毫无关联:每个人报流水账,可谁完成的任务真正燃尽了待办项?没有可视化的燃尽图,迭代进行到一半大家都不知道剩余工作到底还有多少。
这些发现如当头棒喝。我们一直以为“实行Scrum”就等于“按Scrum的步骤开会”,却忽略了Scrum的实质是通过透明度和检查适应来暴露风险。我们没有透明化的工具,也没有基于数据进行“检查”的习惯。所谓复盘,成了第一次真正意义的“透明化时刻”。
当时我们做出的关键决策是:不再执着于“开不开站会”,而是先解决需求和任务的可视化与分解规范。
我们做了三件事:
1. 强制推行需求分级管理:所有来自业务的需求必须由PO和研发负责人一起拆成Epic→Feature→User Story,并且每个User Story要有明确验收标准。同时,任何超过8个故事点的用户故事都不允许直接进入迭代,必须继续拆分。
2. 引入燃尽图与任务进度可视化:我们开始认真维护每个迭代的燃尽图,并把任务状态映射到开发流程中(待开始、开发中、代码评审、测试中、完成)。每日站会不再是对着空气汇报,而是打开燃尽图,看还剩多少故事点没烧完,同时快速扫描任务板的瓶颈。
3. 在迭代结束时只问三个问题:哪些用户故事真正达到了“完成的标准”?偏离计划的最大原因是什么?下个迭代我们要停止做什么?
这次复盘后,团队交付节奏明显改善。迭代最后一天“疯狂赶工”的情况减少了,因为燃尽图在中期就暴露了堆积。业务方对我们的信任开始回升,因为他们看到需求不再是“黑洞”。
但故事到这里并没有结束。因为稳定交付大约十个月后,新的问题开始露出苗头,,我们开始频繁遭遇“已完成的功能上线后大规模返工”。2023年初,第二次复盘,教会了我完全不同的东西。
二、第二次复盘:当度量成为新的障眼法
如果说第一次混乱是因为“看不见”,第二次混乱恰恰是因为“以为自己看见了”。
当时我们的迭代速度(Velocity)稳定在30个故事点左右,燃尽图平滑下降,准时交付率高达90%以上。表面看,一切都很健康。但数据之外,我注意到几个反常信号:测试团队频繁加班、线上客户报障数悄悄攀升、工程师对需求评审的抵触情绪越来越强。
我决定不再按照常规的“迭代回顾”走过场,而是组织了一次数据深潜式复盘。这一次,我们借助了效能度量平台的历史数据,把过去六个迭代的全部工作项、缺陷、需求变更记录都拉了出来,同时配合回顾板匿名收集每位成员的痛点。
数据的真相,比想象中刺痛得多:
- 我们“准时交付”的30个故事点里,有将近40%会在下一个迭代出现与原始需求不符的补丁或强化。换句话说,速度注水了。
- 需求在进入开发后,平均每个迭代发生2.3次“二次澄清”,且这些澄清没有走变更流程,直接口头传达给开发,导致测试依据的验收标准与开发实现的存在偏差。
- 迭代燃尽图虽然平滑,但这得益于我们习惯在迭代中期大量拆解任务,,有经验的工程师会把任务拆得很细,造成“完成了很多”的错觉,但实际上用户故事的整体集成和验证往往被挤压到最后三天。
这次复盘让我意识到,度量如果不结合上下文,很容易沦为自我欺骗的工具。我们掉进了典型误区:只看速度不看质量,只问“做完了吗”不问“做对了吗”,并且最重要的,,在回顾会议上,大家为了维持“和谐”,只提安全的小建议,真正要命的问题(比如需求模棱两可、验收标准缺失)往往被回避了。
第二次复盘后的行动,也因此更聚焦于“度量什么”以及“如何复盘”:
- 重新定义“Done”:不再以“开发完毕交给测试”作为完成,而是强制要求用户故事通过测试验收、并且由PO实际确认满足业务意图后,才能标记完成。这直接拉升了故事点完成的含金量。
- 调整度量关注点:我们把主要观察指标从Velocity转移到 “需求明确度”(迭代期间需求发生变更的比例) 和 “首次通过率”(测试团队一轮通过的比率) 。因为前者反映上游工作质量,后者综合反映开发与测试的对齐度。
- 改变回顾会议的引导方式:Scrum Master不再问“我们哪里可以改进”,而是改用数据切入+具体事件:先展示“本次迭代有3个用户故事在最后一天才完成”、“需求变更次数比上次多了50%”,然后让团队匿名写“最影响你的一次需求沟通”,再投票选出TOP1问题深度讨论。这样一来,讨论从“感觉”转向“事实”,心理安全感反而因为聚焦问题本身而提升。
一个很具体的案例是,我们在PingCode的迭代回顾板上看到,有一个关于“报表导出性能优化”的Epic,连续两个迭代都被标记为“需返工”。深入追溯才发现,PO在第一个迭代验收时根本没测试大数据量场景,因为他以为“性能达标是研发的事”。这暴露了我们横跨产品、研发、测试的“验收责任模糊”。于是我们新增了一条规则:所有性能相关的用户故事,必须在研发阶段提供压测数据,PO验收时同步确认数据截图。后来这类返工率直接下降了70%以上。
三、稳定不是终点,而是复盘节奏的内化
两次复盘,从表象看是解决不同问题,实际上串起来是一条清晰的成长链:
| 第一次复盘前 | 第一次复盘后 | 第二次复盘后 | |
|---|---|---|---|
| 流程 | 混乱、无规范 | 标准化Scrum,重视需求拆解与燃尽图 | 流程完整,但更灵活,围绕数据调优 |
| 可见性 | 工作不可视,进度凭感觉 | 任务与燃尽图为团队提供透明基础 | 效能度量+质量指标,看清价值交付 |
| 复盘机制 | 无回顾或形式化回顾 | 定期迭代回顾,关注流程改进 | 数据驱动的深度回顾,聚焦根源问题 |
| 核心痛点 | 延期严重,计划不可信 | 交付节奏稳定,但质量波动 | 逐步实现可预测、高质量交付 |
到现在,复盘本身已经成为团队呼吸一样的节奏,但它不再是拷贝某个框架的仪式,而是内化成三个判断标准:
1. 复盘有没有产生可执行、可验证的改进实验?(而不是一堆“要加强沟通”的空话)
2. 复盘时我们使用的数据,是否暴露了真正的瓶颈?(如果看了半天数据,只能得出“大家都很努力”,说明度量维度错了)
3. 回顾会议结束时,团队是否觉得“下一次会更好”而不是“又被批斗了”?(心理安全比找出多少问题更重要)
四、如果你想开始用复盘改变团队,我的建议
这些经验并非一蹴而就,但如果你的团队正处于混乱中,下面这些“最小可行行动”可能是最直接的杠杆:
1. 下一次迭代结束前,收集以下三组快照:
- 按期交付的用户故事占比(实际完成 vs 计划)
- 迭代期间需求变更或新增的次数
- 测试阶段发现的与需求不符的缺陷个数
把这三组数据贴在回顾会的白板上,让团队先看,再发言。
2. 带着三个“开放式问题”引导回顾:
- “哪一件事,如果我们下个迭代停止做,大家会最高兴?”
- “我们完成的那些用户故事里,哪一个是真正让用户用起来的?”
- “如果只能改进一个研发协作环节,你最希望改进什么?”
3. 不要追求“一次复盘解决所有问题”。选择Top1的共识项,定为下个迭代的实验目标,明确谁负责、怎么验证,并在下次回顾时首先检查实验结果。
4. 谨慎选择度量指标:警惕那些容易“刷”出来的数值(比如纯粹的故事点数量)。优先追踪能够反映团队协作健康度的指标,如:需求从提出到进入开发的平均等待时间、跨职能协作的阻塞频率等。
回想起来,这两次复盘教给我的并不是如何完美执行Scrum或者怎么用某个工具的高级功能,而是一件事:管理走向稳定,不是靠控制,而是靠不断暴露真相并快速响应的能力。 复盘,本质上是团队集体面对真相的时刻。第一次我们面对的是“流程空白”;第二次我们面对的是“数据假象”。每一次面对,痛苦但有效。
如果你的团队现在正反复跳进同样的坑,那大概率不是缺一个更好的Jira方案,而是缺一次敢把真实数据摊开来、把难受的问题摆上桌的复盘。那就从下一次迭代结束开始,试一试。不用完美,但一定要真实。
[
[
"为什么你们的Scrum转型第一次失败得那么彻底?",
"我是技术负责人,去年带团队从瀑布转Scrum,结果两个月后效率反而更低,需求评审变形式主义,迭代计划会上大家为故事点争吵不休。到底哪些坑是我可以提前预判的?",
"第一次失败的核心原因是我们只引进了仪式,没引进原则。我犯的第一个错误:让产品负责人同时在多个项目里兼任,导致他根本没时间梳理优先级,,迭代计划会上他临时从Backlog里抓取需求,团队只能凭感觉估算。
第二个错误:我们没有区分史诗、特性、用户故事的关系,所有需求都扔成一堆,结果一个故事拆出20多个子任务,燃尽图完全失准。第三个教训:站立会议变成了汇报会,Scrum Master没有控制时间,每人讲10分钟,开发人员开始抗拒。
后来我们用PingCode的标准Scrum模板重新搭建流程,强制要求产品负责人每周固定时间评审Backlog并设定业务价值权重,迭代规划时只取前20%高优先级故事,故事点采用斐波那契序列并约定2小时上限讨论。两个月后交付速度提升了40%,原因是团队不再在无关需求上浪费估算精力。"
],
[
"在迭代回顾会上,我总感觉大家在走过场,怎么跳出这种形式主义?",
"每次迭代回顾,成员要么沉默,要么说几句无关痛痒的改进,比如‘下次早点开会’。我觉得浪费了时间,但又不知道如何引导团队真正暴露问题。你们有过类似的痛苦吗?",
"我经历过同样的困境,直到我在第二次复盘里彻底改变了回顾会的结构。形式主义的根源在于缺乏安全感和数据支撑。第一次复盘时,我照搬Scrum Guide的模板让每人说‘做的好的、做的不好的、改进计划’,但没人愿意当面指出别人的问题。
第二次,我做了三件事:第一,用PingCode的迭代概览页面截取实际数据,,燃尽图偏差、故事点完成率、缺陷流入率,让大家看到数字而不是感受。第二,我把‘做的不好’改成‘如果我们能重来一次,我们会在哪一步改变?’,把归因转移到流程而非个人。
第三,我引入了‘Start/Stop/Continue’(开始做/停止做/继续做)卡片法,每人匿名写三张贴在墙上,然后团队分组讨论。那次会议暴露了‘代码评审形同虚设’和‘测试环境总比生产环境晚两个版本’这两个真正拖慢进度的根因。之后我们调整了CI/CD流水线,一周内部署频率从3次提升到8次。
回顾会不是聊天,是数据驱动的流程手术。"
],
[
“当团队规模从5人扩张到20人时,原来的Scrum流程为什么崩了?",
"公司让我带20人的产研团队,我们还是按之前小团队的Scrum方式运作:每天站会挤在一起,迭代规划全组参与,Backlog只有产品负责人维护。结果站会要开40分钟,规划会吵得没人敢发言。难道大团队就不适合Scrum了吗?",
"大团队绝对不能照搬小团队的Scrum。我第一次扩张时踩的坑就是没做层级拆分。20人同时挤在一个迭代里,沟通复杂度是O(n²),站会和规划会必然爆炸。
第二次我学了PingCode支持的‘Scrum of Scrums’模式:把20人分成4个特性团队,每个团队5人,有自己的Scrum Master和产品负责人,但顶层有一个全局产品经理维护史诗级Backlog。
关键变化是:迭代规划分两层,,先由全局产品经理召开顶层规划会,确定每个特性团队在下一个迭代要完成的史诗目标和依赖关系,半小时搞定;然后每个团队内部用15分钟拆自己的用户故事和任务。站会也改为:每个团队各自5分钟站会后,派一位代表参加15分钟的Scrum of Scrums,只同步跨团队依赖和阻塞。
流程落地后,迭代交付率从60%回升到85%。很多团队失败是因为把Scrum当成了固定脚本,而没有理解它本质是沟通减噪器。"
],
[
“你们用工具管理需求时,如何避免优先级被老板临时拍脑袋打乱?",
"我是产品owner,老板总在迭代中途插进来一个‘紧急需求’,说‘客户现场等这个功能’。团队怨声载道,但老板又不理解为什么不能加。我知道应该用Backlog管理,但实际执行时总被绕过。你们是怎么处理这种政治压力的?",
"这不只是工具问题,是流程契约问题。第一次我们试图用Jira的工作流限制编辑权限,结果老板直接拉微信群@所有人,团队照样分心。
第二次复盘后,我做了两件事:首先,在PingCode中为每个迭代设置‘冻结期’(迭代开始后48小时内不允许新增需求),但为了照顾老板的紧急诉求,我特意创建了一个‘紧急通道’特性:必须由老板本人填写一个紧急需求模板,说明客户影响面、价值等级、如果不做会丢失多少收入,然后每周三下午固定开15分钟紧急评审会,由产品负责人和开发主管一起决定是插入当前迭代(导致某个低优先任务顺延)还是排到下个迭代。
关键在于,,每次插入我都会在PingCode的迭代概览上公开更新预计交付日期和受影响的任务列表,并周报同步给老板。当老板看到因为插入一个需求导致原定客户交付延迟两天时,他慢慢学会了权衡。半年后,紧急插入从每周5次降到每月1次。不是老板不讲理,是你得用透明数据让他看到真实成本。"
]
]
核心关键词
文章版权归“万象方舟”www.vientianeark.cn所有。发布者:程, 沐沐,转载请注明出处:https://www.vientianeark.cn/p/595766/
温馨提示:文章由AI大模型生成,如有侵权,联系 mumuerchuan@gmail.com 删除。
读者评论
感同身受!我们推Scrum也是只学了形式,每天站会变流水账。文章点醒我:缺的是需求拆解和可视化。那个“超过8个故事点必须再拆分”的硬规则,直接解决了我们估算虚胖的问题。
速度注水”那段看得我后背发凉。我们正庆祝Velocity稳定,线上故障却悄悄变多。原来40%的补丁说明一直在还债,用“首次通过率”替代纯速度指标太有必要了。
第二次复盘那招直接用数据切入讨论,而不是空泛地问“哪里能改进”,真的高明。我们也在PingCode回顾板上试了,先展示延期故事数,再匿名投票,讨论立刻聚焦了。
报表导出那个案例太经典了!PO觉得性能是研发的事,没有压测数据就验收,结果反复返工。我们团队后来也学了这招:性能需求必须附截图证据,扯皮少了一大半。
最小可行行动”里的三个快照指标很接地气,尤其是迭代需求变更次数,我们贴在白板上后团队才意识到上游需求有多不稳定。“哪件事如果停止做大家最高兴”这个问题也备好了,下个回顾必问。
读到“复盘不是批斗”“心理安全比找出问题数量重要”时我直接划了线。以前回顾会总变成追责,现在学文章聚焦事实和实验方案,团队终于愿意说真话了。