持续质量软件工程实践的好处

153 阅读4分钟

持续质量CQ)是一种软件工程实践,在这种实践中,孤立的变化(或三角洲)会被立即分析为代码的质量和可维护性的属性,并在它们被添加到代码库之前进行报告。CQ的目标是提供快速反馈,这样如果发现可能影响代码的可维护性或导致技术债务增加的问题,就可以尽快发现并纠正。

开发人员长期以来一直在努力发明工具和实施流程,以更好地交付软件。保持代码的健康是非常重要的,像代码的同行评审、静态分析检查、跟踪关键指标(如文档覆盖率、测试覆盖率等)的做法有助于执行。实施CQ是在软件开发工作流程中把所有这些实践结合起来的一种正式方式。当与CICD等实践结合起来时,CQ有助于确保团队能够更快地交付可靠的软件。

作为开发工作流程的一部分,实施持续质量的主要好处是。

1.更可靠和安全的软件

CQ的核心原则之一是检测代码中的缺陷,如反模式、错误风险、潜在的安全漏洞,更接近于开发人员的工作流程。由于开发人员在工作流程中很早就意识到了这些问题,而他们仍然可以进行修改,因此与这些问题后来被提出时相比,它增加了这些问题被修复的机会。周而复始,最常见的问题有很大的机会永远不会进入代码库 - 导致无缺陷的软件更加可靠和安全。

实施CQ的一个直接后果是,它使团队中高级开发人员在审查拟议的代码修改方面的大量工作自动化。由于最微不足道的问题现在可以由CQ系统向提出修改的开发人员提出,这些问题通常在代码审查发生之前就被修复。这为初级和高级开发人员节省了相当多的时间,他们现在可以更有成效、更有质量地使用他们的时间。由于可靠性的提高,手动测试和验证软件的时间也减少了;而且更容易将软件交付给生产。

3.减少了软件维护的成本

一个普通的软件开发人员每周要花费超过17个小时与技术债务和坏代码作斗争1。维护问题,如调试、重构、修复破损的依赖关系、调整代码以适应新的需求等,都需要花费开发人员大量的时间和注意力。诸如缺乏文档、缺乏质量流程等因素会大大增加复杂性。CQ确保基本的卫生因素在代码中得到保持,源代码的健康指标得到控制--因此,增加一个新的模块、扩展现有的功能或将软件移植到一个新的环境中工作变得更加容易。

估算一个新功能需要多长时间才能发货是非常关键的,因为它直接影响到市场策略和相关的收入流。在没有掌握所有关于代码库当前健康状况的必要信息的情况下,试图进行估算就像在黑暗中射击。CQ确保决策者在他们的指尖上拥有所有相关的信息,因此对发布时间表的估计是更现实的。

4.提高客户满意度

这基本上是一个无解的问题。一个稳定和安全的产品,能做到它所说的,并且不崩溃,是客户所希望的。构建软件是很难的,而大规模地构建软件更是难上加难,这一点是无可否认的。CQ确保在编写软件的最初阶段,以及在对软件进行最小量子化修改时进行质量控制。这使得团队更容易确保整体的质量控制,并专注于为客户提供良好的产品体验。

5.提高开发人员的幸福感

最后,也是最重要的一点,必须牢记,开发人员也是人。在最近的一项调查中,超过80%的开发人员表示,不得不在糟糕的代码和未管理的技术债务上工作,对他们的生产力和个人士气产生了负面影响。像CQ这样的流程有助于减少开发工作流程中的繁琐工作,将可以自动化的事情自动化,并为开发人员提供确定性。节省时间和提高生产力可以提高士气,使开发人员能够做他们最好的工作。超过70%的工程领导认为,开发人员可以通过更快地将软件推向市场,为企业带来最大的影响。快乐的开发人员是实现这一目标的唯一途径。