3.6.1 提速的切入点
很明显,解耦是获得提速的一项有效手段,我们要尽可能地让软件研发过程中的各个角色不出现互相等待的情况,能够并行工作。此外,提升某项工作的效率,降低成本,也能够在一定程度上促进提速。
图3.8展示了传统软件项目研发的生命周期,可以看到,其中影响提速的因素有三个方面:
• 获得质量反馈太慢,成本太高。
• 研发与测试相互依赖太多,造成互相阻塞。
• 与外部团队依赖太多,造成互相阻塞。
图3.8 传统软件项目研发的生命周期
要打破这样的局面,关键就在于解耦。我们以提测环节为例,在传统的项目管理流程中,研发人员在编码完成后会进行简单的自测,自测完毕后进行提测,交付给测试人员展开后续工作。我们注意到,在提测后研发人员针对该需求的后续工作强依赖于测试进度,即测试人员提供质量反馈的速度,如测试人员什么时候能测出问题,上报缺陷,这导致了研发和测试人员在这一阶段的强耦合。从解耦的角,可以考虑能不能将一部分测试工作前置到研发人员提测之前,由研发人员进行测试,不依赖于测试人员个体,于是,就产生了“回归前置”的概念,即由研发人员在提测前完成回归测试,确保没有问题后再进行提测。
回归前置的好处有很多,首先,研发与测试的工作在很大程度上被解耦了,测试人员只需要关注新功能的验证和联调工作;其次,回归前置需要辅以高度的自动化和成熟的CI/CD设施,能够倒逼基础设施建设和测试水平提升;最后,研发能够获得快速的质量反馈,如果回归测试进行得足够快,甚至研发人员每提交一次代码都能获得大量的质量反馈信息,那么软件缺陷就能够早发现、早修复。
践行解耦思想的优秀实践还有很多,例如在缺陷修复环节,测试人员在提交缺陷时,可以一并提交验证的自动化用例,这样研发人员完成修复工作后,无需测试人员验证,只需自我验证即可,节约了彼此的时间。诸如此类的工作还有很多,如图3.9所示,究其实质都是在解耦和降本,这是软件研发提速的最大切入点。
图3.9 软件研发提速的切入点