論項目中的軟件質(zhì)量管理
發(fā)布時間:2011/6/29 10:36:00
摘 要:軟件項目的質(zhì)量管理指的是保證項目滿足其目標要求所需要的過程,它包括編制質(zhì)量計劃、質(zhì)量控制、質(zhì)量保證等過程。軟件的質(zhì)量是軟件開發(fā)各個階段質(zhì)量的綜合反映,每個環(huán)節(jié)都可能帶來產(chǎn)品的質(zhì)量問題,因此軟件的質(zhì)量管理貫穿了整個軟件開發(fā)周期。軟件項目的質(zhì)量管理,不僅確保項目最終交付的產(chǎn)品滿足質(zhì)量要求,而且要保證項目實施過程中階段性成果的質(zhì)量,也就是保證軟件需求說明、設計和代碼的質(zhì)量,包括各種項目文檔的質(zhì)量。
關鍵詞:質(zhì)量管理,質(zhì)量計劃,質(zhì)量控制,質(zhì)量保證;
一、研究軟件項目質(zhì)量管理的背景
提起如今的IT項目,軟件工程倍受關注。而軟件的質(zhì)量更是眾人關注的焦點,因為目前還沒有一套完善的評估標準。甚至有人提出,現(xiàn)在的軟件開發(fā)根本提不上是“工程”,因為它太稚嫩了,還沒有一套成熟的標準來比照;因而軟件項目極易出現(xiàn)失敗或失誤。大量實踐證明,軟件工程項目的成敗,通常是因為管理問題(協(xié)同工作的能力),而不是技術上的問題。要想做一盤“完美”的軟件大餐,質(zhì)量管理的作用是不言而喻的。
二、軟件質(zhì)量管理的主要內(nèi)容
質(zhì)量管理主要包括三個過程:質(zhì)量計劃制定、質(zhì)量保證和質(zhì)量控制。
質(zhì)量計劃:是質(zhì)量管理的第一過程域,它主要指依據(jù)公司的質(zhì)量方針、產(chǎn)品描述以及質(zhì)量標準和規(guī)則等制定出來實施方略,其內(nèi)容全面反應用戶的要求,為質(zhì)量小組成員有效工作提供了指南,為項目小組成員以及項目相關人員了解在項目進行中如何實施質(zhì)量保證和控制提供依據(jù),為確保項目質(zhì)量得到保障提供堅實的基礎。
質(zhì)量保證:是貫穿整個項目全生命周期的有計劃和有系統(tǒng)的活動,經(jīng)常性地針對整個項目質(zhì)量計劃的執(zhí)行情況進行評估、檢查與改進等工作,向管理者、顧客或其他方提供信任,確保項目質(zhì)量與計劃保持一致。
質(zhì)量控制:是對階段性的成果進行測試、驗證,為質(zhì)量保證提供參考依據(jù)。
在軟件實施項目中,質(zhì)量保證對應于技術評審與過程檢查,質(zhì)量控制對應于軟件測試等工作.
2.1 質(zhì)量計劃編制
現(xiàn)代質(zhì)量管理的基本宗旨是:“質(zhì)量出自計劃,而非出自檢查”。只有做出精準的質(zhì)量計劃,才能指導項目的實施、做好質(zhì)量控制。
編制項目的質(zhì)量計劃,首先必須確定項目的范圍、中間產(chǎn)品和最終產(chǎn)品,然后明確關于中間產(chǎn)品和最終產(chǎn)品的有關規(guī)定、標準,確定可能影響產(chǎn)品質(zhì)量的技術要點,并找出能夠確保高效滿足相關規(guī)定、標準的過程方法。編制質(zhì)量計劃通常采用流程圖、因果分析圖等方法對項目進行分析,確定需要監(jiān)控的關鍵元素,設置合理的見證點(W點)、停工待檢點(H點),并制定質(zhì)量標準:
顯示系統(tǒng)的各種成分是如何相互關系的,幫助我們預測在何處可能發(fā)生何種質(zhì)量問題,并由此幫助開發(fā)處理他們的辦法。
因果分析圖(也稱魚刺圖)
對于復雜的項目,編制質(zhì)量計劃時可以采用因果分析圖,描述相關的各種原因和子原因如何產(chǎn)生潛在問題或影響,將影響質(zhì)量問題的“人員、設備、參考資料、方法、環(huán)境”等各方面的原因進行細致的分解,方便地在質(zhì)量計劃中制定相應的預防措施。其次,質(zhì)量計劃中還必須確定有效的質(zhì)量管理體系,明確質(zhì)量監(jiān)理人員對項目質(zhì)量負責和各級質(zhì)量管理人員的權(quán)限。戴明環(huán)(又名PDCA循環(huán)法)作為有效的管理工具在質(zhì)量管理中得到廣泛的應用,它采用計劃——執(zhí)行——檢查——措施的質(zhì)量環(huán),質(zhì)量計劃中必須將質(zhì)量環(huán)上各環(huán)節(jié)明確落實到各責任單位,才能保證質(zhì)量計劃的有效實施。
2.2 按照質(zhì)量計劃實施有效的質(zhì)量控制
質(zhì)量計劃確定后,按照其建立的質(zhì)量管理體系,各責任單位就必須按照PDCA質(zhì)量環(huán)的要求,實施有效的質(zhì)量控制。質(zhì)量控制應貫穿于項目的整個過程,它可分為監(jiān)測和控制兩個階段:監(jiān)測的目的就是收集、記錄和匯報有關項目質(zhì)量的數(shù)據(jù)信息;控制就是使用質(zhì)量監(jiān)測提供的數(shù)據(jù),進行控制,確保項目質(zhì)量與計劃保持一致。
在質(zhì)量監(jiān)測過程中,對于質(zhì)量計劃中設置的見證點、停工待檢點,質(zhì)量監(jiān)測人員要按照作業(yè)程序及時進行測量檢查(其中對于停工待檢點必須由監(jiān)理人員簽字認可后才能進入下一道工序),以確定項目成果(或階段成果)是否符合相關的質(zhì)量標準。對于見證點或停工待檢點要防止跳過檢查,因為避免錯誤的成本總是大大低于補救錯誤的成本。 對質(zhì)量監(jiān)測的結(jié)果應采用相應的統(tǒng)計方法進行分析,如帕累托圖法(按發(fā)生頻率排序的直方圖,它顯示了可識別原因的種類和所造成的結(jié)果的數(shù)量)等。通過統(tǒng)計分析對人員、設備、參考資料、方法、環(huán)境等影響項目質(zhì)量的因素進行監(jiān)控,確定項目實施過程是否在控制之中,同時進行趨勢分析,對一些偏向于不合格的趨勢及早進行控制。 質(zhì)量控制階段應根據(jù)驗收數(shù)據(jù)做出驗收決定,確定是否進入下一步工序。對于質(zhì)量監(jiān)測中發(fā)現(xiàn)的不合格,應及時利用“因果分析圖”等方法分析原因,并進行適宜的處置,保證不合格得到識別和有效的控制。不合格處置包括返工、返修、降級、讓步放行、報廢等形式。
質(zhì)量監(jiān)測分析時,對于已發(fā)現(xiàn)的不合格或潛在不合格,應制定相應的糾正措施或預防措施,以消除不合格或潛在不合格的原因,防止不合格的發(fā)生。糾正措施或預防措施制定后,應對質(zhì)量計劃進行相應的調(diào)整,保證項目的順利實施。
項目收尾包括項目評估和項目終止兩個階段。項目收尾階段的質(zhì)量控制是一個非常重要而又容易忽視的內(nèi)容。
項目質(zhì)量評估不僅僅是在項目完成后進行,還包括對項目實施過程中的各個關鍵點的質(zhì)量評估。項目質(zhì)量評估看起來屬于事后控制,但它的目的不是為了改變那些已經(jīng)發(fā)生的事情,而是試圖抓住項目質(zhì)量合格或不合格的精髓,以使將來的項目質(zhì)量管理能從中獲益。
項目終止階段,是在決策項目終止后,檢查項目文件資料完備,包括項目施工質(zhì)量驗評表、竣工報告等,同時進行項目總結(jié)。項目總結(jié)是一個把實際運行情況與項目計劃不斷比較以提煉經(jīng)驗教訓的過程。通過項目質(zhì)量計劃和總結(jié),項目過程中的經(jīng)驗和教訓將得到完整的記錄和升華,成為“組織財富”。
2.3 對軟件質(zhì)量保證的認識
2.3.1 有關SQA的理論
我們都知道一個項目的主要內(nèi)容是:成本、進度、質(zhì)量;良好的項目管理就是綜合三方面的因素,平衡三方面的目標,最終依照目標完成任務。項目的這三個方面是相互制約和影響的,有時對這三方面的平衡策略甚至成為一個企業(yè)級的要求,決定了企業(yè)的行為,我們知道 IBM的軟件是以質(zhì)量為最重要目標的,而微軟的“足夠好的軟件”策略更是耳熟能詳,這些質(zhì)量目標其實立足于企業(yè)的戰(zhàn)略目標。所以用于進行質(zhì)量保證的SQA工作也應當立足于企業(yè)的戰(zhàn)略目標,從這個角度思考SQA,形成對SQA的理論認識。
軟件界已經(jīng)達成共識的:影響軟件項目進度、成本、質(zhì)量的因素主要是 “人、過程、技術”。首先要明確的是這三個因素中,人是第一位的。
現(xiàn)在許多實施 CMM的人員沉溺于CMM的理論過于強調(diào)“過程”,這是很危險的傾向。這個思想傾向在國外受到了猛烈抨擊,從某種意義上各種敏捷過程方法的提出就是對強調(diào)過程的一種反思。 “XP”中的一個思想“人比過程更重要” 是值得我們思考的。我個人的意見在進行過程改進中堅持“以人為本”,強調(diào)過程和人的和諧。
根據(jù)現(xiàn)代軟件工程對眾多失敗項目的調(diào)查,發(fā)現(xiàn)管理是項目失敗的主要原因。這個事實的重要性在于說明了 “要保證項目不失敗,我們應當更加關注管理”,注意這個事實沒有說明另外一個問題“良好的管理可以保證項目的成功”,F(xiàn)在很多人基于一種粗糙的邏輯,從一個事實反推到的這個結(jié)論,在邏輯上是錯誤的,這種錯誤形成了更加錯誤的做法,這點在SQA的理解上是體現(xiàn)較深。
如果我們考證一下歷史的沿革,應當更加容易理解 CMM的本質(zhì)。CMM首先是作為一個“評估標準”出現(xiàn)的,主要評估的是美國國防部供應商保證質(zhì)量的能力。CMM關注的軟件生產(chǎn)有如下特點:
(1)質(zhì)量重要
(2)規(guī)模較大
這是 CMM產(chǎn)生的原因。它引入了“全面質(zhì)量管理”的思想,尤其側(cè)重了“全面質(zhì)量管理”中的“過程方法”,并且引入了“統(tǒng)計過程控制”的方法?梢哉f這兩個思想是CMM背后的基礎。
上面這些內(nèi)容形成了我們對軟件過程地位、價值的基本理解;在這個基礎上我們可以引申討論 SQA。
2.3.2 SQA的工作內(nèi)容和工作方法
2.3.2.1 計劃
針對具體項目制定 SQA計劃,確保項目組正確執(zhí)行過程。制定SQA計劃應當注意如下幾點:
有重點:依據(jù)企業(yè)目標以及項目情況確定審計的重點。
明確審計內(nèi)容:明確審計哪些活動,那些產(chǎn)品。
明確審計方式:確定怎樣進行審計。
明確審計結(jié)果報告的規(guī)則:審計的結(jié)果報告給誰。
2.3.2.2 審計/證實
依據(jù) SQA計劃進行SQA審計工作,按照規(guī)則發(fā)布審計結(jié)果報告。 注意審計一定要有項目組人員陪同,不能搞突然襲擊。雙方要開誠布公,坦誠相對。 審計的內(nèi)容:是否按照過程要求執(zhí)行了相應活動,是否按照過程要求產(chǎn)生了相應產(chǎn)品。
2.3.2.3 問題跟蹤
對審計中發(fā)現(xiàn)的問題,要求項目組改進,并跟進直到解決。
2.3.2.4 SQA的素質(zhì)
過程為中心:應當站在過程的角度來考慮問題,保證了過程, QA就盡到了責任。
服務精神:為項目組服務,幫助項目組確保正確執(zhí)行過程。
了解過程:深刻了解企業(yè)的工程,并具有一定的過程管理理論知識。
了解開發(fā):對開發(fā)工作的基本情況了解,能夠理解項目的活動。轉(zhuǎn)自項目管理者聯(lián)盟
溝通技巧:善于溝通,能夠營造良好的氣氛,避免審計活動成為一種找茬活動。\
三、項目中質(zhì)量管理的原則
在軟件項目實施中,由于進度和成本兩大因素的影響,它的質(zhì)量管理與產(chǎn)品開發(fā)有著很大的差別。因此,在項目實施中做好質(zhì)量管理工作應該堅持自己的原則。
通過網(wǎng)上各種資料的整合和整理,以下幾個原則我認為是比較合理的:
·不但要主觀認識到質(zhì)量的重要性,同時還要落實到行動中。
軟件質(zhì)量管理的重要性已經(jīng)逐漸被國內(nèi)的IT企業(yè)認可,但是要落實到具體的項目實施工作中,并通過它提高軟件質(zhì)量,還有一段很長的路要走。因為幾乎所有的軟件公司都灌輸著“進度高于一切”的思想,只要是為了趕進度和發(fā)布產(chǎn)品,所有影響進度的工作都可以忽略。
因此,把想法落實到實際工作中是做好軟件質(zhì)量管理的第一原則。
· 樹立提高質(zhì)量就是尊重客戶的思想。
可以說,目前很多公司都有“愚弄客戶”的嫌疑,不管是有心的還是無意的。很多公司實施項目時只要能拿到“錢”就達到目的了,因此也就不在乎是否掩蓋缺陷和敷衍客戶。至于后果,那是以后的事情了。
在軟件產(chǎn)業(yè)發(fā)達的今天,已經(jīng)是客戶的買方市場,客戶永遠會選擇質(zhì)量和服務都表現(xiàn)良好的產(chǎn)品來滿足自己的需求。因此,我們應該尊重客戶,把客戶放在“上帝”的位置上,認證做好質(zhì)量。
·建立規(guī)范的質(zhì)量保證體系,逐步使軟件開發(fā)進入良性循環(huán)狀態(tài)。
在沒有開發(fā)規(guī)范的前提下,軟件團隊是不能開發(fā)出高質(zhì)量軟件的。因此軟件團隊一定要建立規(guī)范的質(zhì)量保證體系,同時把規(guī)范體系逐步落實到工作中。如果急功近利,不但會做很多浪費人力和物力的無效工作,還會給客戶留下不好的印象。
·項目實施中的技術評審
技術評審可以把一些軟件缺陷消滅在代碼開發(fā)之前,尤其是一些架構(gòu)方面的缺陷。在項目實施中,為了節(jié)省時間應該優(yōu)先對一些重要環(huán)節(jié)進行技術評審,這些環(huán)節(jié)主要有:項目計劃、軟件架構(gòu)設計、數(shù)據(jù)庫邏輯設計、系統(tǒng)概要設計等。如果時間和資源允許,可以考慮適當增加評審內(nèi)容。
很多軟件項目由于性能等諸多原因最后導致失敗,實際上都是由于設計階段技術評審做的不夠。一味地節(jié)省時間、關鍵工作僅由某幾個人執(zhí)行、整個項目的成敗依賴于某些“個人英雄”等做法是十分錯誤的,重要的技術評審工作是不可以忽略的。
·項目實施中的過程檢查
項目經(jīng)常延期是中國軟件企業(yè)實施很多項目時候的特點,因此項目實施中的過程檢查重點是“進度檢查”。在實際工作中,很多項目都是啟動一段時間后就開始不停地加班,使整個團隊處于疲憊狀態(tài),導致工作效率低下,最后把項目計劃丟在一邊。對于這種情況,比較好的做法是不斷地檢查項目計劃與實際進度是否存在偏差,如果存在偏差則找出問題的根源,然后消除引起問題的因素,例如可以調(diào)整進度安排或者增加人力投入,這樣就避免了問題不斷放大。
版本檢查在項目實施中也需要特別注意,因為版本混亂會帶來很大麻煩,尤其進行測試的時候。此外,項目實施時候也應該注意文檔檢查,尤其是一些關鍵文檔的質(zhì)量,例如接口文檔、用戶手冊等。
·項目實施中的軟件測
項目實施相關的全部質(zhì)量管理工作中,軟件測試的工作量最大。由于很多項目在實施中非常不規(guī)范,因此軟件測試一定要把好關。軟件測試應該重點做好測試用例設計、功能測試、性能測試、缺陷管理等工作。
測試用例設計:雖然項目實施中沒有太多時間來設計測試用例,但是這個環(huán)節(jié)是必不可少的。項目實施中設計測試用例應該根據(jù)進度安排,優(yōu)先設計核心應用模塊或核心業(yè)務相關的測試用例。設計測試用例的時候可以不設計的特別完善,基本目標是列出測試重點,對測試執(zhí)行起良好地指導作用,這個時候的測試用例更像是“測試大綱”。
功能測試:軟件首先應該從功能上滿足用戶需求,因此功能測試是質(zhì)量管理工作中的重中之重。功能測試在產(chǎn)品試運行前一定要開展好,否則將會發(fā)生“讓用戶來執(zhí)行測試”的情況,后果非常嚴重。
性能測試:性能測試是經(jīng)常容易被忽略的測試。在實施項目過程中,應該充分考慮軟件地性能,運行較慢的軟件仍然不會為用戶所接受。性能測試可以根據(jù)用戶對軟件的性能需求來開展,通常系統(tǒng)軟件和銀行、電信等特殊行業(yè)應用軟件對性能要求較高,應該盡早進行,這樣更易于早解決問題。
缺陷管理:缺陷跟蹤與管理工作也經(jīng)常被忽略,很多問題會被遺忘,直到客戶再次發(fā)現(xiàn)。建議測試人員在項目實施中仍然采用一些工具進行缺陷管理與跟蹤,保證任何缺陷都得到妥善的處理。
此外,對于一些項目,如果實在沒有測試人員,可以考慮讓開發(fā)人員互相進行測試,這樣也可以發(fā)現(xiàn)很多缺陷。
項目實施中的質(zhì)量管理工作是非常復雜的,存在很多不可以控制的因素,例如沒有質(zhì)量人員、測試環(huán)境不具備等。因此,項目實施中的質(zhì)量管理原則應該是“最大限度地去提高質(zhì)量”。只有這樣,才能更好地利用現(xiàn)有資源盡可能地提高質(zhì)量。
四、總結(jié)
清晰、明確的軟件質(zhì)量方針和計劃是質(zhì)量控制和管理的基礎,而過程質(zhì)量的提高時保證產(chǎn)品質(zhì)量的根本。本文主要分為兩部分,一是軟件項目質(zhì)量管理的主要內(nèi)容,以及相關介紹分析,二是項目中質(zhì)量管理的原則,通過對軟件項目質(zhì)量管理的內(nèi)容分析和所需堅持的八大原則,讀者將會對軟件項目質(zhì)量管理的相關認識有更深層次的了解,從而更好的進行軟件質(zhì)量管理,提高軟件產(chǎn)品質(zhì)量,提高企業(yè)效益。 (資料來源:項目管理者聯(lián)盟)