软件生产人员和用户的最佳选择是承认软件不可能没有缺陷的现实,在生产和使用中都引入软件“容错”的理念和机制,并把有限的时间和精力放在“关键”部位上,而不是一味追求最少的缺陷和不分重点地使用
软件开发力量,这样才能达到总体最优的结果。
为了了解软件质量的现状,从1994年开始,一个名叫 Standish Group 的智囊团用了十年的时间研究了多达三万五千个开发项目,用了多种方法对这些项目进行了评估,其对于项目成功的定义如下:
软件开发按时完成。
预算未超出。
软件功能涵盖了预定的要求。
软件没有被缺陷致残。
软件已被使用,而且产生了积极的效果。
最初的结果显示符合上述定义的成功软件项目只有16%。Standish 每年都会更新这一数字。之后的结果显示,该比例没有太大的改变。
多年来,软件业界采用了多种方法企图改善软件质量的现状。虽然 Standish Group 的研究指出成功软件的比例变化不大,却并不代表软件业界的努力没有成果。
因为用户对于软件的要求越来越高,导致软件越来越来复杂,失败的概率也相应地越来越大。虽然一些有识之士例如 Ben Chelf 认识到人的因素对于软件产生缺陷至关重要,但是面对这一现实,多数还是朝着使人减少犯错误机会的方向去改进。这无疑是必要的。
但是在短期不能奏效的局面下,在软件生产和使用中“容忍”缺陷是软件业得以生存和发展的关键一环,通俗地说,要与缺陷共舞。