軟件生產人員和用戶的最佳選擇是承認軟件不可能沒有缺陷的現實,在生產和使用中都引入軟件“容錯”的理念和機制,并把有限的時間和精力放在“關鍵”部位上,而不是一味追求最少的缺陷和不分重點地使用
軟件開發力量,這樣才能達到總體最優的結果。
為了了解軟件質量的現狀,從1994年開始,一個名叫 Standish Group 的智囊團用了十年的時間研究了多達三萬五千個開發項目,用了多種方法對這些項目進行了評估,其對于項目成功的定義如下:
軟件開發按時完成。
預算未超出。
軟件功能涵蓋了預定的要求。
軟件沒有被缺陷致殘。
軟件已被使用,而且產生了積極的效果。
最初的結果顯示符合上述定義的成功軟件項目只有16%。Standish 每年都會更新這一數字。之后的結果顯示,該比例沒有太大的改變。
多年來,軟件業界采用了多種方法企圖改善軟件質量的現狀。雖然 Standish Group 的研究指出成功軟件的比例變化不大,卻并不代表軟件業界的努力沒有成果。
因為用戶對于軟件的要求越來越高,導致軟件越來越來復雜,失敗的概率也相應地越來越大。雖然一些有識之士例如 Ben Chelf 認識到人的因素對于軟件產生缺陷至關重要,但是面對這一現實,多數還是朝著使人減少犯錯誤機會的方向去改進。這無疑是必要的。
但是在短期不能奏效的局面下,在軟件生產和使用中“容忍”缺陷是軟件業得以生存和發展的關鍵一環,通俗地說,要與缺陷共舞。