王燁東
【摘 要】 隨著我國從上世紀以來經濟的高速發展,離岸軟件開發行業也同樣飛速的發展。由于地理文化的原因,對日外包從行業發展之初就占有較高的比例。但是隨著近年來國際經濟和形式的變化,越來越多的企業將目光轉移到歐美,以平衡企業的發展方向。那么隨著而來的是問題是如何擺脫以往小作坊式的開發模式并且提高項目管理效率,以此來增加新客戶的信賴程度,能夠更好的開拓歐美市場。那么這時就需要由美國知名大學和美國國防部共同開發研制的CMMI過程改善模型,將之來引入軟件開發項目中,由此來幫助企業改善項目開發管理過程,讓企業能夠更好的得到發展。
【關鍵詞】 CMMI 過程域 軟件開發 外包
軟件外包是一些發達國家的企業為了降低成本,提高自身核心領域的專注度而將部分非核心的軟件項目通過外包的方式交付給人力資源成本相對較低的發展中國家,從而有效的降低企業的運營成本又能很好的滿足自身的軟件需求活動。
我國從上世紀九十年代初期開始介入這個行業領域以來,通過近二十多年的發展,已經有了長足的發展。其中軟件外包產業發展比較成熟的地區有上海、深圳、大連等地。由于軟件外包行業的性質所決定,所接受到的項目往往都是外國企業軟件系統非核心的內容,由于技術含量較低從而導致沒有任何技術競爭力和任何知識產權。
但隨著日元的不斷貶值和國際形勢的發展,讓因歷史文化等原因對日軟件出口占主導地位慢慢發生改變。據統計,從2012年以來,對歐美外包市場的增速達到年增長49%,超過對日外包的37%的增速。歐美的軟件外包市場已經悄然成為我國企業開拓的新方向。
我們知道企業能夠提供相應產品的質量保證是軟件企業開拓離岸外包市場的敲門磚。比日本企業更注重軟件項目管理能力的歐美企業,如何提高客戶的信賴度和滿意度,讓能夠從接手簡單的軟件開發及測試工作向參與設計承接及需求分析階段介入,甚至能與承包商一起面對終端客戶以獲取項目,這些都是擺在我國外包企業面前的問題。
因此,諸如CMMI、ISO等歐美企業認可的國際專項認證,成為了企業研發能力和管理能力的標志。
什么是CMMI?
CMMI,即軟件能力成熟度模型集成,由美國賓州匹茲堡卡耐基梅隆大學軟件工程研究院于1986年開始開發,是卡耐基梅隆大學的服務標記。其主要的目的是幫助軟件企業對軟件開發工程過程進行有效的管理改進,增強自身的管理能力,從而能夠更有效的開發出高品質的軟件,以滿足客戶的需求。
一個系統或者產品的質量在很大程度上取決于開發與維護它的過程的質量,一個有效的過程將人員,工具和方法結合成一個有機的整體。人、技術、方法,即是過程。人員根據一種有效的方法使用相關技術便能夠生產出高質量的產品。
一個完美的過程必須具有可用性的文檔描述。這個過程描述是對一組活動的文檔化表達,通過執行這些活動達成一個既定目標,該目標提供了一個過程的主要組件的操作定義。該文檔包含完整精確并且可驗證地詳細描述了一個過程的需求設計和行為特征,同樣確定這些規定是否得到滿足的規程。不成熟的過程往往是由使用者和管理人員即興創造,即使已經明確了一個過程,也沒有得到嚴格地執行。在軟件開發過程中,由于客戶的需求和期望有時沒有得到很好的理解,未能根據數據作出估算從而超出預算或者延期,最終常常導致為了趕進度而犧牲產品的功能和質量。相反成熟的過程必須按照已計劃的過程開展工作活動,通過量化地理解和維護,能夠持續及系統地改進。
CMMI的結構由五個成熟度等級以及與每個等級相關聯的過程域組成。其中成熟度等級由初始級到管理級,通過不斷的定義以及量化,最終到達持續優化級。而過程域指明一個領域內一組相關的活動,當這些活動全部完成時,就能夠達到增強過程能力的一組目標。根據過程域的連續表達法,CMMI的過程能夠分為過程管理、項目管理、工程、支持四大部分。分別包括有組織培訓、風險管理、需求開發、配置管理等22個過程域。與過程域相對應則是特定目標。特定目標描述為滿足一個過程域必須實施內容的特有屬性,并將在評估中使用以幫助確定一個過程域是否得到滿足。
在成熟度等級為1的時候,是沒有任何過程域能到滿足的。軟件開發的過程通常是非正式和雜亂無章的,組織不能提供一個穩定的環境,項目的成功取決于組織中人的能力和英雄主義。
在成熟度等級為2的時候,軟件開發過程中需求得到有效的管理,過程得到計劃、執行、度量和控制,相關的關鍵組員的承諾得到建立,并在需要時能夠修改。此時組織一般能夠滿足以下的過程域:需求管理、項目計劃、項目監督與控制、供應商協議管理、度量與分析、過程與產品質量保證以及配置管理。
當一個組織的軟件開發過程從2級提升到3級,當然過程必須比成熟度2級更加嚴格。項目使用的標準,過程描述和規程是從組織標準過程集裁剪得到的,以滿足特定項目或組織單元的需求,并且使用對過程活動項目關系的理解和對過程、過程的工作產品、過程服務的質量,過程得到更加主動的管理。與之相關需要到達的過程域包括需求開發、技術方案、產品集成、驗證、確認、組織過程中心、組織過程定義、集成項目管理、風險管理以及決策分析與決議。
成熟度3級和成熟度4級的關鍵區別在于過程績效的可預測性。在成熟度4級中使用統計和其他量化方法控制過程績效,而且過程績效可以定量地得到預測。而在3級中過程只能定性地預測。度量和量化在成熟度等級4中是重中之重。組織需要建立質量和過程績效的量化目標并作為管理過程的標準使用,量化目標以客戶、最終用戶、組織和過程實施者的需要為基礎。以量化的術語理解質量和過程績效,并在過程的整個生命周期中管理過程。質量和過程績效度量都納入到組織度量庫中以支持將來做出有事實依據的決策。與成熟度4級所對應的過程域有組織過程績效和量化項目管理兩個過程域。
CMMI定義中最高等級5級中,過程關注與處理過程差異的一般誘因,并改變過程以改進過程績效,從而實現已建立的量化的過程改進目標。基于對過程內在差異一般誘因的量化理解,過程得到持續地改進,通過改進和革新的技術改進持續地提高過程績效,以此來建立組織過程改進的量化目標,不斷地修改以反映變化的商業目標,并將其作為管理過程改進的準測。在這個等級中組織革新與部署以及誘因分析與決議都是必須滿足的過程域。
當一個企業組織在日常的軟件開發過程中,已經覆蓋了上述22個過程域并且都能夠從直接或者間接證據中滿足所定義的目標時,便能夠邀請如PIA等具備評審資質的咨詢公司來對企業進行CMMI等級評估,最終有SEI機構頒發資質證書。
現在我們能夠清楚的知道CMMI是過程改進的方法,是一種指南和路線圖,并非是菜譜和設計圖。整個過程改進從收集信息決定支持并確定策略到診斷當前的過程并識別要解決的問題到選擇改進以商業需求為基礎確立實施方式到實施所選的改進方案最終達到評價改進的效果和總結經驗教訓。其模型是循環而不斷改進的過程。
國際知名項目管理專家Alistair Cockburn曾說過:我越是希望信任別人,就越容易忽視他們的缺點。有時候單純信任別人非常重要,但更重要的是建立一個機制以確定在特定的前提下別人是否可以信任。
總之,到目前為止還沒有定規出一種使用CMMI模型的最佳方式。CMMI模型的目標既不是對組織強制實行一系列實踐活動,也不是作為證實一個人是否符合要求的標準來應用。只有正確使用CMMI才能根據組織的業務目標幫助我們確定組織內需要改革的領域,最終實現價值最大化。我們在軟件開發過程中自然而然的能夠做到可度量、可管理、自我優化,能夠不斷復制以往成功的經驗。項目在不斷執行過程中的先進經驗和教訓能夠真正的固化到過程中,形成組織和項目的重要資產。
這就是CMMI對于軟件開發的意思所在。
參考文獻:
[1]CMMI+敏捷整合開發:更快改進性能的案例與實用技術.Paul E.McMahon(美),趙麗影,清華大學出版社.
[2]研發企業管理:思想、方法、流程和工具.林銳,彭韌,人民郵電出版社.
[3]適用于發展的能力成熟度整合模式(CMMI-DEV)1.2版.卡內基美隆大學軟件工程學院.