淺論一種加強軟件項目管理的實踐模式
摘要:本文認真分析了目前國內軟件項目管理中出現的問題,以提高軟件質量、降低成本、加強軟件項目的可控性為目標,在深入研究和探討CMM的基礎上結合軟件過程.給出了一種加強軟件項目管理的實踐模式。該實踐模式定義了 CMM中的6個關鍵過程域和3個工作組.并從項目的開發時間和質量方面做效率分析,強調了軟件過程對軟件項目管理的重要性。
關鍵詞:軟件項目;軟件過程;CMM;KPA
1.引言
項目管理(PM,projectmanagement)是指利用現有的知識、方法和技術手段,有效地計劃、調度、控制和跟蹤項目的開始、執行、直止終止的過程,是項目順利實現的有效手段。軟件項目管理則是在項目管理的基礎上,結合軟件產品的實際,利用工程的概念和方法來開發與維護軟件,對成本、風險、時間、質量、過程、配置等進行分析、管理、控制,最終目的是為了讓軟件項目的整個生命周期都在管理者的控制范圍內,以預定成本按期、按質完成軟件的開發并交付用戶使用。目前,軟件產品已廣泛應用于各個領域,但是很多軟件項目的成功率并不高.雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范.但并沒有從根本上提高軟件項目管理問題,這就導致軟件產品質量不穩定甚至是項目的失敗,同時也損害了用戶的利益。本文結合我國軟件項目管理的特點并經實踐應用.以提高軟件質量、降低成本、加強軟件項目的可控性為目標,通過對CMM的研究和改進,給出了一個基于CMM加強軟件項目管理的實踐模式,在這個模式中對目前 CMM中的KPA做適當的裁減,定義了6個關鍵過程域和3個工作組。
2.軟件項目管理中目前存在的問題
影響軟件項目成功率的因素主要是軟件質量問題,而在整個軟件項目的實施過程中需求不明確、跟蹤和監督不力、缺乏客觀的軟件評審和軟件配置以及風險管理意識不足等都阻礙著軟件質量的提高。
2.1需求不明確
需求管理是軟件項目管理中非常關鍵的一個步驟.需求分析的完整與否可以降低軟件質量、延長項目周期、加大成本。由于用戶對計算機系統認識的不足,對于系統的需求往往比較模糊,遺漏甚至是錯誤的問題經常出現(包括管理流程、業務流程、數據或報表的分析處理等),但這些問題往往沒有暴露給開發人員,而是隨著項目的進展才逐漸明確。對于開發人員來說,需求的變更意味著軟件產品的部分內容必須重新開發,而對于整個軟件項目管理而言,勢必要重新分配資源、調整計劃、估算成本等等,導致軟件產品質量下降。
2.2跟蹤和監督不力
跟蹤和監督主要針對過程而言,也是項目管理中最容易被忽視的環節。軟件項目過程由多個任務構成,大部分任務都有前置任務和后置任務,這就要求項目管理者要嚴格跟蹤和監督每一個任務。任務的完成主要從時間進度和質量兩方面來衡量,還要充分考慮因客戶方引起的一些客觀因素(更改需求分析等)。項目管理者雖然制定了具體的項目進度內容,但如果缺乏有效的跟蹤和監督機制,對于每一個階段所要完成的任務疏于評價,就會影響下階段軟件產品的質量,有時甚至是軟件產品的重新開發,最終影響整個軟件項目。
2.3缺乏客觀的軟件評審
客觀的軟件評審是軟件產品質量的直接保障,軟件評審一直貫穿于整個軟件項目的過程中,對軟件產品的評審應有客戶使用人員和軟件業中的同行來進行?蛻羰褂萌藛T對軟件產品做階段性的評審可以及時發現軟件產品功能方面的不足,同行評審可以從軟件業的規范及標準去發現問題.軟件評審可以降低軟件開發的成本提高軟件產品的質量。大多情況下項目管理者沒有做任何階段性的評審,通常只是在軟件產品開發基本完成之后來組織評審,果發現了很多問題,但要修改已經非常困難.要花費很長的時間甚至從頭再來。
2.4軟件配置混亂
軟件配置是指軟件產品在各個階段各種版本的文檔、程序及數據的集合,貫穿于整個軟件項目的始終。隨著軟件產品開發的進行,由于各種客觀原因,其中的預算、設計方案、進度等內容都有可能需要大大小小的更改(這些改動可能是合理的),整個改變的過程對軟件項目的參與人員來說必須是可視的,以便提高軟件的可靠性和質量,而這一切都應該有正確的軟件配置來控制如果失去正確的軟件配置管理,那么針對軟件產品發生的任何更改或者是維護都會給軟件項目帶來混亂甚至是失敗。
2.5風險管理意識不足
風險管理是軟件項目中防止失敗的一種重要手段,軟件項目不同的階段存在著不同的風險,并且風險會隨著項目的進展而變化,目前國內的軟件企業大都不注意軟件項目的風險管理。除了社會環境風險、商業風險等這些客觀風險之外.可控的軟件項目風險主要指技術風險。技術風險主要是指與軟件項目本身相關的的技術因素變化帶來的風險,如果在一定的條件下達不到技術條件能夠實現的目標,不但延緩項目的進度而且會增加項目的成本.繼而使整個項目受到影響。
3.通過過程管理加強軟件項目管理的實踐模式
利用cMM fCapabilityMaturityModeforSoftware)的核心思想把軟件項目管理看作一個軟件過程,并根據這一原則對整個軟件項目的開發和管理進行過程監控,監督發現過程中影響項目的關鍵問題并予以解決。軟件過程是指軟件開發人員開發和維護軟件及相關產品的一套行為、方法、實踐及變換過程,包括軟件開發過程和軟件管理過程。CMM把軟件開發機構按照不同開發水平劃分為5個級別。每個等級被分解為幾個KPA(關鍵過程域),KPA是指在某個成熟度等級應重點關注的區域,也是達到此成熟度等級必須解決的關鍵點。①初始級,無過程意義。軟件過程是無序的、隨機的、缺乏總計劃,無預見性,大多數活動是應付危機,經常超期超支,成功取決于個人。②可重復級,具備基本的項目管理。KPA分別是:需求管理、軟件項目計劃、軟件跟蹤與監督、軟件子合同管理、軟件質量保證、軟件配置管理;③已定義級,已定義軟件過程。已將軟件管理和軟件工程兩方面的過程文檔化、標準化,并綜合成該組織的標準軟件過程。KPA分別是:組織過程焦點、組織過程定義、培訓大綱、集成軟件管理、軟件產品工程、組間協調、同行評審;④可管理級,過程可度量。已收集了軟件過程和產品質量的詳細度量方法,軟件過程和產品均可被定量地理解和控制。KPA分別是:定量過程管理、軟件質量管理;⑤優化級,過程控制。通過過程的量化反饋以及新技術、新方法促使過程不斷改進。KPA分別是:缺陷預防、技術更新預防、過程更改管理。
CMM只是一個過程改進的框架.并沒有給出具體實施的辦法。在該模式中對目前CMM中的KPA做適當裁減.定義了6個關鍵過程域:軟件項目計劃(SPP)、需求管理(RM)、軟件項目跟蹤和監督(SPTO)、軟件質量保證(SQA)、軟件配置(SCM)、同行評審(PR),設置了三個工作組:軟件項目過程組(SPPG)、軟件工程組 (SEG)、軟件質量保證組(SQAG)。通過工作組對關鍵過程域的操作來加強軟件項目的管理。
3.1定義KPA
3.1.1軟件項目計劃(SPP)
軟件項目計劃是為要實施的軟件項目編制軟件過程活動的安排,包括進度控制、成本控制、質量控制、風險控制等,也是實施CMM2的核心此階段在安排過程活動的同時開展項目設計的前期工作,設計和界定在整個項目中各階段所需的開發、質量、跟蹤、評審、風險、成本等工作。項目計劃是指導項目過程的具體措施,要在有軟件項目實施經驗的人員領導下投人大量的時間和人力資源來完成。制定項目計劃應注意7個問題。①在科學論證的基礎上制定過程,充分調動人員積極性合理地確定項目組的參加人員;②對軟件項目各程中的任務進行分解,明確項目的里程碑和檢查點;③正確估計軟件項目中的軟件資源、硬件資源、人力資源及其它費用;④正確估計各方面因素帶來的風險并制定應對措施;⑤制定項目實施過程中的跟蹤和監督措施;⑥確定軟件的評審和測試方法;⑦詳細的文檔資料。
3.1.2需求管理(RM)
需求分析主要包括面向用戶的用戶需求和面向開發人員的系統需求.是整個軟件工程的第一步.也是非常關鍵的一個環節。需求分析主要針對用戶的業務流程、系統功能、性能、數據分析進行嚴格的定義.是設計一個軟件應用系統的起點與基本依據,通過它來評判軟件產品是否能夠解決用戶問題,也是項目成功與否的標準。就目前國內現狀來講,一般簽定軟件項目合同的用戶是主管信息技術的負責人,它所關心的可能是整個系統的目標需求,用戶方中層管理人員關心的是業務流程需求.終端操作人員則注重軟件本身的易操作性和功能特性,因此.面向用戶的需求一定要和用戶多方人員多溝通、交流.最終通過雙方有關部門人員的論證以文檔資料的形式確定下來。任何一個需求分析因客觀原因可能存在著需求更改的現象,對于這種情況一定要注意需求更改的可控性.要建立需求的基準版本和更改版本控制文檔資料.使受需求變化影響的產品與需求變更一致。但要注意在更改需求的同時要衡量需求的穩定性,如果一個需求的變更比較頻繁,意味著本項目并沒有真正了解用戶想要解決的實際問題?梢哉f需求分析的完整性和變更可控性直接影響到軟件過程的改進,它可以降低軟件質量、加大軟件開發的成本、甚至是導致項目的失敗。軟件工程組(SEG)中要明確定義一個需求管理員。
3.1.3軟件項目跟蹤和監督(SPTO)
軟件項目的跟蹤和監督始終貫穿于整個軟件項目的過程中,是項目得以控制的前提和條件、是軟件質量的根本保障,其目的是增加軟件過程中進度、成本、工作量、質量、風險等內容的可視性,也是實施CMM2的核心。除去市場、法律等不可控制因素外,根據項目計劃對項目進展的有關情況及影響項目實施的相關因素進行及時、客觀、準確的信息采集,將采集到的需求、成本、進度、風險等內容形成文檔并建立一個項目跟蹤信息平臺。項目負責人定期召集軟件過程人員、開發人員、質量保證人員、用戶方有關人員召開開放式的例會,例會的主要內容是檢查項目進展、數據的分析、認識的偏差、資源的搭配、相關的風險等問題并討論確切的解決辦法,通過跟蹤和監督使項目始終處于可視化的受控狀態。
3.1.4軟件質量保證(SQA)
軟件質量保證是與軟件產品滿足規定的和隱含的需要能力有關的特征或特性的組合。對用戶來講主要體現在軟件產品的有效性、一致性、完整性、可靠性和可操作性等方面,對于軟件產品本身來講體現在軟件產品的可移植性、易維護性、健壯性、可重用性等方面。具體實踐中.軟件質量保證應在軟件項目計劃、需求分析、跟蹤和監督、軟件配置和軟件評審的相互配合下完成.軟件質量保證要做到以事先預防和跟蹤為主,事后糾偏為輔。
3.1.5軟件配置(SCM)
軟件配置是針對軟件產品的跟蹤和控制活動.貫穿于整個軟件項目的過程中.目的是建立和維護在整個生命周期內軟件產品的完整性和一致性,使整個軟件產品的演進過程處于可控的狀態,繼而提高軟件的可靠性和質量。在實踐應用中主要做到五個子項的配置①配置項的標識。標識做到唯一性。便于跟蹤和管理。②版本管理。對整個軟件過程中的文件和目錄提供有效的跟蹤手段。③變更控制。保持并傳遞修改信息。④配置審計。確定整個項目生產周期中產品在技術和管理上的完整性。⑤系統整合。把系統的不同部分集成后完成一組特定的功能。
3.1.6同行評審(PR)
同行評審是根據預定的規范和標準對軟件產品進行評審。評審的結果是衡量軟件產品質量的依據。在整個軟件過程中對詳細設計和軟件綜合測試作為兩個關鍵評審點來進行評審,評審的過程中注意要結合本軟件項目的具體要求和標準。
3.2組的定義
在具體的實踐應用中設置了三個組,在降低了人員成本的同時提高了軟件過程改進能力和軟件質量。
軟件項目過程組(SPPG)組織具體的項目實施活動,管理并協調整個軟件項目的過程,主要完成SPP和SPTO。
軟件工程組(SEG)負責軟件工程的需求分析、概要設計、詳細設計、編碼、測試、維護工作。
軟件質量保證組(SQAG)主要完成SPTO、SCM、PR、SQA等工作。
4.實踐模式效率評估
4.1開發時間
軟件開發由需求分析、概要設計、詳細設計、編碼、軟件測試、項目維護和軟件集成幾部分內容組成,在需求分析和設計階段采用CMM框架實施過程管理所花費的時間要多于沒有實施過程管理花費的時間。首先對項目做大量分析,論證項目的可行性。然后在和用戶做良好溝通、反復論證的基礎上做需求分析,形成文檔資料。這種模式下花費在需求分析和設計上的時間大約占項目總開發時間的40%,但這兩個階段完成了數據流程、算法描述、詳細的規格說明等內容,為代碼編寫、軟件測試、軟件維護等后續內容的工作節省了時間,軟件項目的開發周期大大縮短。經過評估,采用該實踐模式實施軟件過程管理的軟件項目開發周期比沒有實施軟件過程管理的軟件項目開發周期縮短20%。
4.2開發質量
采用CMM標準通過軟件過程管理加強軟件項目管理的實踐模式使軟件質量明顯提高、需求分析周密、代碼錯誤率明顯降低、軟件產品完整性好、功能齊全、維護量下降,軟件項目最終得以順利實現。
5.結語
本文給出的通過軟件過程管理加強軟件項目管理的實踐模式優點非常明顯.軟件過程改進目標明確,可以有效地提升軟件產品質量、節省開發時間、降低成本。同時該模式更能體現團隊精神,擺脫了軟件開發中的個人主義,從整體出發,在強調過程對整體重要性的同時,進一步降低了軟件過程中的各種風險,使軟件項目始終處在可視化的優良受控狀態中。
【淺論一種加強軟件項目管理的實踐模式】相關文章:
淺論計算機軟件工程項目管理11-17
淺論加強企業薪酬管理的有效途徑12-08
淺論項目設計與施工階段的造價管理11-15
淺論地質項目管理與勘查成本核算11-17
關于軟件項目管理的控制研究11-20
關于軟件項目管理及風險分析11-20
淺論市政工程項目施工階段的項目管理03-28
旅游管理專業實踐教學模式12-04
- 相關推薦