現代社會中競爭無處不在,產品質量是保證企業在激烈的市場競爭中立于不敗之地的根本。任何企業都必需把滿足客戶需求作為企業發展的源動力,不斷地改進產品和服務質量,為客戶提供更高品質的產品和服務。只有這樣,企業才能夠增強自身的實力,在市場上贏得越來越多的客戶,在與對手的競爭中逐漸勝出。
1 軟件就是業務
現代社會中競爭無處不在,產品質量是保證企業在激烈的市場競爭中立于不敗之地的根本。任何企業都必需把滿足客戶需求作為企業發展的源動力,不斷地改進產品和服務質量,為客戶提供更高品質的產品和服務。只有這樣,企業才能夠增強自身的實力,在市場上贏得越來越多的客戶,在與對手的競爭中逐漸勝出。
隨著科學技術的發展,我們已經步入一個信息時代,絕大多數的企業已經把他們的業務建立在信息系統之上,軟件系統已經成為決定企業競爭力的關鍵要素之一,產品和服務的質量往往是由底層軟件系統的質量所決定的,大家可能都有過銀行儲蓄所由于系統宕機而無法營行的經歷,或者是由于電信系統發生故障而無法撥打電話;另外,企業的每一項新業務的推出都有賴于底層軟件系統功能的支撐,誰的軟件系統能夠靈活地適應業務發展的需要,能夠迅速地增加功能來支持新業務的運營,誰就能將新業務更快速地推向市場,從而為客戶提供更好的服務和更多的產品選擇。
對于每一個企業而言,提高軟件系統的質量就直接關系到生產系統的可靠性和企業的競爭力,因為軟件和業務密不可分,軟件的品質直接決定了企業能夠提供什么樣品質的產品和服務給她的客戶。所以越來越多的企業把軟件開發作為業務流程的一部分,負責軟件開發和維護的IT部門也成為企業內部一個最為重要的業務部門,所有其他的業務部門都必須依靠軟件開發部門來實現他們的業務,軟件開發部門則完全根據客戶需求進行業務驅動的開發(Business Driven Development)。隨著企業在市場上的業務開拓,對于自身質量要求的不斷提高,企業對于軟件系統的質量要求也相應提高,高質量的產品和服務需要有高質量的軟件來支撐。
2 走出軟件質量管理的誤區
我們該如何來保證軟件產品的質量呢?很多企業在軟件系統上線之前都會對軟件系統進行充分的測試來保證其質量,通過功能測試、壓力測試、可靠性測試等一系列的檢測來發現軟件中存在的問題,從而在系統上線之前及時改正這些錯誤,保證最終交付給客戶的產品和服務的質量。
但是測試并不是并且不應該是保證軟件質量的唯一手段,質量管理大師戴明(Edwards Deming) 早就提出了"停止依賴檢驗來獲得質量"的建議。依靠測試來保證軟件質量是一種事后彌補的方法,它只能發現軟件產品中已經的缺陷,但并不能事先避免缺陷的發生,為什么不能用"一開始就制造高品質軟件"的方式來開發軟件呢?試圖單純通過測試來發現軟件中的缺陷在軟件開發中普遍存在,但這種方式效率太低并且成本過高,并且測試從根本上不可能找出所有的軟件缺陷。
當然測試是整個軟件開發生命周期過程中一個必不可少的環節,它可以對軟件質量進行有限程度內的檢驗,從而在一定程度上保證軟件質量。但是,測試不應該成為整個軟件開發過程中唯一的質量控制手段,測試人員也不是整個開發團隊中唯一需要對軟件質量負責的人員;質量保證應該落實到軟件開發的全過程,開發團隊中的每一名成員都有責任對軟件質量負責。
3 流程決定質量
什么是一個流程?流程就是人們為了達到某一個特定的目標而制定的一些可執行的步驟。什么是一個軟件開發流程?軟件開發流程描述了在軟件開發過程中的人員分工(角色),每個角色應該從事的開發活動以及相關的工件。通俗地講,軟件開發流程就是告訴你如何來組織你的軟件開發團隊,如何來分配開發任務,在什么時間點應該產生什么樣的工作成果,這些工作成果應該附合什么樣的質量標準。
一個好的軟件開發流程可以提高軟件開發團隊的工作效率,控制開發過程中的風險,保證軟件開發進度并且提高軟件產品質量。軟件質量的好壞基本上是由開發過程中的每一個環節(并不僅限于測試環節)所保證的,過程中的每一個角色都應該對軟件質量負責。
上世紀70年代,人們為了解決日益復雜的軟件開發而造成的"軟件危機"提出了軟件工程的思想,即要用工程化的方法來開發軟件,使得軟件開發的整個過程及其質量都是可控的。"瀑布模型"是那個年代最有名的軟件開發生命周期模型,它是借鑒傳統工業化流程中的質量管理方法,將整個開發生命周期劃分成為幾個階段,在每個階段的結束點設置一些檢驗點,通過控制每一個階段的質量來保證最終軟件產品的質量。
原文轉自:http://www.anti-gravitydesign.com