有效复盘:程序员自我增强的杀手锏
共 2594字,需浏览 6分钟
·
2021-11-03 16:48
链接每一位开发者,让编程更有趣儿!关注
转载自Duing(ID:duyi-duing)
同样都是敲代码,为什么别人一个月工资五万,你一个月却只拿五千?是单纯在找工作的时候运气不佳?还是因为技术水平有差别?那些被大众膜拜信仰的技术大神到底牛在哪里,现状已定,普通程序员是否还有机会逆袭?看完今天的这篇文章,或许你能从中找到答案。
作为优秀的程序员,必须拥有一项非常重要的能力-复盘。 如果不经过复盘,没有能够从经验中真正学到东西,用来指导自己以后的行动,那所谓成长,也就不过是无根之本。 不过,也经常有人问:老是说要复盘,但究竟该怎样去复盘呢?图片源自网络,仅做配文展示
01什么才是有效复盘
很多人对复盘有一个误区:认为“复盘”就等于“我做了什么”。
比如:结束了一天的工作,临睡前,总结:今天做了哪些事情?有什么收获?给自己这一天打个分;周末,回顾自己这一周做的事情,发现没有达到预期,反思一下。
是不是时间管理做得不好,没有能够腾出足够的时间?又或者:终于做完了一个项目,开一场总结大会吧。会上,大家凭着回忆和直觉,讲一讲在项目中做得好的经验、做得不好的地方,然后把内容整理下来,封存起来,当成对这个项目的复盘……
这也许是很多人习惯的模式。有用吗?有。但如果只停留在这样的程度,是远远不够的。
为什么呢?
图片源自网络,仅做配文展示
复盘的真正目的,是让自己把过去的每一天、每一次行动、每一个任务,都变成自己的养分,把它们吸收,化为己用,让自己比起过去的自己,再多迈出哪怕一步的距离。关键的是:我能够从中获得什么?永远从过去获得力量,来帮助我们更好地面对未来——这才是复盘的意义。
图片源自网络,仅做配文展示 所以,要经常在行动之后去思考:我有没有达成我想要的结果?如果没有,是什么地方产生了阻碍?我如何能够克服它们、调整计划——这是反思。
在整个思考和行动的过程中,你都要始终跳出自己的角度,从第三方的视角审视自己,把自己的所思所想所做记录下来,并加以审视,从中找出自己能够成长的空间和可能性。
在这种情况下,你关注的是什么呢?是成长。也就是“我可以如何变得更好”。
这才是真正有效的复盘。复盘真正的意义,不是关注已经成为过去的过去,而是着眼于未来。
02怎样做好复盘
什么时候做复盘
可以用一句话来概括:切勿操之过急,又要趁热打铁。
切勿操之过急。在问题没有解决影响还在持续时,一切都应以尽快解决故障为中心,这时候不应过多思考复盘的事情,也不要去打断在解决问题的人让他停下来去做复盘相关的讨论。
图片源自网络,仅做配文展示
又要趁热打铁。在故障解决后,就需要立刻启动复盘流程,并尽量在1-2天内完成整个复盘。时间过久热度衰减会导致大家对问题真相探究的兴趣减少,从而降低对细节的记忆和对故障的重视,影响复盘的质量。甚至有时,在没找到真相的空窗期,有些问题还会持续发生,让你手忙脚乱、焦头烂额。
一方面是复盘内容的整理记录。建议使用在线文档,如wiki 或Google doc 等。先由负责人整理文档概要,再由相关人员进行所需信息的补充,必要时可以小范围讨论。尽可能将所有不确定的细节都梳理清晰,并在文档中记录好。
另外是文档整理好之后的宣讲。文档就绪后,召集产品、技术、测试、运维等相关人员和主管,需要时邀请受影响的业务方(如运营、销售等)一同参加,并确定好会议时间和地点。在会议中由负责人进行宣讲,各方人员进行审查和答疑,并进一步调整和更新文档内容。
图片源自网络,仅做配文展示
最后是复盘报告的周知。最终的故障原因、改进方案等结论,需要结合故障范围和相关改进人,进行上报和周知,可以邮件的形式进行。让管理者可以查阅整个复盘报告,同时让改进计划中涉及的各方明确知晓后续相关工作。
实践
也就是说:当你通过记录和反思,对自己的工作和项目进行复盘之后,一定要记得把这些成果“用起来”。
当你面临新的挑战和难题时,尽可能摆脱路径依赖,不要完全照搬以前的做法,而是想一想:我能否尝试一些“不同”的做法?
只有这样,你才能够真正把从过去总结提炼的东西,变成自己成长的养料。让信息流动起来,让它们为你所用。一切我所经历的,必将使我更强大。
03程序员需要code review
对于程序员来说,除了工作中的项目复盘,更常见的是代码审查。
良好的代码审查人员会查看代码本身的变更,以及这些变更是否适合已有代码。他们会仔细研究标题和描述,以及代码变更的“原因”。他们还会检查代码的正确性、测试覆盖率、功能变更并确认是否遵循了编程指南和最佳实践。
同时,他们还会指出明显有待改进的地方,例如难以理解的代码、含混的名称、注释掉的代码、未经测试的代码或未处理的边缘情况。最后,他们还会注意,如果一次提交包含了太多代码变更的话,则建议代码的变更应该保持单一目的性,并将代码变更分解成目标更为集中的几部分。
图片源自网络,仅做配文展示
更优秀的代码审查人员还会从系统整体的角度查看代码变更,并检查这些变更是否易于维护。他们可能会询问代码变更的必要性,或对系统其他部分造成的影响。他们会研究代码中引入的抽象以及与现有的软件架构的适应性。
此外,他们还会观察可维护性,例如是否可以简化的复杂逻辑、测试结构、重复和其他可能的改进。
发生问题并不可怕,可怕的是停留于问题表面,治标不治本,从而导致同类问题反复出现,给业务持续造成损失。问题既是风险,也是机会。
图片源自网络,仅做配文展示 如果你能对每一个问题都刨根究底、主动复盘、切实改进,那将得到许多机会;而如果你总是出问题、从不彻底处理好、不主动反思、推脱责任,那就不是机会而是忌讳了,你将得到的是主管不认可、差绩效、无晋升机会,甚至被开除。
另外,复盘绝不是以复盘会的结束为终点,光有思考和计划还不行,若不能确保计划执行和完成,那也就失去了复盘的意义。 最后,希望复盘思维能被你积极使用并帮助你持续提升。其实不限于程序员,也不限于工作中,我们每个人在生活中与他人相处时,做每一件事时,多加运用复盘思维将带给我们诸多收益,共勉。
😊 好了, 以上就是我的分享,小伙伴们点个赞再走吧 👍 支持一下哦~ 😘,