卖桃者说
池建强
极客时间创始人、墨问西东创始人
30376 人已学习
免费领取
课程目录
已完结/共 523 讲
第一季 (135讲)
第二季 (134讲)
第三季 (124讲)
第四季 (90讲)
卖桃者说
15
15
1.0x
00:00/13:58
登录|注册

第515期|怎样才能正确地对项目进行复盘总结?

讲述:李佳大小:12.77M时长:13:58
你好,这里是卖桃者说。又到了每周五的精选时间,今天我为你推荐一篇和项目复盘有关的内容,来自宝玉老师的《软件工程之美》专栏。
先简单介绍下宝玉老师。他硕士毕业于美国德保罗大学,是团购鼻祖网站 Groupon 资深开发工程师、前上海众游技术总监、微软最有价值技术专家,曾参加中国移动飞信项目的核心开发。
他认为,软件项目中的复盘非常有价值,如果能正确地做好复盘,整个团队都可以得到学习和提升。关于什么是项目复盘,以及具体又该如何做,我们一起来听听宝玉老师是怎么说的。
你好,我是宝玉。相信大家都有这种体验,经历了无数个“996”加班,项目终于成功上线了,也进入了稳定运行阶段,你终于可以松一口气,准备迎接下一个项目的挑战了。
然而,这时还有一件事不要忘记了,那就是对项目复盘,全面总结一下项目过程中的得与失。

什么是项目复盘?

“复盘”本来是围棋术语,表示对弈之后,棋手把下棋的过程重演一遍,看看哪些地方下的好,哪些地方下的不好,有哪些更好的走法。把下棋的过程还原,并且分析、讨论的过程就是复盘。
软件项目中的复盘,也是通过分析、讨论开发中出现的问题,进而总结成功经验,吸取失败教训,提升团队能力。
一次项目过程,自然会有一些做的好的地方,也会犯一些错误,复盘就是要分辨出哪些是好的实践,继续保持;哪些是做的不够好的,找出原因,针对性改进,避免再犯同样的错误。
如果没有这样的项目复盘,那下一次做项目,你还会是用同样的方式来做事情,那恐怕踩过的坑可能还得再踩一遍。
也许你会认为,你们团队也开过项目复盘总结会议,但是似乎没有什么效果,是不是项目复盘并没那么有价值?
并不是项目复盘没有价值,多数情况下,是因为没有做好项目的复盘,反而相当于浪费了一次学习提升的机会。比如说一些常见的存在问题的项目复盘情形:
总结不出来有效的结论
有些团队流水账的回顾了一遍项目过程,感觉似乎有做的不好的地方,但说不上是什么地方做不好,所以也无法进一步的总结。
没做好是客观原因导致的
有些团队在复盘后,将结论归结为是客观原因导致的,比如说:“虽然这次做的不好,只是客户不靠谱,但是下一次遇到一个好客户肯定能做的更好!”,这相当于没有想清楚:是哪里做的不好?为什么做的不好?下一次遇到这样的客户怎么才能做的更好?
知道什么原因,但不知道该怎么办
有些经过分析总结,能找到原因,但不知道如何应对。比如说发现主要原因是客户老变需求导致项目延迟,但是不知道如何应对需求变更。
类似于这样的项目复盘,确实达不到好的总结效果,也难有提升。那么怎么样才能做好项目复盘呢?

如何做好项目复盘?

