摘要:本文結(jié)合CMMI模型的要求,重新審視CMMI在中國的實施現(xiàn)狀,指出企業(yè)在CMMI實施過程中的六大誤區(qū),并進一步探討正確實施CMMI的有效途徑,為規(guī)范中國軟件企業(yè)的認證程序,推動軟件行業(yè)有序發(fā)展提供理論依據(jù)。
關(guān)鍵詞:CMMI 實施 六大誤區(qū) 實施建議
根據(jù)CMMI官方機構(gòu)在2013年3月發(fā)布的統(tǒng)計,目前通過CMMI評估的中國企業(yè)數(shù)量累計超過2000家,遠超美國,成為世界上通過CMMI評估最多的國家。其中,通過CMMI 3級認證的企業(yè)比例高達90%以上。這些數(shù)據(jù)對于中國軟件業(yè)而言是令人振奮的,但是,如此多的企業(yè)通過了CMMI認證,是否意味著我國的軟件企業(yè)因?qū)嵤〤MMI而受益,軟件質(zhì)量、開發(fā)效率不斷提升?是否標(biāo)志著我國的軟件企業(yè)已經(jīng)發(fā)展壯大,足以與美歐日等軟件強國抗衡了呢?
帶著疑問和思考,結(jié)合我國軟件企業(yè)的現(xiàn)狀,可以看到,中國企業(yè)與軟件強國間的差距還是挺大的,例如在世界軟件企業(yè)排名前100位中,我國的企業(yè)數(shù)量還只是鳳毛麟角。本文結(jié)合CMMI模型的要求,重新審視CMMI在中國的實施現(xiàn)狀,提出了企業(yè)在CMMI實施過程中的六大誤區(qū),并進一步探討應(yīng)該如何實施CMMI,讓中國的軟件企業(yè)真正強大起來。
1 CMMI的理解和定位:CMMI不等于一套可直接使用的方法學(xué)和模板
毫無疑問,對于軟件企業(yè)而言,CMMI是一套提供了包含產(chǎn)品和服務(wù)開發(fā)以及最佳實踐的模型,通過合理運用CMMI提供的指引可幫助企業(yè)更好地實施過程改進。但是,CMMI并不等于一套可以直接生搬硬套的標(biāo)準(zhǔn)。對于CMMI-DEV模型的22個過程域,每個過程域都有明確的實踐目標(biāo)和一些最佳實踐,具體到一個特定企業(yè),需要根據(jù)該企業(yè)的商業(yè)目標(biāo)和自身情況,來確定采取哪些方法和行動來達成CMMI模型提出的實踐要求。例如,對于組織過程定義(OPD)過程域的特定實踐SP1.1要求企業(yè)建立和維護組織標(biāo)準(zhǔn)過程,對于大公司來說一套標(biāo)準(zhǔn)過程可能會涉及更多人員的參與,對于某些過程的審核可能會更正式,而對于小公司來說更加強調(diào)這套流程簡潔高效,能充分利用手上僅有的資源來完成所有工作。所以在制定組織的標(biāo)準(zhǔn)過程時,應(yīng)該著力于如何理解模型,并結(jié)合公司的自身情況來編寫,而不是直接套用模型里面提供的方法和實踐。
2 CMMI與其他體系:CMMI并不是萬能的
對于軟件行業(yè)而言,實施過程改進,除了CMMI之外,還有ISO9001、MSF、IPD、敏捷方法等。需要認識到,CMMI模型的實施核心焦點主要是軟件工程的過程和管理層面,而不是軟件的開發(fā)技術(shù)層面。另外,CMMI模型指明了企業(yè)應(yīng)該做什么(what)而不是怎么做(how),它著重強調(diào)的是開發(fā)軟件過程中的關(guān)鍵要素,但是對于項目立項前期的調(diào)研以及項目驗收后的軟件維護等過程,CMMI沒有給出明確的指引。所以,在使用CMMI模型實施過程改進時,我們不妨結(jié)合其他方法進行過程改進,取其精華,使公司可以從更加廣闊的領(lǐng)域,例如財務(wù),人力資源,技術(shù)實現(xiàn)等方面全面推進過程改進工作。
3 CMMI規(guī)范與公司其他規(guī)范并存:不要只追求形式上的標(biāo)準(zhǔn)
近年來,國內(nèi)掀起了CMMI評估熱潮,國家和各級地方政府出臺了一系列法規(guī)和政策,鼓勵軟件行業(yè)進行CMMI能力成熟度模型的評估認證工作,旨在提高我國軟件企業(yè)開發(fā)管理的規(guī)范化水平,同時也希望企業(yè)能建立信心,鼓勵企業(yè)與世界接軌。但是,有些企業(yè)只是追求形式上的規(guī)范,花費大量時間和金錢制定CMMI的相關(guān)標(biāo)準(zhǔn)和文檔體系,并在僅有的幾個項目中推行CMMI模型。結(jié)果評估完成后,還是保留公司原有的規(guī)定和做法,把CMMI模型放到一邊。例如,對于軟件規(guī)模的估算,還是采用原來的拍腦袋方法,對于策劃部分僅僅參照合同中規(guī)定的驗收時間,而沒有對項目過程中各個階段的活動進行詳細策劃。結(jié)果是,規(guī)范有了,公司的開發(fā)管理水平還是維持原樣。如果制定出來的標(biāo)準(zhǔn)都沒有去執(zhí)行,又怎能期望過程改進會給企業(yè)帶來效益呢?
4 CMMI等級越高越好
從CMMI模型的階段式劃分方法來看,CMMI可分為五級。第一級是初始級,第二級是已管理級,第三級是已定義級,第四級是定量管理級,第五級稱為優(yōu)化級。從等級1到等級5,實施的內(nèi)容逐漸增加,同時等級越高表明企業(yè)的過程能力成熟度越高。于是,有些企業(yè)會很主觀地認為,CMMI等級越高越好,所以企業(yè)應(yīng)該以更高的等級為目標(biāo),評估過了3級接下來就是4級,5級,而完全沒有考慮是否適合公司的情況。事實上,組織需要達到哪個級別的等級應(yīng)該與企業(yè)的規(guī)模、企業(yè)文化、人員素質(zhì)、客戶類型、產(chǎn)品類型等方面進行考慮。如果組織規(guī)模過小,卻要求達成較高的成熟度等級,往往會造成賠了夫人又折兵,即浪費了大量的資源,又沒有達成預(yù)期效果。
5 片面要求流程大而全
有些企業(yè)覺得,既然實施CMMI,就要把所有過程域的內(nèi)容規(guī)范化、文檔化,每個過程盡可能大而全,并將這些規(guī)范應(yīng)用到公司的所有項目當(dāng)中。這樣做不但影響了軟件開發(fā)的工作效率,同時也不利于公司的發(fā)展。例如,對于非關(guān)鍵的小問題,本來可以立刻解決,卻設(shè)計了復(fù)雜的流程進行評審;對于一些小型項目,只有1-2個月的開發(fā)周期,卻要求產(chǎn)出大量的文檔等等。面對這種情況,我們應(yīng)該從公司的整體規(guī)劃和目標(biāo)著手去提煉關(guān)鍵的過程,對于不同的項目要有相應(yīng)的裁剪和替代活動。
6 把大公司的文檔體系當(dāng)作自己的文檔體系
很多企業(yè)為了節(jié)省時間,往往是參照一些大公司的流程,小做修改就變成了自己的體系;甚至有些企業(yè)直接挪用體系,這樣做的效果肯定不好。有時,我們或許會聽到這樣的談話,某公司領(lǐng)導(dǎo)跟下面的人員說:“我們要一套比較好的模板,然后找?guī)讉€人修改一下就可以了”,這是一種典型的拿來主義,公司的規(guī)模、組織架構(gòu)、人員配置,技術(shù)水平,企業(yè)文化等千差萬別,面對的客戶也各有不同,又怎能保證其他公司的流程會適合本公司呢。所以在編制公司文件體系時,我們要預(yù)留一段比較充分的時間來編制體系文檔。例如,有些企業(yè)是按照產(chǎn)品線來進行管理的,有些企業(yè)是按照地理區(qū)域來劃分工作的,那么這些企業(yè)的管理模式和流程就不太可能一樣了。同樣,有些組織考慮使用RUP開發(fā)方法,這時候你就要考慮把CMMI和RUP開發(fā)方法融合起來,而不是單純地選擇執(zhí)行某一個體系。
針對上述提出來的六大誤區(qū),本人覺得應(yīng)該從以下方面來考慮CMMI實施:
第一,需要準(zhǔn)確理解CMMI模型的真意,用好CMMI模型,把它當(dāng)成過程改進的一個好工具,而非一種具體的方法和生硬的教條。對于CMMI-DEV模型,其中的22個過程域可分為項目管理、工程開發(fā)、過程管理以及支持類等四大部分,可從組織層面和項目層面對內(nèi)容進行劃分。對于各個過程域,需要充分理解每個過程域的要求,同時也要看到各個過程域之間的聯(lián)系和區(qū)別,并與組織的具體活動聯(lián)系起來,才能更好地推進過程改進。舉個例子,對于項目策劃過程域里面提到的估算部分,要求在項目中使用科學(xué)的方法對項目規(guī)模、工作量和成本等參數(shù)進行估算。相應(yīng)的,在度量和分析過程域指明,需要根據(jù)度量目標(biāo)在項目各階段進行度量項的數(shù)據(jù)收集。在項目監(jiān)督和控制過程域,要求對相關(guān)的參數(shù)進行監(jiān)控。而在集成項目管理過程域,對于關(guān)鍵的項目參數(shù),除了定期監(jiān)控并采取糾偏措施外,還需要設(shè)定預(yù)警閥值,在項目重要參數(shù)有偏離正常范圍的傾向時,就應(yīng)該對現(xiàn)狀進行分析,采取一定措施來防止問題的發(fā)生或者減低問題的影響程度。在企業(yè)具體實施時,可以把上述提到的內(nèi)容有機地結(jié)合起來,形成一套完整的流程。
第二,要根據(jù)公司的目標(biāo)來實施CMMI,切忌把所有精力花在雕琢精美流程上,而沒有根據(jù)公司的戰(zhàn)略發(fā)展,訂立行動的優(yōu)先等級來實施對于公司來說關(guān)鍵的一些過程域。例如,對于中小型技術(shù)創(chuàng)新企業(yè),首要目標(biāo)就是在競爭激烈的市場環(huán)境中如何研發(fā)出質(zhì)量、技術(shù)、成本等方面有競爭力的產(chǎn)品。簡單來說,就是能夠在市場中生存下來并占據(jù)一席之地。對于上述目標(biāo),我們需要針對企業(yè)自身情況,分析目前公司的不足,并進一步把這些不足之處定位到各個過程域的實踐當(dāng)中。若能準(zhǔn)確定位問題,便可以花最少時間和精力來達到最大的改進效果。同樣,如果對于大型企業(yè)而言,公司的目標(biāo)很可能除了關(guān)注研發(fā)產(chǎn)品外,還會考慮到企業(yè)在各區(qū)域的市場占有份額以及企業(yè)影響力等。
第三,公司整體實施的效果取決于多個因素,如人、過程、技術(shù)等。除了優(yōu)化過程之外,也要提升團隊人員的素質(zhì)和技術(shù)水平;特別是對于團隊建設(shè)部分,在CMMI DEV 1.3版本中,分別在組織過程定義過程域(OPD)的特定實踐SP1.7和集成項目管理過程域(IPM)的特定實踐SP1.6中,明確規(guī)定了對團隊建設(shè)的組建和維護。另外,對于在軟件開發(fā)采用的技術(shù)和工具部分,CMMI并沒有進行明確的規(guī)定。所以,在這一部分我們需要通過多種途徑了解業(yè)界的最新動態(tài),選擇好適合公司發(fā)展的技術(shù)和工具。
第四,通過CMMI評估不是企業(yè)的最終目標(biāo),正確的做法應(yīng)該是每一年都針對公司現(xiàn)有的流程進行差距分析,并進一步優(yōu)化,同時也要善于發(fā)現(xiàn)公司不足的地方,不斷積累經(jīng)驗進行過程改進。我們可以在今年重點關(guān)注項目的開發(fā)環(huán)節(jié),例如需求獲取和需求分析部分,通過努力盡量減少后期開發(fā)階段進行需求變更的次數(shù);在另一年里,我們可以著重檢查公司的項目管理能力,例如在項目監(jiān)控過程中如何盡早發(fā)現(xiàn)問題,或者在風(fēng)險管理領(lǐng)域中如何提升風(fēng)險管理水平,將問題扼殺在搖籃當(dāng)中。通過每一年對CMMI模型的理解和深化,通過每一年的總結(jié)和反省,組織必將變得越來越好,也越來越有競爭力。
總而言之,對于軟件企業(yè)而言,軟件研發(fā)和管理是一個復(fù)雜而又有挑戰(zhàn)性的工程。如何運用好CMMI模型,對其進行合理定位,也決定了企業(yè)的發(fā)展和未來。同樣的金科玉律,同樣的孫子兵法,對于不同人而言效果也是不一樣的。在此,也希望大家有興趣的話,可以多多研讀CMMI模型,結(jié)合自己的實踐經(jīng)驗,領(lǐng)悟到CMMI模型的精髓所在。
參考文獻:
[1]Ken Keller,Brian Mack.Maturity Profile Reports March2013.
[2]李華北,劉小茵,鄭丹丹等.過程改進基本原理及CMMI實施[M].中國標(biāo)準(zhǔn)出版社.
[3]蔡澍.基于CMMI的軟件過程和產(chǎn)品質(zhì)量保證的探究[J].科技信息,2012(23).