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