复盘的背景

“复盘”这个词最早来自棋类术语,也成“复局”,指对局完毕后,复演该盘棋的记录,以检查对局中对弈者的优劣与得失关键,有效地加深对这盘对弈的印象,也可以找出双方攻守的漏洞。

复盘的定义

复盘的价值

复盘的类型和特性(时间维度、用户属性)

复盘的执行(如何把复盘做好)

常见复盘角度

四部曲复盘法

常见项目复盘提纲

  1. 目标达成度
    • 我们的产品要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
    • 我们达到目标了么?(原计划的功能做到了几个?按照原计划交付时间交付了么?)
    • 用户量,用户对重要功能的接受程度和我们实现的预想一致么?我们离目标更近了么?(需要上线后观察再回答)
  2. 计划执行情况
    • 开发前,是否有充足的时间来做计划?
    • 团队在计划阶段如何解决同事们对于计划的不同意见的?
    • 你原计划的工作是否最后都做完了?如果由没做完的,为什么?
    • 有没有发现你做了一些时候看来没必要或没多大价值的事?
    • 是否每一项产品需求都有清晰定义和衡量的交付成果?
    • 是否项目的整个计划都按计划进行?项目出了什么意外?有什么风险是当时没有预估到的?为什么没有预估到
    • 在计划中有没有留下缓冲区,缓冲区有作用吗?
    • 将来的计划会做什么修改?
  3. 资源协调情况
    • 我们有足够的资源来完成这个项目吗?
    • 项目所需时间和其他资源是如何估计的?精度如何?
    • 测试的时间、人力和软件/硬件资源是否足够?对于那些不需要编程的资源(产品设计/文案/运营策略)是否低估了难度?
    • 你有没有感到你做的事情可以让别人来做(更有效女)?
  4. 变更管理
    • 是否存在需求变更?变更了几次?每次变更的原因是什么?
    • 需求变更时,是否每个相关的员工都及时知道了变更的消息?
    • 我们采用什么方法来决定每次变更,是“推迟”还是“必须实现”?
    • 变更的出口条件(也就是什么叫“改好了”)有清晰的定义吗?
    • 对于可能的变更是否提前制定应急计划?
    • 员工是否能够有效地处理意料之外的工作变更?
  5. 从设计到开发
    • 产品设计工作在什么时候,由谁来完成?是合适的时间、合适的人么?
    • 产品设计工作有没有碰到模棱两可的情况,团队是如何解决的?
    • 团队是否运用单元测试(Unit Test),测试驱动开发(TDD)、UML、LINT或其他工具来帮助编码?这些工具有效么?
    • 什么功能产生的BUG最多,为什么?
    • 在发布之后发现了什么重要的BUG?为什么我们在设计/开发的时候没有想到这些情况?(需要上线后观察再回答)
    • 代码走查(Code Review)是如何进行的?是否严格执行了代码规范?
  6. 从测试到发布
    • 团队是否有一个测试计划?这样的计划是否有效?
    • 是否进行了正式的验收测试?
    • 团队是否有测试工具来帮助测试?效果如何?
    • 团队是如何测试并跟踪产品开发效果的?从产品实际运行的结果来看,这些测试工具有用吗?应该有哪些改进?
    • 在发布的过程中发现了哪些意外问题?如何解决的,后续如何避免?
  7. 团队协作
    • 团队的每个角色是如何确定的,是不是人尽其才?
    • 项目执行过程中是否有团队成员并更?变更是否带来问题?是如何解决的?
    • 团队成员之间有互相帮助吗?
    • 当出现需求描述、项目管理、合作方面的问题时,团队成员如何解决问题?
  8. 总结
    • 关于以上问题,有什么经验教训?如果历史重来一遍,我们会做什么改进?
    • 你觉得团队目前处于“萌芽/磨合/规范/创造”阶段的哪一个阶段?为什么?
    • 你觉得团队在这个项目相比前一个项目有什么改进吗?
    • 你觉得目前最需要改进的一个方面是什么?

按照流程的复盘

  1. 项目的出发点:需求目的是否准确,回头来看对问题的分析准不准确
  2. 项目的解决思路:当时为什么按照这个思路来设计,现在来看,是否有更好的解决思路
  3. 设计细节:规则和流程设计上有没有漏洞?有没有优化的空间让效果更好?当时为什么没有发现这些?
  4. 项目管理和执行:人员安排上有没有不足?数据需求是否确认好?沟通协调是否有不足?是否延期及原因;
  5. 数据表现分析:是否达到预期?没有的话是主观原因还是客观原因?下一步如何做?继续尝试还是放弃