程序员面向软件开发时,如何成功?

    软件开发这个行业向来以项目延迟交付和和预算超支而闻名。很多项目甚至被完全取消,还有很多其它项目的交付物从未达到或接近我们向客户承诺的价值。然而,也有一部分软件开发组织,他们能够始终如一地交付优秀的结果。从上世纪70年代开始这些软件开发组织就知道如何做到这一点。在这篇文章里我会和你们分享他们成功的秘密。


    让我们先从了解史蒂夫·麦康奈尔(Steve McConnell)的这张图表开始。它描述了缺陷率(defect rate)和开发时间之间的关系。


微信截图_20191219170041.png

    这张图表显示,如果大多数团队将更多的精力放在缺陷预防、早期缺陷移除和其它质量问题上,那么他们就可以更快地交付他们的软件项目。

    但是这张图表是正确的吗?

    史蒂夫·麦康奈尔在1996年发表的一篇名为最快开发速度下的软件质量的博客文章中公布了这张图表。这张图表(和这篇博客文章)总结了他的优秀著作《快速开发》一书中的一些数据。那本书的部分内容是基于卡珀斯·琼斯(Capers Jones)在上世纪90年代早期的研究结果(我在这里提到这些日期是因为我想让你们知道我们知道这一点已经有多久了):

    在软件开发中,更高的质量(以更低的缺陷率的形式)和更短的开发时间是可以齐头并进的。

    卡珀斯·琼斯一直在做他的研究,并且在2011年,他和奥利维尔•邦斯格诺(Olivier Bonsignour)合作出版了另一本名为《软件质量经济学》的书。书中分析了从1973年至2010年间660多个软件开发组织的13000多个软件项目,并且收集了更多的证据证明了下面的观点:…高质量水平总是与较短的开发周期和较低的开发成本密切相关。

    换句话说,史蒂夫·麦康奈尔的图表是正确的。