專案中的軟體質量管理
提起軟體質量管理,人們更多地會想起
iso9001
、cmm
、cmmi
這些「質量管理聖經」。但國內企業做了這麼多年的質量認證,卻沒有使軟體質量有大幅度地提高。實際上,很多企業通過
iso9001
、cmm
、cmmi
等質量認證的目的就不是為了提高質量:有的企業是為了跟風,有的企業則是為了向客戶展示證書。
在很多軟體企業裡,軟體質量管理在內部開發產品時做的相對較好:因為產品開發通常在各個軟體企業的研發中心進行,涉及的人員以內部為主,進度壓力相對較小,可以投入時間和精力來開展軟體質量管理。對於有客戶進行參與的軟體實施專案,多數企業為了節省成本和趕進度,往往會忽略質量管理,最後導致軟體質量很差——投產後的軟體經常會被使用者發現很多
bug。實際上,在專案實施中開展質量管理工作更加重要,因為產品上線後的質量問題往往意味著更大的投入。本文將和讀者一起**軟體專案實施中如何開展質量管理工作。
1.
質量管理主要內容
在**專案實施中開展軟體質量管理工作前,我們先回顧一下質量管理的基礎知識。質量管理主要包括三個過程:質量計畫制定、質量保證和質量控制。
質量計畫:是質量管理的第一過程域,它主要指依據公司的質量方針、產品描述以及質量標準和規則等制定出來實施方略,其內容全面反應使用者的要求,為質量小組成員有效工作提供了指南,為專案小組成員以及專案相關人員了解在專案進行中如何實施質量保證和控制提供依據,為確保專案質量得到保障提供堅實的基礎。
質量保證:是貫穿整個專案全生命週期的有計畫和有系統的活動,經常性地針對整個專案質量計畫的執**況進行評估、檢查與改進等工作,向管理者、顧客或其他方提供信任,確保專案質量與計畫保持一致。
質量控制:是對階段性的成果進行測試、驗證,為質量保證提供參考依據。
在軟體實施專案中,質量保證對應於技術評審與過程檢查,質量控制對應於軟體測試等工作,如圖
1所示。
制定質量計畫
缺陷 跟蹤
技術評審
軟體測試
過程檢查
軟體過程改進:提高軟體技術水平和規範化水平
圖1 全面軟體質量管理模型
2.
專案中質量管理的原則
在軟體專案實施中,由於進度和成本兩大因素的影響,它的質量管理與產品開發有著很大的差別。因此,在專案實施中做好質量管理工作應該堅持自己的原則。
我們先看一下國內企業實施軟體專案的一些特徵:
國內的企業要想挑出「怪圈」,最根本的辦法是從源頭做起:即從專案一開始就開始重視產品質量,因為質量是根本,好的質量加上好的服務才能擁有更強的市場競爭能力。同時也應該認識到質量、進度、成本是相輔相成的,決不可以忽略任何乙個方面。過分重視質量,必然會耽誤進度和加大成本投入,甚至會失去市場機會;過分節約成本、搶進度又會降低質量,質量不好的產品肯定不會在市場上走多遠。
根據作者多年的經驗,
it企業要想在軟體專案實施中做好質量工作,應該堅持下面幾個重要的原則:
ø不但要主觀認識到質量的重要性,同時還要落實到行動中。
軟體質量管理的重要性已經逐漸被國內的
it企業認可,但是要落實到具體的專案實施工作中,並通過它提高軟體質量,還有一段很長的路要走。因為幾乎所有的軟體公司都灌輸著「進度高於一切」的思想,只要是為了趕進度和發布產品,所有影響進度的工作都可以忽略。
因此,把想法落實到實際工作中是做好軟體質量管理的第一原則。
ø樹立提高質量就是尊重客戶的思想。
可以說,目前很多公司都有「愚弄客戶」的嫌疑,不管是有心的還是無意的。很多公司實施專案時只要能拿到「錢」就達到目的了,因此也就不在乎是否掩蓋缺陷和敷衍客戶。至於後果,那是以後的事情了。
在軟體產業發達的今天,已經是客戶的買方市場,客戶永遠會選擇質量和服務都表現良好的產品來滿足自己的需求。因此,我們應該尊重客戶,把客戶放在「上帝」的位置上,認證做好質量。
ø建立規範的質量保證體系,逐步使軟體開發進入良性迴圈狀態。
在沒有開發規範的前提下,軟體團隊是不能開發出高質量軟體的。因此軟體團隊一定要建立規範的質量保證體系,同時把規範體系逐步落實到工作中。如果急功近利,不但會做很多浪費人力和物力的無效工作,還會給客戶留下不好的印象。
3.
專案中質量管理開展方法
要想在專案中開展質量管理,就不能脫離中國軟體企業實施專案的現狀:工期短、任務重、利潤低。在這種背景下,開展全面質量管理是不太現實的,只能根據每個專案的進度和成本實際情況來進行合理的投入,否則質量投入過大不但耽誤進度,還會影響到企業利潤,這是本末倒置的。在專案實施中,通常是最大限度地去提高質量。在圖1
的全面軟體質量管理模型中,我們可以看出質量管理有三大類:技術評審、過程檢查、軟體測試,專案實施中的軟體質量管理仍然圍繞著這三類工作來開展。由於很多
專案實施中沒有專門的質量人員,這個時候專案經理應該更多地去組織技術評審和安排人員進行過程檢查,可以考慮讓軟體測試人員承擔一些質量保證工作,因為測試人員通常是必不可少的。
下面**一下每類工作如何開展。
ø專案實施中的技術評審
技術評審可以把一些軟體缺陷消滅在**開發之前,尤其是一些架構方面的缺陷。在專案實施中,為了節省時間應該優先對一些重要環節進行技術評審,這些環節主要有:專案計畫、軟體架構設計、資料庫邏輯設計、系統概要設計等。如果時間和資源允許,可以考慮適當增加評審內容。
專案實施中技術評審如表
1所示:表1
專案實施中技術評審
評審內容
評審重點與意義
評審方式
專案計畫
重點評審進度安排是否合理,否則進度安排將失去意義。
整個團隊相關核心人員共同進行討論、確認。
架構設計
架構決定了系統的技術選型、部署方式、系統支撐併發使用者數量等諸多方面,這些都是評審重點。
邀請客戶代表、領域專家進行較正式地評審。
資料庫設計
主要是資料庫得邏輯設計,這些既影響到程式設計,也影響到未來資料庫的效能表現。
進行非正式評審,在資料庫設計完成後,可以把結果發給相關技術人員,進行「頭腦風暴」方式的評審。
系統概要設計
重點是系統介面的設計。介面設計得合理,可以大大節省時間,盡量避免很多返工。
設計完成後,相關技術人員一起開會討論。
…………
……很多軟體專案由於效能等諸多原因最後導致失敗,實際上都是由於設計階段技術評審做的不夠。一味地節省時間、關鍵工作僅由某幾個人執行、整個專案的成敗依賴於某些「個人英雄」等做法是十分錯誤的,重要的技術評審工作是不可以忽略的。
ø專案實施中的過程檢查
專案經常延期是中國軟體企業實施很多專案時候的特點,因此專案實施中的過程檢查重點是「進度檢查」。在實際工作中,很多專案都是啟動一段時間後就開始不停地加班,使整個團隊處於疲憊狀態,導致工作效率低下,最後把專案計畫丟在一邊。對於這種情況,比較好的做法是不斷地檢查專案計畫與實際進度是否存在偏差,如果存在偏差則找出問題的根源,然後消除引起問題的因素,例如可以調整進度安排或者增加人力投入,這樣就避免了問題不斷放大。
版本檢查在專案實施中也需要特別注意,因為版本混亂會帶來很**煩,尤其進行測試的時候。此外,專案實施時候也應該注意文件檢查,尤其是一些關鍵文件的質量,例如介面文件、使用者手冊等。
ø專案實施中的軟體測試
專案實施相關的全部質量管理工作中,軟體測試的工作量最大。由於很多專案在實施中非常不規範,因此軟體測試一定要把好關。軟體測試應該重點做好測試用例設計、功能測試、效能測試、缺陷管理等工作。
測試用例設計:雖然專案實施中沒有太多時間來設計測試用例,但是這個環節是必不可少的。專案實施中設計測試用例應該根據進度安排,優先設計核心應用模組或核心業務相關的測試用例。設計測試用例的時候可以不設計的特別完善,基本目標是列出測試重點,對測試執行起良好地指導作用,這個時候的測試用例更像是「測試大綱」。
功能測試:軟體首先應該從功能上滿足使用者需求,因此功能測試是質量管理工作中的重中之重。功能測試在產品試執行前一定要開展好,否則將會發生「讓使用者來執行測試」的情況,後果非常嚴重。
效能測試:效能測試是經常容易被忽略的測試。在實施專案過程中,應該充分考慮軟體地效能,執行較慢的軟體仍然不會為使用者所接受。效能測試可以根據使用者對軟體的效能需求來開展,通常系統軟體和銀行、電信等特殊行業應用軟體對效能要求較高,應該盡早進行,這樣更易於早解決問題。
缺陷管理:缺陷跟蹤與管理工作也經常被忽略,很多問題會被遺忘,直到客戶再次發現。建議測試人員在專案實施中仍然採用一些工具進行缺陷管理與跟蹤,保證任何缺陷都得到妥善的處理。
此外,對於一些專案,如果實在沒有測試人員,可以考慮讓開發人員互相進行測試,這樣也可以發現很多缺陷。
專案實施中的質量管理工作是非常複雜的,存在很多不可以控制的因素,例如沒有質量人員、測試環境不具備等。因此,專案實施中的質量管理原則應該是「最大限度地去提高質量」。只有這樣,才能更好地利用現有資源盡可能地提高質量。
專案中的軟體質量管理
專案中的軟體質量管理 提起軟體質量管理,人們更多地會想起 iso9001 cmm cmmi 這些 質量管理聖經 但國內企業做了這麼多年的質量認證,卻沒有使軟體質量有大幅度地提高。實際上,很多企業通過 iso9001 cmm cmmi 等質量認證的目的就不是為了提高質量 有的企業是為了跟風,有的企業則...
專案中的軟體質量管理
專案中的軟體質量管理 提起軟體質量管理,人們更多地會想起 iso9001 cmm cmmi 這些 質量管理聖經 但國內企業做了這麼多年的質量認證,卻沒有使軟體質量有大幅度地提高。實際上,很多企業通過 iso9001 cmm cmmi 等質量認證的目的就不是為了提高質量 有的企業是為了跟風,有的企業則...
專案中的軟體質量管理
專案中的軟體質量管理 提起軟體質量管理,人們更多地會想起 iso9001 cmm cmmi 這些 質量管理聖經 但國內企業做了這麼多年的質量認證,卻沒有使軟體質量有大幅度地提高。實際上,很多企業通過 iso9001 cmm cmmi 等質量認證的目的就不是為了提高質量 有的企業是為了跟風,有的企業則...