我们组有一条principle是: slow is fast(慢就是快)
最近在给组里的一些新同学review代码的时候发现他们在工作时有一些很明显的优缺点:
- 优点是他们学习、编码的能力都很不错,对于每一个新的需求都能快速快成;
- 缺点是经常会在他的代码中发现一些非常低级又很小的错误,比如单词拼写错误、又或者忘记了核心逻辑中的异常处理等等;
每次看到这样的问题,我都会跟他们说,你要学着让自己"慢"下来。众所周知,在软件工程中,有一个名词叫做:PONC(Price of Nonconformance)是指由于没有第一次做对而造成财物的额外浪费。简称:质量成本。对应到一个功能,在不同的阶段发现问题,所需要的修复成本是完全不同的,下面的表格可以作为一个参考:
不同阶段 | code review | 研发项目测试 | QA提单 | 线上故障 |
---|---|---|---|---|
修复价格 | 151 | 1159 | 9135 | 62982 |
价格上升比例 | 1 | 7.7 | 60 | 417 |
与此同时,在实际工作中可以看到,90%的bug都是很低级的错误,比如写错了单词、引用错了变量、定义错了变量类型等等。因此,如果我们能在功能开发的早期阶段发现并解决问题,那对于团队来说,这样的不必要的损失就可以降低很多。 所以,作为程序员应该有一个"懒"的属性,用智慧将自己从低效的工作中解脱出来。低效的功能通常来说有3类:
- 需求理解不清晰,导致实现的功能和需求不完全一致;
- 工作粗心,代码中经常会有诸如错误拼写、错误变量引用等低级错误;
- 随意的代码copy-paste,导致系统中大量的重复代码;
因此,作为一个研发同学,当接到一个新的需求时,需要的工作流程是这样的:
这样流程的好处是可以让我们尽量降低可能存在的由于个人失误导致的功能研发效率下降,从而提高整个团队的研发效率。毕竟,在互联网时代,当大家所做的产品都没有严格意义上的壁垒时,效率提升就意味着竞争力上升。
最后,让我们一起"懒"起来吧~