【轉】如何做好軟件的質量管理?

軟件公司存在的問題

目前很多軟件公司都存在下面一些問題:

公司的產品質量很難穩定,到了客戶那裏總是出現很多問題,他們的高手經常去客戶那裏現場救火。

產品的質量問題總是重複出現。這個版本已經解決,到了下個新版本可能又出現。開發人員總是抱怨沒有時間把問題一次解決好,但是卻有時間把反覆出現的問題解決很多次。

產品上市時間總是一拖再拖,很難按時推出新產品或新版本。產品推出之後也不能適應市場需求。

公司的人員總是加班加點工作,還是有解決不完的問題。

這一切的一切都是什麼原因造成的?

那就是軟件的質量管理沒有做好。

那怎樣才能做好質量管理呢?

 

2 質量管理就像治病

我們先來看一個故事。

中國古代有一個著名的神醫,叫扁鵲。傳說扁鵲有三兄弟,並且全是郎中。其中老三扁鵲是名醫。人們問他:“你們兄弟三人誰的醫術最高?”

他回答說:“我常用猛藥給病危者醫治,偶爾有些病危者被我救活,於是我的醫術遠近聞名併成了名醫。我二哥通常在人們剛剛生病的時候馬上就治癒他們,臨近村莊的人說他是好郎中。我大哥不外出治病,他深知人們生病的原因,所以能夠預防村裏人生病,他的醫術只有我們村裏才知道。其實我的醫術不如二哥,二哥的醫術不如大哥。”

從這裏看出,要想身體好,少生病,有三種辦法。

第一是早預防,不讓疾病產生,這就是扁鵲大哥的方法。

第二是早發現早治療,這就是扁鵲二哥的方法。

第三是早搶救,死馬當活馬醫。這是沒有辦法的辦法,萬不得已而爲之。這就是扁鵲經常做的事。

 

3 質量管理的三套體系

從上面的故事可以明白,其實質量管理也類似。我們應該建立三套體系:預防體系,有效檢查體系、快速搶救體系。

 

3.1 建立預防體系

在軟件開發過程中有效地防止工作成果產生缺陷。主要措施有:

1)專家培訓,不斷提高大家的技術水平、管理水平;

2)流程化,不斷提高規範化水平,把經驗和教訓固化在流程中。大家如果按照流程來做,軟件質量不會差,但是如果不按流程來做,那軟件質量不確定,有可能很差,也有可能很好。他依賴於人。流程化的目的就是希望產品質量不要依賴於人,而是要依賴於流程、制度、規範。這樣公司的產品質量就比較穩定,即使人員變更也會比較穩定。這就是流程化的目的。

當然流程化不僅僅是把流程整理出來,還要在運行過程中不停優化,保證流程確實是好用的、容易執行的。

要想保證流程容易執行,應儘量讓流程工具化,把流程固化在工具中。在使用工具時,大家按照工具的要求來做,就已經在很好的執行流程了。市場上有很多這方面的工具。上網一搜索很快就能找到一些。我們曾經用過bugzilla,漫索軟件。

3)複用化。處理相同的事最好儘量複用現有代碼,或者把公共功能做成模塊,便於大家複用。這樣就可以預防問題的發生。

 

3.2 建立有效檢查體系

在軟件開發過程中能儘早發現問題,儘早解決問題。這樣代價最少。主要措施有:

1)技術評審。請專家對技術方案、思路進行評審,在編碼之前找出可能的問題。質量管理大師戴明博士說過:質量是設計出來的。可見編碼之前的設計方案是非常重要。設計時就埋下的缺陷隱患在後期是很難解決的。設計不好的軟件就像體質不好的人,後期再多的調理也收效甚微。

2)測試。測試是查漏補缺的重要手段。這裏有各種測試方法,例如靜態測試、動態測試、白盒測試黑盒測試單元測試、模塊測試、系統測試、迴歸測試、功能測試性能測試、易用性測試手工測試、自動測試。但是我覺得最重要的是要使所有的測試方法形成一套有效的測試系統。

如何衡量有效?那就是任何新的改動,如果它導致以前正確的行爲變成錯誤,這套系統應該能報告出來。建議的方法是保證每種情況都有對應的測試用例,每種錯誤也都有對應的測試用例。

3)過程檢查。軟件開發過程中有一些大家公認的過程或規範能夠避免產生一些問題,那這些過程和規範就應該被檢查,保證軟件開發過程與規範被大家遵守。這主要是QA的工作。

4)代碼評審。評審工作主要看代碼是否與當初的設計方案一致。這樣我們就能最大限制減少問題的產生。

 

3.3 建立快速搶救體系

在軟件產品發佈之後,客戶可能會發現問題。因此一定要儘早迴應、解決,儘量減少對客戶的影響,也有利於維護自己產品的聲譽。

這主要是要提供方便、快速的售前售後服務。內容包括從新客戶的接入,到新老客戶維護和營銷的每一個環節的工作,與銷售、營銷、推廣、策劃、人事等多部門業務對接,優化各業務環節,減少各環節客戶流失和公司成本等。

如果要做好這部分的工作,可以直接引入CRM系統,即客戶關係管理系統(Customer Relationship Management)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章