项目管理系列之质量管理
??? 提起軟件質(zhì)量管理,人們更多地會想起ISO9001、CMM、CMMI這些“質(zhì)量管理圣經(jīng)”。但國內(nèi)企業(yè)做了這么多年的質(zhì)量認證,卻沒有使軟件質(zhì)量有大幅度地提高。多數(shù)企業(yè)為了節(jié)省成本和趕進度,往往會忽略質(zhì)量管理,導致軟件質(zhì)量很差——投產(chǎn)后的軟件經(jīng)常會被用戶發(fā)現(xiàn)很多Bug。實際上,在項目實施中開展質(zhì)量管理工作十分重要,因為產(chǎn)品上線后的質(zhì)量問題往往意味著更大的投入。
??? 軟件質(zhì)量管理包括以下活動:質(zhì)量計劃編制、質(zhì)量保證、質(zhì)量控制、同行評審、軟件測試、軟件缺陷跟蹤等,優(yōu)秀的軟件質(zhì)量管理能夠在很大程度上減少軟件開發(fā)過程的不確定性。
??? 質(zhì)量計劃是質(zhì)量管理的第一過程域,它主要指依據(jù)公司的質(zhì)量方針、產(chǎn)品描述以及質(zhì)量標準和規(guī)則等制定出來實施方略,其內(nèi)容全面反應用戶的要求,為質(zhì)量小組成員有效工作提供了指南,為項目小組成員以及項目相關人員了解在項目進行中如何實施質(zhì)量保證和控制提供依據(jù),為確保項目質(zhì)量得到保障提供堅實的基礎。
??? 質(zhì)量保證是貫穿整個項目全生命周期的有計劃和有系統(tǒng)的活動,經(jīng)常性地針對整個項目質(zhì)量計劃的執(zhí)行情況進行評估、檢查與改進等工作,向管理者、顧客或其他方提供信任,確保項目質(zhì)量與計劃保持一致。軟件質(zhì)量保證人員以獨立審查方式,從第三方的角度監(jiān)控項目開發(fā)任務的執(zhí)行,就軟件項目是否遵循已制定的計劃、標準和規(guī)程給開發(fā)人員和管理層提供反映產(chǎn)品和過程質(zhì)量的信息和數(shù)據(jù),提高項目透明度,確保項目實施中質(zhì)量問題盡早發(fā)現(xiàn)并解決,協(xié)助軟件開發(fā)組取得高質(zhì)量的軟件產(chǎn)品。
??? 質(zhì)量控制是對階段性的成果進行測試、驗證,為質(zhì)量保證提供參考依據(jù)。
??? 同行評審過程利用技術同行與行業(yè)專家的專業(yè)知識,及早發(fā)現(xiàn)軟件問題。
??? 軟件測試是保證軟件質(zhì)量不可或缺的重要組成部分,經(jīng)過測試計劃、測試案例的設計與評審,引入專業(yè)的測試工具,對測試過程、案例、BUG進行管理,實現(xiàn)自動化回歸測試、性能測試,軟件系統(tǒng)的正確性、穩(wěn)定性均會有大幅提升。
組織級知識庫綜合了項目經(jīng)驗教訓,能夠對缺陷的預防和跟蹤提供有效的幫助。
??? 軟件質(zhì)量管理應該貫穿軟件開發(fā)的全過程,而不僅僅是軟件本身,軟件質(zhì)量不僅僅是一些測試數(shù)據(jù)、統(tǒng)計數(shù)據(jù)、客戶滿意度調(diào)查回函等等,衡量一個軟件質(zhì)量的好壞,應該首先考慮完成該軟件生產(chǎn)的整個過程是否達到了一定質(zhì)量要求。
??? 一、??? 選擇主題的背景及原因/預期結果?
????? 隨著計算機與因特網(wǎng)的普及和社會信息化進程的加快,計算機軟件的地位已發(fā)生了巨大的變化,它已成為支撐社會正常運行和發(fā)展的重要基礎設施。軟件變得越來越復雜,人們對軟件的要求也越來越高,特別是對軟件的可靠性、易用性、應變性和兼容性等各方面都提出了很高的要求。?
??? 軟件的生產(chǎn)方式也發(fā)生了巨大的變化。開始時是手工業(yè)生產(chǎn)方式,軟件的質(zhì)量依賴于軟件編制者個人的技藝和才智。后來,演變?yōu)楣I(yè)化的規(guī)模生產(chǎn),軟件成為軟件公司一批開發(fā)人員共同協(xié)作的產(chǎn)品。這時,軟件產(chǎn)品的質(zhì)量在很大程度上取決于軟件公司實施的開發(fā)過程的優(yōu)化程度和具體的管理水平。現(xiàn)在,又進一步擴展為軟件生產(chǎn)的社會化。一個軟件系統(tǒng)常常要由不同軟件專業(yè)公司生產(chǎn)的軟件構件產(chǎn)品集成而成。于是為保證軟件的質(zhì)量,又要求有相關的統(tǒng)一標準和協(xié)議,以及按照標準進行的測試和認證。軟件質(zhì)量的控制和管理技術是一門實踐的技術,它是根據(jù)軟件開發(fā)的大量實踐經(jīng)驗積累而來的。這其中有很多成功的經(jīng)驗,也不乏慘痛的失敗教訓,例如:
??? (1)在美國宇航局的"旅行者"計劃中,天王星探測器就是因為深度太空網(wǎng)絡軟件發(fā)送信息遲緩和能力衰竭而處于危險之中。
??? (2)軟/硬件干擾問題是使一些航天飛機經(jīng)常推遲發(fā)射時間的主要原因。
??? (3)在美國國防部某項工程中,事先設計好的先進程序無一可用,從而導致AFTI/F-16的首航時間耽擱了一年。坦誠地講,我們國家軟件產(chǎn)業(yè)發(fā)展較晚,目前真正能稱得上是有一定規(guī)模的,具有大型自主軟件開發(fā)能力的軟件公司還不多,還缺乏這種規(guī)?;_發(fā)軟件的實踐經(jīng)驗。因而,人們往往對軟件質(zhì)量管理的重要性和必要性認識不足,理解不深。
??? 近年來,軟件質(zhì)量問題對整個軟件產(chǎn)業(yè)的影響日益加深,軟件質(zhì)量控制工作已經(jīng)成為其中不可或缺的部分。同時,進行軟件質(zhì)量控制也是軟件項目中比較繁重的工作,涉及質(zhì)量計劃編制、質(zhì)量保證、質(zhì)量控制等多個方面。
??? 在很多軟件企業(yè)里,軟件質(zhì)量管理在內(nèi)部開發(fā)產(chǎn)品時做的相對較好:因為產(chǎn)品開發(fā)通常在各個軟件企業(yè)的研發(fā)中心進行,涉及的人員以內(nèi)部為主,進度壓力相對較小,可以投入時間和精力來開展軟件質(zhì)量管理。對于有客戶進行參與的軟件實施項目,多數(shù)企業(yè)為了節(jié)省成本和趕進度,往往會忽略質(zhì)量管理,實際上,很多企業(yè)通過ISO9001、CMM、CMMI等質(zhì)量認證的目的就不是為了提高質(zhì)量:有的企業(yè)是為了跟風,有的企業(yè)則是為了向客戶展示證書。
在軟件開發(fā)實踐中,軟件質(zhì)量管理可以依靠流程管理(如缺陷處理過程、開發(fā)文檔控制管理、發(fā)布過程等),嚴格按軟件工程執(zhí)行,來保證質(zhì)量。如:
??? ·通過從"用戶功能確認書"到"軟件詳細設計"過程的過程定義、控制和不斷改善,確保軟件的"功用性";?
??? ·通過測試部門的"系統(tǒng)測試"、"回歸測試"過程的定義、執(zhí)行和不斷改善,確保軟件的"可靠性"和"可用性";?
??? ·通過測試部門的"性能測試",確保軟件的"效率";?
??? ·通過軟件架構的設計過程及開發(fā)中代碼、文檔的實現(xiàn)過程,確保軟件的"可維護性";?
??? ·通過引入適當?shù)木幊谭椒?、編程工具和設計思路,確保軟件的"可移植性"等等。
建立項目質(zhì)量管理體系,能夠較好地解決目前項目開發(fā)過程存在的主要問題,大幅提升組織的計劃與監(jiān)控能力,使目標管理得到落實,有利于發(fā)揮信息科技的價值,提高軟件交付質(zhì)量,提升客戶服務水平。????
??? 1.規(guī)范項目立項
??? 項目立項過程強調(diào)了項目前期的調(diào)研工作,要求項目立項必須進行業(yè)務可行性分析、技術可行性分析、投入產(chǎn)出分析和項目風險評估,同時要加強項目過程的財務管理和資源管理。項目結項后及時啟動后評價機制,保證所有項目通過同樣的立項過程,這樣做能夠有效地解決項目前期準備工作不夠充分而浪費信息科技資源的問題。????
??? 2.規(guī)范需求管理
??? 需求開發(fā)與管理過程為項目組分析、控制和跟蹤需求提供依據(jù),保證項目范圍變化的可控性。在需求階段建立以技術人員為主導、業(yè)務專家配合的需求開發(fā)分析過程,能夠減少需求定義、非功能需求、運營需求、安全需求、需求可測試等各方面的缺陷。同時,通過同行評審過程、變更管理過程,需求跟蹤矩陣等工具,建立需求準入的有效控制手段和標準,能夠有效解決項目需求不明確以及在開發(fā)過程中需求頻繁變更的問題。
??? 3.提升項目整體管理能力
??? 項目整體管理能力主要體現(xiàn)在集成項目計劃、實施、控制的能力,項目整體管理包括如下幾個方面:項目計劃、跟蹤與監(jiān)控、風險管理、數(shù)據(jù)統(tǒng)計分析過程、軟件質(zhì)量保證等。這幾個方面貫穿、交織于整個軟件開發(fā)過程之中。其中,項目計劃是項目管理的基礎,主要包括工作量、進度以及成本的估計,并根據(jù)估計值制訂項目開發(fā)計劃,包括項目范圍、進度計劃、質(zhì)量管理、配置管理、外包管理、跟蹤與監(jiān)控、測試管理、資源管理、溝通管理、培訓等子計劃;跟蹤與監(jiān)控過程、風險管理及數(shù)據(jù)統(tǒng)計分析過程主要根據(jù)項目計劃度量項目進度、成本、質(zhì)量、風險、用戶滿意度等方面的數(shù)據(jù)及時分析項目實施過程出現(xiàn)的偏差,有效防范和化解項目的風險;軟件質(zhì)量保證人員在項目計劃階段協(xié)助項目經(jīng)理制訂項目計劃,提供關于項目估算、標準使用、過程裁剪、生命周期模型選擇等方面的咨詢和指導,在監(jiān)督過程中一旦發(fā)現(xiàn)不一致的情況,及時向項目經(jīng)理報告,提供解決建議并跟蹤解決,使組織及項目經(jīng)理對項目的情況及風險管理能力得到進一步提高。
??? 除了規(guī)范過程活動,項目經(jīng)理的個人管理能力、溝通能力以及統(tǒng)一引入適當?shù)捻椖抗芾碥浖ぞ吆瓦^程知識庫對于提高項目整體管理能力及管理效率也起到十分重要的作用。
??? 4.降低外包管理風險
??? 外包管理過程包括制訂外包管理計劃、外包商選擇、簽訂外包合同、跟蹤監(jiān)控合同執(zhí)行、驗收測試、交付驗收、外包商評價等關鍵活動,外包經(jīng)理與質(zhì)量保證人員定時組織評審外包商的開發(fā)計劃、工作產(chǎn)品,跟蹤外包項目計劃執(zhí)行情況、配置活動、質(zhì)量保證活動,將有效減少項目過程中信息不對稱,提高對外包公司的管理能力,外包項目成功率,降低和規(guī)避外包風險。
?? ?5.提高軟件質(zhì)量
?
?一、??? 應用的目的?
???? 軟件是信息技術的核心。軟件產(chǎn)品的質(zhì)量直接影響到國民經(jīng)濟信息系統(tǒng)和國際裝備系統(tǒng)的可靠性與安全運行,在國內(nèi)外軟件市場激烈的競爭中,提高軟件質(zhì)量已經(jīng)成為一個軟件企業(yè)生存發(fā)展的關鍵問題,軟件企業(yè)或從事軟件工程項目的機構在實踐工作中在軟件質(zhì)量問題上應認識到:
???? 1、 軟件本身的特點和目前軟件開發(fā)模式使隱藏在軟件內(nèi)部的質(zhì)量缺陷不可能完全避免,這包括:
????? 1).軟件需求模糊以及需求的變更,從根本上影響著軟件產(chǎn)品的質(zhì)量。
????? 2).目前廣為采用的手工開發(fā)方式難于避免出現(xiàn)差錯。
????? 3).軟件開發(fā)過程中各個環(huán)節(jié)的接口處不易保證正確性。
????? 4).軟件測試技術具有局限性。
????? 5).軟件質(zhì)量管理的實際困難。
???????? A. 軟件質(zhì)量指標許多尚未量化。
???????? B.目前許多軟件機構的產(chǎn)品質(zhì)量責任尚未落實到人
???????? C.不規(guī)范的開發(fā)習慣難于糾正。
???????? D.人員之間的溝通容易出現(xiàn)問題。
???????? E.軟件項目組中人員流動會影響產(chǎn)品質(zhì)量。
?? 2、 從技術上解決軟件質(zhì)量問題的效果十分有限
???? 1).構件技術尚未普及
???? 2).我們對軟件質(zhì)量本身的認識還很不成熟
???? 3).我們尚未找到理想的軟件測試技術
? 3、 技術人員和管理人員在軟件開發(fā)工作中仍有一些不正確的認識需要糾正,這需要在企業(yè)建立和實施質(zhì)量體系的過程中加以解決。
? 4、 目前多數(shù)軟件企業(yè)的質(zhì)量管理尚未得到應有的重視,他們需要認真總結教訓,并將其滲入質(zhì)量體系形式制度化的規(guī)定。
? 5、 軟件開發(fā)必須靠加強管理來實現(xiàn)工程化,質(zhì)量管理要體現(xiàn)在建立和實施開發(fā)規(guī)范中,保證軟件工作的各個步驟和各個崗位的工作都符合要求,并且即使產(chǎn)品在使用中出現(xiàn)了問題,也能及時的發(fā)現(xiàn),及時妥善解決。
???? 科學的軟件質(zhì)量管理、控制、度量和保障的方法和手段是可以形成一種面向軟件產(chǎn)業(yè)發(fā)展的服務能力的,一旦這種能力與軟件產(chǎn)業(yè)結合并廣為產(chǎn)業(yè)界所接受,它將對軟件產(chǎn)業(yè)的發(fā)展起到巨大的推動作用。
???? 質(zhì)量監(jiān)測分析時,對于已發(fā)現(xiàn)的不合格或潛在不合格,應制定相應的糾正措施或預防措施,以消除不合格或潛在不合格的原因,防止不合格的發(fā)生。糾正措施或預防措施制定后,應對質(zhì)量計劃進行相應的調(diào)整,保證項目的順利實施。
???? 項目收尾包括項目評估和項目終止兩個階段。項目收尾階段的質(zhì)量控制是一個非常重要而又容易忽視的內(nèi)容。
???? 項目質(zhì)量評估不僅僅是在項目完成后進行,還包括對項目實施過程中的各個關鍵點的質(zhì)量評估。項目質(zhì)量評估看起來屬于事后控制,但它的目的不是為了改變那些已經(jīng)發(fā)生的事情,而是試圖抓住項目質(zhì)量合格或不合格的精髓,以使將來的項目質(zhì)量管理能從中獲益。
???? 項目終止階段,是在決策項目終止后,檢查項目文件資料完備,包括項目施工質(zhì)量驗評表、竣工報告等,同時進行項目總結。項目總結是一個把實際運行情況與項目計劃不斷比較以提煉經(jīng)驗教訓的過程。通過項目質(zhì)量計劃和總結,項目過程中的經(jīng)驗和教訓將得到完整的記錄和升華,成為“組織財富”。
???? 3. 軟件產(chǎn)品質(zhì)量的保證是軟件項目管理的一個重要內(nèi)容。軟件項目的目標不僅僅是進度目標和成本目標,更重要的就是質(zhì)量目標,質(zhì)量直接決定了軟件產(chǎn)品能否生存。前提是我們在做項目計劃的時候首先要根據(jù)需求確定質(zhì)量目標和制定質(zhì)量計劃。
???? 1) 過程
???? 要提高質(zhì)量需要強調(diào)我們對產(chǎn)品質(zhì)量的保證不是依靠的團隊中一兩個重要成員,而是我們有相應的過程和方法論來保證質(zhì)量,保證產(chǎn)品質(zhì)量的過程是可以持續(xù)的。對于很多項目我們都不建議采用CMMI里面較為重量級的各種過程,但是對于產(chǎn)品質(zhì)量提升有幫助的各種過程我們?nèi)匀恍枰⑵湟?guī)范化和流程化。與此相關的主要有規(guī)范類的文件,比如需求編寫模板和規(guī)范,設計規(guī)范和模板,代碼編寫規(guī)范和模板,數(shù)據(jù)庫設計的規(guī)范和模板,界面設計規(guī)范和模板,測試用例模板。對于過程管理方面需要定義的主要有任務和工件的輸入輸出要求,配置管理和源代碼管理,軟件生命周期模型,缺陷跟蹤和管理,問題和風險跟蹤管理,變更管理。
2) 培訓
??? 最重要的質(zhì)量意識就是預防勝于檢查,強調(diào)一次要事情做對,強調(diào)上游工序為下游提供合格的中間產(chǎn)出物,盡量減少各種缺陷的泄露。很多時候質(zhì)量問題并不復雜,更多是團隊成員沒有質(zhì)量意識,沒有負責任的工作態(tài)度。提升質(zhì)量最關鍵有兩個方面,首先是我們都有意愿和意識來提升產(chǎn)品質(zhì)量,其次是我們要有相應的能力和技能來保證產(chǎn)出物的質(zhì)量。
???? 第一點我們依靠的團隊績效規(guī)則的建立,團隊建設,質(zhì)量文化的組建形成,員工態(tài)度和責任感的培養(yǎng)等內(nèi)容。第二點我們強調(diào)的是培訓,以師帶徒,自我學習,個人知識管理方法,問題管理,學習型組織,讀書會等各種方式來提升技能。
3) 評審
???? 評審是軟件開發(fā)過程中保證質(zhì)量的一個重要活動,項目軟件開發(fā)往往會跟蹤選擇的軟件生命周期模型分為多個階段,對于較大點的項目還有嚴格的崗位角色劃分,每個階段都是不同的成員在進行工作。因此如果各個階段的產(chǎn)出物的質(zhì)量不能夠很好保證的話,將導致缺陷泄露和后續(xù)大量的返工,這些都是我們不希望看到的壞質(zhì)量成本投入。
???? 首先評審不是來檢查產(chǎn)出物的各種低級錯誤的,每個人在思考問題上都有局限性和盲點。評審是涉及到需求,設計,開發(fā),測試等各種角色的成員共同來從不同的角度來發(fā)現(xiàn)工件的各種問題。比如對于需求問題,測試人員在評審的時候重點關注的是該條需求描述和業(yè)務規(guī)則的可測試性,而設計和開發(fā)重點是可實現(xiàn)性。評審涉及到正式同行評審,多人復審,單人復審,代碼走查等各種方式,需要根據(jù)項目的實際情況來選擇使用。我們需要重點防止的就是需求和總體設計階段的缺陷泄露,對于這種泄露往往都會造成大量的返工。
4) 測試
???? 測試是保證軟件質(zhì)量的最后一道關口,是一種迫不得已的行為,根據(jù)我們的質(zhì)量意識應該要盡量做到問題不是到測試階段才發(fā)現(xiàn)和暴露出來。很多問題在測試階段才發(fā)現(xiàn)返工成本都是很大的。測試有單元測試,集成測試和系統(tǒng)測試,驗收測試等各個階段。在某一個功能或模塊在交付給測試人員進行測試的時候,開發(fā)人員應該根據(jù)需求和設計進行較為充分的自測。這樣的話系統(tǒng)測試的重點才能夠真正去關注全流程的貫通和各種可能的業(yè)務場景組合和編輯,而不是關注某一個具體的實現(xiàn)功能點。
???? 敏捷開發(fā)里面強調(diào)測試驅動和單元測試,但敏捷里面的單元測試還有個重要的作用是通過單元測試的編寫來細化需求和設計,這對團隊每個成員都會有較高的技能要求。同時要注意單元測試的投入成本,很多時候我們來開發(fā)人員的自測和系統(tǒng)測試都做不好就去盲目的實施單元測試是得不償失的。
? ??? 總結?
??? 每個項目的實施總是擁有同樣的總體目標:質(zhì)量、時間和成本。三者是一個相互制約、相互影響的統(tǒng)一體,其中任一項目標變化,都會引起另兩個目標變化,并受其制約。如何合理的保證項目質(zhì)量,正確處理質(zhì)量與時間、成本之間的矛盾是項目質(zhì)量管理的一個難點,這需要整合項目所有方面的內(nèi)容,保證按時、低成本地實現(xiàn)預定的質(zhì)量目標。
???? 根據(jù)側重點不同,項目可分為質(zhì)量傾斜型、工期傾斜型及成本傾斜型體系。我們在編制項目計劃時,一般而言是時間、成本、質(zhì)量標準均已確定,在項目實施過程中就需在從客觀因素、具體情況出發(fā),根據(jù)將要采取的行動和可能導致的后果進行綜合分析研究;按切合實際的原則,使項目進展平衡有節(jié)奏地進行,以求達到預期目標。避免出現(xiàn)工期緊張或成本減少,導致質(zhì)量降低的現(xiàn)象,而質(zhì)量下降又往往造成返工等后果而導致延長工期和增加成本。
???? 在IT業(yè)處于發(fā)展的初級階段時,由于大多數(shù)軟件比較簡單,軟件質(zhì)量較容易控制,對其的測試工作也不復雜,往往是軟件開發(fā)企業(yè)在開發(fā)完成后進行一下簡單的檢測就可以了。但在IT業(yè)發(fā)展到一個高級階段后,系統(tǒng)越來越精密,而軟件也越來越復雜,影響的范圍也不斷擴大。因此,這時期開發(fā)的軟件就必須進行十分嚴格的測試。否則,不僅會引發(fā)企業(yè)銷售收入下降和運營成本的增加,甚至給企業(yè)帶來法律責任。而在金融、電信這種系統(tǒng)趨于全國集中,風險波及面大,業(yè)務影響廣泛的行業(yè),其產(chǎn)生的后果更是不堪設想。全面、嚴謹?shù)臏y試和評估是降低企業(yè)IT系統(tǒng)風險的最佳實踐,沒有經(jīng)過質(zhì)量測試就上線運行的IT系統(tǒng)猶如一顆“定時炸彈”。
???? 人是一切人類活動的基礎,要提高軟件開發(fā)質(zhì)量,就必須以人為本,首先提高人的質(zhì)量。通過標準化、規(guī)范化的建設和落實,通過創(chuàng)建良好的社會和企業(yè)質(zhì)量環(huán)境,在企業(yè)內(nèi)部不斷改進開發(fā)過程質(zhì)量、項目管理質(zhì)量,改進質(zhì)量措施。針對具體項目進行良好的分析設計規(guī)劃,編寫出質(zhì)量優(yōu)良的系統(tǒng)程序,確保數(shù)據(jù)(信息)及其管理的質(zhì)量,為客戶、為社會提供滿意的產(chǎn)品和服務。
? 相信隨著企業(yè)對軟件質(zhì)量重視程度的提高,質(zhì)量管理在項目中的應用越來越規(guī)范,不久的將來,我國的軟件行業(yè)的水平將會得到巨大的提升。
轉載于:https://www.cnblogs.com/activiti/p/7088672.html
總結
以上是生活随笔為你收集整理的项目管理系列之质量管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用模块-----configparse
- 下一篇: webpack初学笔记 之 小案例篇de