项目复盘,首先就是知道项目中哪些是做的好的地方,哪些是做的不好的地方,这样才能把做的好的地方继续发扬光大,做的不好的地方进行改进修正。
那怎么样才能知道哪些地方做的好,哪些地方做的不好呢?
只要对比一下你当初制定的项目目标和最终的项目结果,就可以发现差异,通过这些差异,就可以清楚地知道哪些地方是变好了、哪些地方变糟了,比如说项目延期了,功能被砍了,软件质量相比以前的项目质量提升了。
但光知道差异还不够,需要思考背后的原因,比如说为什么会导致项目延期?做了什么事情让软件质量提升了?也就是说,要从这些事情中能总结出来规律,从而知道哪些做法是真正有效的,值得继承或者推广?哪些做法是无效的?
这里就需要结合软件工程的知识来分析,把实践经验概括为普适的理论或者原则。
最后就是要用这些从经验中学到的理论或原则,指导后续的项目开发,决定要停止做什么,开始做出怎样的改变,以及继续做哪些事。
联想公司对于项目的复盘总结了四个步骤,同样适用于软件项目,我们可以借鉴它的做法,采用四个基本的步骤来进行:
回顾项目目标;
评估项目结果;
分析原因;
总结规律,落实行动。
接下来我就这四个步骤来分别讲一下,如何对项目进行复盘。
第一步:回顾项目目标
每个项目在最开始的时候都会确定项目的目标,所以复盘的第一步,就是要回顾最初的项目目标,方便对最终结果进行评估。
在这个环节,需要你描述清楚当初定的项目目标是什么?项目计划中制定的里程碑是什么?其中的关键就在于,对目标的描述要尽可能准确和客观。
因为只有做到准确和客观,在后续你才能对目标的完成情况进行准确地评估。
比如说:“我们的目标是做一款伟大的产品”,就不算是准确客观,因为“伟大”是一个根据主观评判的形容词,每个人对伟大的理解是不同的。
你需要将这类形容词换成具体可考核的检查项,比如,可以总结出类似于这样的目标:“三个月时间完成一款在线学习网站产品,包括登录、在线学习、留言等主要功能模块,上线后的 Bug 比例低于上一款产品。”
最后再加上最初定的里程碑,比如说:“两个月开始内部测试,三个月正式上线。”这样,大家就可以对目标的完成情况有清晰地认识。
第二步:评估项目结果
在对项目的目标进行回顾后,就可以来看看项目的实际结果和当初的目标有多少差异了。这里需要列出两方面的差异:好的差异和坏的差异。
比如说项目的结果是:我们花了四个月时间完成整体项目,三个月才开始内部测试。原有功能作出了调整,学生留言老师回复的功能改成了类似于讨论版,大家一起讨论的功能,上线后质量稳定,Bug 比例低于上一款产品。
好的差异:
上线后质量很稳定,严重 Bug 很少;
没有出现需求遗漏,开发和测试能及时同步需求的变更。
坏的差异:
功能发生了变化,中间有比较多的需求变更;
项目发生了延期。
可以鼓励团队成员一起列出项目中好的差异和坏的差异。需要注意的是,在这一步,只需要客观描述结果就好了,不需要去分析原因,不然大家很容易思维发散,过早陷入对细节的讨论。
第三步:分析原因
在结果评估完了后,就可以来分析原因了,分析的时候也可以主要从两方面着手:是什么原因导致了好的差异,什么原因导致了坏的差异。
比如说,导致好的差异的原因:
增加了自动化测试代码的比例,改进了开发流程,代码合并之前有代码审核,并且要通过自动化测试;
增加了工具的使用,比如持续集成系统的搭建,每次提交后可以清楚的看到测试结果;
改进了项目流程,对于所有的需求细分后,都创建成了 Ticket,基于任务跟踪系统记录了起来,这样可以及时了解任务进程,有需求变更的情况,相关人员也能及时了解。
比如说,导致坏的差异的原因:
老板对于产品干预过多,导致需求变更频繁;
项目周期过长,难以响应需求的变化;
设计时没有考虑到需求的变更,导致需求变更发生后,很多设计需要修改,最终导致延期。
在分析的时候,可以营造一个宽松的氛围,让团队成员能畅所欲言,讨论时要做到对事不对人,尽可能客观地分析清楚成功和失败的原因。只有分析清楚原因,才能总结出规律。
第四步:总结规律,落实行动
分析出原因后还不够,最重要的是,还需要去总结背后的规律,才能真正把成功或失败的经验变成个人和团队的能力。这里也可以充分运用你在《软件工程之美》专栏中学习到的知识,去帮助你总结规律。
比如说,接着上面的案例你可以继续总结规律:
需求变更是导致项目延期的主要源头,需要在后续项目中控制好需求的变更;
自动化测试加上代码审查,再配合持续集成工具,可以有效提升产品质量;
任务跟踪系统可以方便地跟踪需求的执行情况,也能保证项目成员能及时同步需求的变更。
总结出来规律后,还需要落实成行动,才能真正做出有效的改变,帮助你在以后的项目中做的更好。落实行动的关键就是:对于好的实践,继续保持;对于不好的实践,停止并寻求改变。
就上面的案例来说,针对上面总结出来的规律,你可以继续整理出需要在后续项目中落实成行动的事项:
参考专栏文章《20 | 如何应对让人头疼的需求变更问题?》中的解决方案,针对需求变更,我们将缩短项目周期,采用快速迭代的开发模式,及时响应需求变更,同时在一个迭代中,没有特殊情况,不做需求上的变更,有变更放到下一个迭代中;
继续增加自动化测试代码的比例,代码在合并前要对代码进行审查,用好持续集成工具;
继续使用任务跟踪系统,对需求任务进行跟踪,并且可以尝试对于一些临时性的任务也用任务跟踪系统跟踪起来。
通过分析目标、评估结果、分析原因和总结规律这四个步骤对项目复盘,能有效帮助你发现项目中做的好的地方和做的不好的地方,找出背后的原因,最终总结出来规律,落实成行动,做出积极的改变,把经验变成个人和团队的能力。

