软件质量经济学
上QQ阅读APP看书,第一时间看更新

3.2.7 质量成本

COQ(质量成本)方法的历史比软件行业还要久。短语“质量成本”是不幸的,因为事实上正是质量的缺乏使成本上升了。尽管对于制造的产品来说,质量方法的基本成本产生了有用的信息,但基本成本对软件来说是不够的。

然而,有些软件公司使用了质量成本的概念,这个概念起源于Joseph Juran,由Phil Crosby的名作Quality Is Free普及开来。在作者的客户中,在大概600家公司中约有155家至少有质量数据的部分成本。

最初的质量成本概念使用了3个通用的成本项(cost bucket)来研究软件质量经济效果:

1)预防成本

2)评估成本

3)失效(failure)成本

质量成本的概念起源于制造领域,对于软件质量来说它并不一定是最佳的概念。从经济学和心理学的观点来看,我们需要扩展和裁剪一部分概念以满足软件质量的需要。而且,我们还需要扩展与质量相关的价值因素和投资回报数值。

更适合软件工作特点的质量成本结构可以在初始质量成本概念的3个成本项中扩展,类似于下面所列出的:

1)缺陷预防成本

2)用户满意度优化成本

3)数据质量缺陷预防成本

4)数据质量缺陷清除成本

5)质量认知/培训成本

6)非测试的缺陷清除成本(审查、静态分析等)

7)测试的缺陷清除成本(各种形式的测试)

8)发布后的客户支持成本

9)保修支持和产品召回成本

10)诉讼和损害赔偿成本

11)由碎片和返工减少带来的质量节省

12)由用户停工减少带来的质量节省

13)由市场推广时间减少带来的质量价值

14)由增强的竞争力带来的质量价值

15)由增强的雇员道德带来的质量价值

16)质量的投资回报率(ROI)

这个质量成本项的扩展集合的目的是,使人们可以对各个等级和各个严重度的软件缺陷率的影响进行准确的经济学度量。经济学的度量还包括质量的价值和质量相关活动的投资回报率。

一个简短的假设案例可以说明所涉及的一些基本前提。假设一个商业软件公司正在同时构建两个产品。两个产品的规模都是1000个功能点,其中一个达到了较高的质量等级,另一个则是低质量的。负担的工资价格是相同的,都是每人月7500美元。

假设高质量的产品使用了一个相互促进的缺陷预防、审查和正式测试的组合。它的潜在缺陷是每个功能点3个bug,整体的清除效率是96%,所以发布出去的缺陷数目是每个功能点0.12个。

假设低质量的产品没有对缺陷预防或者审查进行投入,但是拥有正式的测试。它的潜在缺陷是每个功能点5个bug,整体的清除效率是90%,所以每个功能点有0.5个bug被发布出去了。(这比高质量产品的每功能点缺陷数目的4倍还多。)

表3-8展示了开发成本和客户使用最初的12个月的花费。收益和利润数据也反映了一年的销售。所有的数据都是以单位功能点成本的形式表示的。

如我们所看到的,在开发过程中缺陷预防和测试前审查方面的投入产生了比较小的节约,即每个功能点31.25美元。然而,客户支持成本和发布后维护成本降低了很多,所以实际的成本节约是很显著的。

更为显著的是,高质量产品的销售额非常迅速地加大了,而低质量产品的销售额落后了,因为第一位客户不满意并通过因特网论坛抱怨了产品。因此,高质量产品在它投入市场的第一年盈利了,而低质量产品却亏损了。

这个假设的例子只是说明了一些信息,这些信息可以通过直接的成本降低、较高的销售额和盈利能力来说明高质量对低质量水平的价值对比。

尽管数据是假设的,但它并不是不切实际的。对于商业软件来说,高质量通常通过直接的成本降低和较高的销售额而得益。厂商们应该对这个事实是敏感的,客户协会不仅存在而且他们会分享关于软件质量的信息。因特网开启了一个在世界上任何地方都能立即传递信息的全新方式。