? ? ? ?產品質量大概從人類制造工具開始就已經意識到它的重要性,人們對質量的關注僅次于產品功能。在工業時代,為了提高產品質量,人們進行了不懈的探索,在各行各業也形成了自己的質量保證體系。?
? ? ? ?當近幾十年出現的軟件行業也同樣面臨質量保證時,人們很自然地想到向傳統行業學習,借鑒傳統行業的質量保證體系。但很快發現,這招不靈。人們經過研究后發現,傳統業行業與軟件行業的區別,前者的質量很大程度上取決于原材料質量、生產工藝、生產流程。而后者的質量與原材料無關,與生產工藝關系不大,唯一剩下的是生產流程。于是在軟件研發流程方面出現了“瀑布模型”、“迭代模型”、“敏捷模型”等等,在項目開發的過程中,出現了“需求評審”,“設計評審”、“代碼評審””等各種評審進行質量確認,在開發模式方面出現了“TDD”、“XP”等等,也出現CMMI等軟件質量體系,但都沒能徹底解決質量保證問題。在方法引入的初衷都很美好,但在執行過程中逐步走樣,慢慢流于形式,最后不了了之。難道是初衷不對?方法不好?
? ? ? ?軟件行業與傳統業行業都需要人去完成,關鍵前者對人的依賴遠遠大于傳統業行業。傳統行業更多是用管物的方法來保證質量,而將管物的方法用來管人效果肯定不會太好。軟件質量保證的根本在人,只有人人都對自己的任務盡心盡責才是正道。