总结

项目复盘,可以帮助你从刚刚经历过的软件项目中,总结成功经验,吸取失败教训。为什么在同样的工作时间内,有的人就是成长的比较快,收获更多的经验能力?其实他们就像优秀的棋手,通过不断地对做过的事情进行总结复盘,来快速提升自己的能力。
项目复盘主要通过四个步骤进行:回顾项目目标、评估项目结果、分析原因、总结规律落实行动。
另外你需要注意的是,对于项目的复盘,并不是说只有项目快结束了才要去做,日常项目中遇到一些特殊的事情,比如线上故障,也可以及时总结复盘,预防类似的事情再次发生;在每一个迭代结束之后,都可以阶段性的复盘,比如说敏捷开发中每个 Sprint 的项目回顾会议;在整个项目结束的时候进行全面的项目复盘。
在项目复盘的形式上,可以通过团队会议的形式来进行,但是要想做到会议有效率,还需要在会议之前就做好准备工作,事先收集内容;会议进行中要有人组织引导大家积极发言讨论,避免陷入细节的争吵中,更要避免互相甩锅、人身攻击等极端情况发生;会议后,要落实到行动。
关于项目复盘会议,我觉得阿里的这篇文章写的非常好:《开会 = 浪费时间?阿里技术团队这样开项目复盘会》,你可以作为参考。
希望你也可以不断地对做过的事、参与的项目进行总结复盘,把经验变成能力。

课后思考

你平时都是如何对项目进行复盘总结的?你觉得哪些地方可以做的更好?你有哪些好的经验可以和大家一起分享讨论的?
“复盘做得好,成长少不了”。内容听完了,关于项目复盘,你都有哪些收获呢?欢迎在留言区一起交流讨论。
卖桃者说,咱们下周见。
(策划:夏天;编辑:夏天) 
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《卖桃者说》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 李洪亮
    项目复盘不是走流水账和追究责任,而是从失败中总结经验教训,也可以不断优化和总结复盘流程,让团队的复盘流程化标准化
    1
  • 李叶
    改变流水账似的复盘,回顾目标,整理结果,分析原因,总结规律,落实行动
收起评论
大纲
固定大纲
什么是项目复盘?
如何做好项目复盘?
总结
课后思考
显示
设置
留言
2
收藏
80
沉浸
阅读
分享
手机端
快捷键
回顶部