软件质量的普遍原理就是改善质量以降低开发成本。
理解这一原理依赖于理解一个很容易观察到的关键事实:提高生产率和改善质量的最佳途径就是减少花在代码返工上的时间。软件产品的业界平均生成效率大约是每人每天10~50行最终交付的代码。这一生产力数据显得如此低下,部分原因是这样的业界平均值把非程序员所花费的时间也纳入“每天代码行数”的计算里了。诸如需求开发和架构设计等也被考虑进去。但这些都不是时间花费如此惊人的主要原因。
绝大多少项目的最大规模的一种活动就是调试以及修正那些无法正常工作的代码。调试和与此相关的重构或者其他返工工作,在传统的不成熟的软件开发周期中可能消耗大约50%的时间。只要避免引入错误,就可以减少调试时间,从而提高生产力。因此,效果最明显的缩短开发周期的办法就是改善产品的质量,由此减少花费在调试和软件返工上的时间。
相关领域的数据可以证明这一分析结论。
NASA软件工程实验室在分析总结400人年工作量的50个开发项目的300万行代码后发现,更多的质量保证工作能降低错误率,但不会增加开发总成本。
IBM的一个研究也得出类似的结论:缺陷最少的软件项目的开发计划设计最短,并拥有最高的开发生产率。。。。。。消除软件缺陷实际是最昂贵且耗时的软件工作。
与传统的“编码-测试-调试”相比,先进的软件质量计划可能更省钱。这种计划把投入到调试和重构的资源重新分配到前期的质量保证工作中,而前期工作在产品质量上体现的作用会比后期工作更为明显。这一方法的最终效果是软件的缺陷更少,开发时间更短,成本也更低。