质量内建的最大价值是降本增效

技术总监 谈宏明 HiAgile 2023-08-31 17:39

作者:上海惠艾技术总监/DevOps技术顾问 谈宏明

>

前言


有不少刚接触质量内建实践的同学,心中最深刻的印象是:质量内建能有效地降低生产故障。实际上,提升交付质量只是其部分收益,因为故障数量是实实在在下降的,大家很容易观测到。而质量内建的最大收益其实是潜在降低开发成本,提升研发效率,也就是我们常说的“降本增效”。


图片


基于此实际情况,这篇文章主要讲述质量内建是如何促进降本增效。


开始之前,我们先看看返工和返工成本这两个概念:

 ◾ 返工是指需要重做以前完成的工作,通常是由于错误、遗漏或需求的变化。典型场景是SIT/UAT发现缺陷后的处理和修复,生产故障发生后的修复和补丁等。

 ◾ 返工成本是修理或调整有缺陷的物品以使其符合其规格所需的资金。在任何企业中,这都是一个严重的问题,因为它会降低利润。返工成本的概念不仅适用于制造过程中出现的缺陷,也适用于建筑和软件开发中出现的缺陷。


质量内建方法论的核心是革新软件工艺流程,通过开发自测,尽早发现、修复缺陷,从而减少因缺陷和故障导致的返工。


那么,减少的返工成本究竟有多少呢?我们从下面三个视角来测算分析。


1、软件工程经济学视角

Barry Boehm博士(软件工程界的巨匠,南加州大学教授,美国工程院院士,《软件工程经济学》经典著作的作者)早在上世纪80年代基于统计数据得到几个结论(注1):

 ◾ 软件返工成本占总成本的 40-50%;

 ◾ 返工成本的80%是可以避免的;

 ◾ 减少可避免的开发成本可大幅提高生产率;

 ◾ 随着时间的推移,进行软件更改或修复的成本显着增加,如果等到交付客户后,修复成本会上升100倍;


关于尽早修复会减少修复成本,还有这些结论:

过去25年的研究已经最终证明,第一次就把事情做对是值得的。不必要的更改是昂贵的。惠普、IBM、休斯飞机、天合和其他组织的研究人员发现,在施工开始时清除错误可以使返工的成本比在流程的最后部分、系统测试期间或发布后完成时便宜 10 到 100 倍

(Fagan 1976;汉弗莱、斯奈德和威利斯 1991;莱芬韦尔 1997;威利斯等人,1998年;格雷迪 1999;舒尔等人,2002年;博姆和特纳2004)

 

这些“上古时代”的分析影响深远,至今依旧是各个方法论的基础依据。比如极限编程(XP)提出在编码之前先写自动化测试,以在代码完成时立即检测;敏捷测试直接是“质量内建胜过质量检测”;DevOps(《加速度:精益软件与DevOps的科学》)观点更具体:“我们应该将测试作为开发过程的一部分……开发人员应能在其本地工作站上运行所有自动化测试,以对缺陷进行分析和修复”;


我们根据上述结论进行返工成本的理论测算:

 ◾ 假设开发总成本是100元,那么原先的返工成本40-50%,姑且按40元计算;

 ◾ 可避免80%的返工成本,那么可以节省的最大成本为 40*80% = 32元;

 ◾ 降本比率:32/100 = 32%


降低1/3 的开发总成本,非常惊人,估计有些人不敢相信;

2、DevOps调研报告视角

也许有人会说,上世纪的开发语言、开发环境、工具链、还有管理方法都太原始了,和如今的生产效率不可同日而语。


我们看看现代的观点, 《DevOps 转型的投资回报率》是谷歌(与DORA)近年发布的调研分析报告(注2,3),论述投资DevOps的投入和产出。我们摘选其中关于非必要返工的结论。

 ◾ 软件开发团队在发布之前会返工19-40%的代码,最好的精英型IT组织非必要返工是19%,而低效能IT组织非必要返工为40%。这些浪费的时间使中大型技术组织(2000名 IT人员)每年花费超过3780万美元;

 ◾ 非必要返工是所有行业浪费的重要来源。当组织降低返工水平时,他们“基本上获得了额外的能力,而不必招聘和雇用 - 只是通过改进流程。他们不仅收回了浪费时间的成本,而且如果他们将这些时间重新投资于业务,他们就会从这些额外的工作时间中获得收益。

 ◾ 计算每年非必要返工成本公式:

图片

 ◾ 计算每年的非必要停机成本公式:

图片

 ◾ 总体非必要返工成本和收益(基于非必要返工节省后的新投资)统计:从企业规模和不同效能组织这两个维度出发:

图片

:中等IT效能组织指 部署频率在每周一次和每月一次之间;变更前置时间一周到一个月之间;


有意思的是这里用了非必要返工(unnecessary rework)概念,而Boehm博士说的是可避免返工(avoidable rework)概念,我们认为前者是潜在认可有的返工是必要的,后者视角更关注是否可避免,虽然有些微妙差异,在本文中,二者是等同语义。


基于这些现代的调研统计,非必要返工在19-40%之间,这个数字覆盖了“上古时代”的32% 这个值。另外这个报告里还识别了停机成本,叠加浪费总额会更高。

3、客户案例视角

除了上述“自古至今的理论”外,上海惠艾在帮助多家大型金融组织导入质量内建实践时,有许多实际的案例能反馈返工成本的变化:


比如一个比较大型的关键业务应用(100+开发人员),此应用是老旧技术栈,维护压力较大。据团队自己统计,“每周5天时间中,至少有2天是用来修复SIT缺陷和生产故障,其余3天用来新版本的代码开发”。也就是说,彼时的返工成本为2/3 = 66%。


在导入质量内建实践半年后,他们“每周只需要1天修复缺陷,4天用来开发,一个版本能发布更多的功能”,也就是说质量内建实践让他们:

 ◾ 节省开发总成本1/5 = 20%:此时的返工成本从66% 降低到 1/4 = 25%;

 ◾ 版本交付效率提升了 1/3 = 33%:每周新功能开发从3天到4天,团队(100+人)增加了1天产能,每个版本能纳入更多需求;

 ◾ 顺带提升了交付质量:在科技侧的故障密度排名榜上提升了4个名次(之前长期稳定);

>

写在最后


上海惠艾在辅导某大型股份制银行全面落地质量内建实践三年后,该行活跃应用普遍采取质量内建实践,在提测SIT前,200+应用代码覆盖率达到了80+%,缺陷密度和生产故障都降低了3/4,研发效率提升了一倍。


结合上述三个视角的分析后,不难得出结论,质量内建实践通过减少了大量返工成本,从而提升交付效率,有效支撑科技企业不仅“降本“,还能”提质增效”。






上海惠艾业界独创的质量内建实践方法包含了一整套行之有效的方法和工具,已帮助多家大型金融科技落地实施,显著提升研发效能和交付质量。


更详细案例欢迎前来咨询。



引文:

注1、

https://www.semanticscholar.org/paper/Software-Defect-Reduction-Top-10-List-Boehm-Basili/895f4de9d4e02dbce5fec881942d1704505c940c

注2、DevOps 转型的投资回报率:

https://cloud.google.com/resources/roi-of-devops-transformation-whitepaper

注3、DevOps 转型的投资回报率配图的中文翻译来自华为云社区:

https://bbs.huaweicloud.com/blogs/347086