[摘要]軟件開發企業為了滿足用戶高質量的產品需求,關鍵要建立起一個穩定、可控、可重用的軟件過程。CMMI正是指導企業實施過程管理的一種漸進式的方法及模型。然而,如何有效的實施CMMI,是很多企業遇到的問題。本文通過對企業的戰略方向,組織結構和業務流程等方面的分析,確定了基于CMMI軟件過程管理體系的實施策略。
[關鍵字]CMMI;軟件過程;過程管理
中圖分類號:TP311 文獻標識碼: A 文章編號:1673-0194(2010)11-0064-03
1引言
軟件過程管理是指在軟件開發過程中除了先進技術和開發方法外,還有一整套的管理方法。它側重的是軟件組織在軟件開發的過程中對需求管理、計劃安排、合同管理、項目跟蹤、資源分配和質量要求等的管理方式,也就是對軟件開發、維護全過程規范化、透明化、標準化的管理。目前,普遍采用的軟件過程管理方法是由SEI提出的CMMI(Capability Maturity Model Integration),即軟件能力成熟度模型集成模型,是由美國國防部與卡內基-梅隆大學和美國國防工業協會共同開發和研制的。CMMI是一套融合多學科的、可擴充的產品集合,其研制的初步動機是為了利用兩個或多個單一學科的模型實現一個組織的集成化過程改進。該模型提供了一種漸進式的軟件過程改進途徑,體現了軟件工程和軟件管理的最佳實踐,為軟件開發單位提供了逐步達到成熟的規范化過程的框架。CMMI分為五個等級,共二十二個過程區域(PA),每個等級都被分解為過程域,特定目標和特定實踐,通用目標、通用實踐和共同特性:每個等級都有幾個過程區域組成,這幾個過程域共同形成一種軟件過程能力。每個過程域,都有一些特定目標和通用目標,通過相應的特定實踐和通用實踐來實現這些目標。當一個過程域的所有特定實踐和通用實踐都按要求得到實施,就能實現該過程域的目標。
2 有效實施軟件過程管理的策略
在CMMI模型中,主要以過程域(PA)為主題,闡述了對各PA的要求,描述了PA要達到的目標以及為實現目標而必須實踐的過程;模型還告訴了實踐后要達到的效果,但并沒有描述應該如何去做,盡管模型中也給出了少量的實例說明。然而,照搬照抄CMMI模型并不能幫助企業達到期望的成熟度,必須將CMMI模型轉換成與公司業務目標相適應的體系規范。因此,論文從以下七個方面確定了實施CMMI模型的策略:
2.1 明確軟件公司的發展愿景
在知識經濟時代,企業發展更加依賴于技術進步和技術創新,誰搶占了技術的制高點,誰就搶占了市場的制高點。要確定以市場武裝技術,以技術占領市場,走上市場和技術交替推動的持續發展之路。另外,還要建立可量化的業務目標并分階段具體實施。有了愿景以及近期可以實施的業務目標,就可以對實施CMMI進行規劃。通過實施CMMI模型對公司內部軟件開發過程進行管理。
2.2 建立實施CMMI的組織機構
為了真正落實和加強軟件開發過程的控制與管理,需要建立起軟件開發質量保證的組織機構,明確與軟件開發相關聯的各級人員(小組/部門)的職責、權限和溝通方式,確保軟件過程管理的有效性。這樣才能使CMMI工作持續的開展下去,達到不斷提高產品質量的目的(如圖1)。
在整個組織框架內,實施負責人確立一個長期的過程改進目標,并帶領大家為此目標而努力,是過程改進的動力和鼓動者。SEPG(軟件過程改進小組)是過程改進的核心,承擔整個過程改進的組織、策劃和實施推廣工作,他們通常是由公司內部各方面的資深專家組成。項目人員通常來自各職能部門,因此要處理好SEPG、項目和部門之間的關系。在這個團隊中,職能部門經理的地位非常重要。
圖2給出了每個項目組的構成。
項目經理負責管理組內所有工作,以及與其它組之間的協調;變更控制委員會(CCB)的目的是確保每個基線變更都經過所有相關方的考慮,每個變更在實施前都經過批準。CCB是對每個變更進行評審,做出批準、不批準或推遲實施以獲得更多信息的一個實體。它至少要包括從事開發、文檔編寫、測試、保證、維護和發布方面的人員。
2.3 確定軟件項目開發過程
軟件開發中心從業務部門收到軟件需求計劃之后,任命一名項目經理負責。項目經理根據軟件需求計劃,書寫軟件開發計劃書草稿,軟件開發計劃書定義了軟件開發團隊職責范圍、人員數量和結構需求、階段性里程碑的設置和產出、風險的識別和規避辦法、人員的培訓計劃、軟件開發過程的定義等。軟件開發計劃書完成后,召開軟件項目開發啟動會議,邀請人力資源部、培訓部、過程改進組。在會上,項目經理根據軟件開發計劃向人力資源部代表提出各階段的人力資源計劃需求,向培訓部提出相關培訓需求,同時與過程改進組討論、裁剪軟件開發過程。
軟件啟動會議召開后,項目經理根據相關與會部門代表商議的結果修改軟件開發計劃書并形成正式版本。同時,配置管理員對該文檔形成基線并收進配置管理庫。之后,軟件項目將按照軟件開發計劃書進行。每月末,質量監察員將依據項目軟件開發計劃書對項目進展和質量進行評審并責令項目經理限時整改。
每周五,項目經理通過周報形式向業務部門代表和開發中心高級經理匯報項目的進展情況。周報的內容包括:本周完成工作的情況、遇到的問題和是否解決,下周計劃完成的工作和預計可能遇到的問題。周報作為正式的溝通渠道讓相關領導和部門實時監控項目的進展和風險。
當項目完成并獲得業務部門的認可之后,項目經理將根據軟件開發計劃書進行召集項目團隊成員、人力資源部代表、過程改進組代表進行項目總結大會。在會上,項目經理和團隊成員就該項目遇到的困難和解決方法進行總結分析,并形成項目總結報告。該報告由軟件過程改進組收入軟件開發經驗共享庫以供所有開發人員分享經驗。同時,會議召開后,項目組將解散,所有成員將歸還人力資源部重新分配。
2.4 制定軟件過程管理體系規范,確保過程能以固化
按照CMMI的軟件過程改進標準制定管理策略和技術文檔,制定適合軟件開發的過程管理體系規范,是CMMI實施中一項非常重要的工作,它將軟件開發所運用的方法和流程加以固化,并同時進行改進,以達到相應的CMMI能力成熟度級別要求。統一適用的管理體系規范是各項目組執行的方法和流程進一步規范。
軟件文檔分為過程管理文檔和工作產品文檔兩大類。過程管理類文檔描述了每個過程的目的、開展的活動、遵循的步驟和規則、人員的職責和應當輸出的工作產品等;工作產品類文檔給出了每個過程輸出的工作產品的內容和形式模板。表1給出了幾個關鍵過程域的過程管理文檔和工作產品文檔。
軟件過程管理體系制定出來后,一定要先全員培訓,經試點后在推廣。
2.5 選擇項目試點,確保體系規范的適應性
選擇需求規范覆蓋至少為公司主營業務的一部分項目,將制定好的過程文檔和模板,在試點項目中進行試運行,消除不符合要求的地方,對過程進一步改進。面向項目組進行培訓,根據項目組整體的過程成熟度有針對性地開展,就過程中存在的問題開展輔導,此階段的培訓和輔導主要是由質量經理擔任。在實施過程中,首先重點關注成熟度較低的PA實施,并制定切實可行的辦法進行整改;其次要關注每一個PA的難點實施,要做到各個擊破,將實施工作做到為。對實施過程中遇到的問題要及時加以解決,問題長期得不到解決會對項目組的實施熱情造成傷害。還要定期開展評估工作,了解目前的進展以及存在的差距,樹立過程改進的信心。
2.6 適時認證和推廣,樹立過程改進信心
在初步達到相應的成熟度級別后,就可以開展相關的CMMI認證工作,具體可與一些有資質的公司聯系。與此同時還要對過程管理體系規范進行推廣,制定切實可行的推廣計劃,使項目組在投入到管理、文檔上的工作量要有預估,在時間效率上達到平衡。在實施過程中,各部門在觀念、利益上存在沖突,會給實施工作帶來較大的阻力,因此需要有力的領導來總控,確保CMMI實施工作順利進行。最后還要加強問題的跟蹤力度,對推廣過程中出現的問題要加以分析并快速解決。
2.7 不斷深化,使過程改進工作持續推進
當過程管理體系規范在公司得到全面推廣后,并不代表過程改進工作結束了,只是表面企業目前已取得了階段性成果,還需要不斷深化,總結經驗。要將過程改進工作持續推進,還要做好以下工作:一是建立收集過程改進意見通道;二是對過程管理體系規范進行定期修訂,確保對項目有較強的適應性;三是用工具完成對開發流程的支撐;最后要大力推進質量文化建設,使過程改進工作深入人心,落到實處。
3 結語
對于軟件公司,CMMI流程不僅能夠提升公司的管理水平,還能夠引入科學的管理理念。它對項目管理的作用是明顯的,但不能實行“拿來主義”,要根據本公司的具體情況來確定過程管理體系實施策略。選擇公司實際需要的過程域,對CMMI進行適當的剪裁。這樣才能夠從根本上對管理能力有實際的提升。
主要參考文獻
[1] 林銳.CMMI和集成化軟件研發管理.電子工業出版社.2008
[2] 黃曉波.基于CMMI的軟件過程改進的研究.暨南大學.2007
[3] 張友生.軟件企業實施CMM/CMMI面臨的五個關鍵問題.希賽網httP://www.csai.cn
[4] Standard CMMI Appraisal Method for Process Improvement (SCAMPISM ) A,Version 1.2: Method Definition Document. CMU/SEI-2006-HB-002
[5] Peter Merrill. Creating an Innovation Process and Culture.http://www.petermerrill.com.2008
[6] 田秀彥.基于CMMI模型進行過程改進.2008,(14):32-33
[7] 黃禮超.基于CMMI的項目過程管控框架設想.管理咨詢.2008,5:48-49
[8] 王晶海.基于CMM的需求管理活動.福建電腦.2007,7:33-35
[9] 王慶付.明基的CMMI之路.軟件工程.2008,2:66-67
[10] 李曉堂,詹峰.CMMI模型改進軟件過程的策略及方案研究.2008,24(4):53-54
[11] 楊一平等.軟件能力成熟度模型CMM方法及其應用.北京:人民郵電出版社,2001.4
[12] 黃海濤.侯紅等.一種輔助軟件過程管理的集成化方案.計算機技術與發展.2008,18
[13] 張為.現代軟件開發的過程管理方法研究.計算機工程于科學.2003,4:99-103
[14] Frederick P.Brooks.UML China.汪穎等譯.北京:清華大學出版社,2002
[15] Dennis M.Ahem等.CMMI精粹-集成化過程改進實用導論.周伯生等譯.北京:機械工業 出版社,2002.8