CMMI認證現狀剖析

 CMMI 典型案例     |      2019-11-08

CMMI認證進入我國軟件領域的這十多年來,對我國軟件產業(yè)的健康發(fā)展作出了巨大貢獻。但一些軟件企業(yè)只是以獲得證書為根本目的,而忘記CMMI認證的出發(fā)點是改進軟件生產過程。這致使我國一些通過CMMI5級的企業(yè)的項目平均延期率依然在25%以上,并且數據并不穩(wěn)定。尤為不幸的是,目前沒有任何公開數據表明我國通過CMMI高級別認證的企業(yè),提高了生產效率,降低了成本,提高了產品質量。

CMM/CMMI在中國的過程改進領域到底是一個偉大的經典還是一個因水土不服而失敗的理論?CMMI后的軟件過程改進又將如何演繹?

CMMI(Capability Maturity Model Integration, 即能力成熟度模型集成模型)自20世紀90年代中期傳入中國以來,有些軟件企業(yè)只是一味地追求高級別CMMI認證,以為拿到更高級CMMI證書就獲得了進入外包市場的國際通行證,而忽視了對軟件生產過程真正持續(xù)的改進。從而導致CMMI認證在中國出現一些令人擔憂的現象。

怪相一:證書擺桌面 體系放一邊

通過對某一軟件園進行調查,對通過CMMI評估的8家企業(yè)進行走訪,發(fā)現有5家企業(yè)在通過評估后基本上放棄了。CMMI評估的證書高高掛在墻上,做過程改進的人員已經不見蹤影,企業(yè)也不再按照原來的體系執(zhí)行了。其實這5家企業(yè)本就沒想真正去改進過程。那為什i還要去做CMMI評估呢?因為企業(yè)有補助。不少地方鼓勵企業(yè)實施過程改進,并陸續(xù)出臺資助政策。當企業(yè)通過評估后,可從不同部門獲得資助。有些企業(yè)為拿到資助,突擊通過CMMI的評估,于是便出現了“證書擺桌面,體系放一邊”的現象。

怪相二:證書拿到手 體系大調修

有過兩家企業(yè)在通過CMM或CMMI評估后,在很短的時間內就對過程體系進行了大幅度的裁剪。其中一家公司的負責人講:“原來定的體系太煩瑣,為了通過評估,我們原來忍了,現在必須裁剪!”難道只有煩瑣才能通過CMMI的評估嗎?難道簡約就不可能通過CMMI的評估嗎?

CMMI評估要求主任評估師必須具有10年以上的軟件工程經驗,評估組的成員必須平均具有6年以上工程經l,評估組累計不少于25年工程經驗,每個生命周期階段要有兩個人具有實踐經驗,至少要有一個成員有6年以上的管理經驗,評估組累計要有10年以上管理經驗。這些要求其實是為了更好地進行專業(yè)判斷,避免機械照搬。

CMMI要求企業(yè)建立裁剪指南。在實踐中,裁剪指南往往比體系本身更重要。僵化的體系是不可能真正在組織里推行下去的,要保持體系的靈活與敏捷,就必須定義詳細的、實際的裁剪指南,并在實踐中逐步完善。

怪相三:工期依然拖 缺陷照常多

企業(yè)實施CMMI到一定階段后,EPG抱怨領導意識有問題,領導在言談舉止中對過程改進的支持力度不夠。而領導卻說該授權的也授權了,該獎勵的也獎勵了,該懲罰的也懲罰了,但是項目依然拖期,仍a存在質量問題,就認為EPG沒有解決核心問題。問題究竟出在什么地方呢?

過程改進的目的可以概括為“多、快、好、省”:多,即項目組能滿足客戶的需求越多越好,企業(yè)能承接的項目越多越好;快,即能夠提高企業(yè)的估算能力、應變能力,使項目能夠按期完工,減少拖期現象;好,即提高交付的產品質量,減少售后維護的工作量;省,即降低項目的開發(fā)成本,提高企業(yè)的贏利能力。

對于不同企業(yè)而言,在上述4個目的中可能側重點有所不同。當實施過程改進時,一定要緊緊圍繞企業(yè)的改進目標做工作,針對企業(yè)領導關注的問題、企業(yè)最薄弱的環(huán)節(jié)實施改進,這樣才能事半功倍,快速見效,否則見不到實際效果,任何管理方法都不會長久,任何領導也不會堅持。

很多情況下,企業(yè)在過程改進時,找到了病根,卻沒有找到有效的解決方案。比如單元測試和代碼走查是提高軟件質量的有效措施,已經在工程界得到了充分認可,但是在軟件生產企業(yè)中推廣時,往往會遇到開發(fā)人員的阻撓。開發(fā)人員會認為做單元測試與代碼走查浪費了大量的時間,不如直接做黑盒的功能測試更簡單?成員采取各種各樣的手段,努力使這些業(yè)內的最佳實踐變成企業(yè)的最佳實踐。上面提到的EPG與企業(yè)領導之間的互相抱怨問題,很大程度上歸因于此。

怪相四:文檔一篇篇 不見有人看

有已經通過CMMI3級評估的軟件生產企業(yè),完成一個項目需要項目組填寫接近90份文檔。當做CMMI的差距分析時,發(fā)現在那些文檔<有大量顯而易見的錯誤。而這些文檔還要給項目經理、QA人員及高層主管等多個角色去看,卻沒有人發(fā)現這些很明顯的錯誤。其實這些人根本就沒有去看這些文檔!既然沒有人去讀,何必要寫呢?

CMMI評估需要企業(yè)提供3種證據:直接證據、間接證據和人證。每條實踐都必須有直接證據。直接證據包括了產出的文檔、使用的工具等等。由于f接證據是必須的,于是,為了滿足評估的需要,很多企業(yè)做了上百個文檔來滿足模型的要求,其實這是不對的。模型是強調直接證據,但是并非文檔越多越好。文檔只是用來證明某個實踐你做到了,只要達到了這個目的就可以了。而且一個文檔可以滿足多條實踐的要求,可以作為多條實踐f證據,這是最經濟的做法。只要內容有了,也并非在乎文檔的多少與格式。

實施CMMI之前,項目組往往不寫文檔或者很少寫文檔;實施CMMI之后,寫的文檔又可能太多—這是兩個極端,需要平衡。

怪相五:流程很優(yōu)秀 效果不見有

有一家專門從事軟件外包的公司,通過CMMI3級,流程定義得很簡潔、實用,企業(yè)的執(zhí)行力也很強,但是項目的實際效果卻不好。為什么呢?經過仔細審查項目組的需求、設計、測n用例、源代碼等文檔,發(fā)現需求的描述有遺漏,有錯誤;設計文檔沒有滿足基本的設計原則;測試用例不完備,覆蓋率比較低;源代碼中需要重構的地方比比皆是。在調查中還發(fā)現項目組的成員都比較年輕,工程經驗大都少于兩年。盡管企業(yè)也進行了需求工程、設計模式等技術培訓,但經n不是靠培訓就能解決的。因此,即使有好的流程,仍然有可能開發(fā)不出好的軟件系統(tǒng)。

另外一家公司,沒有通過CMMI的評估,公司內有3個部門,其中一個部門積累了一個基于.NET的可復用的MIS軟件框架,該框架已由少數精英開發(fā)了4年,積累了4年,發(fā)布了多個版本。實現一個新需求時,只要定制界面,編寫存儲過程就可以了。當一個新員工進入該部門后,基于該框架,大概花費1周的時間就可以編寫出能夠交付給客戶執(zhí)行的代碼,該部門的開發(fā)效率很高。其實對于該企業(yè)來講,引入CMMI并非當務之急,打破部門之間的壁壘,將該軟件框架推廣到其他兩個部門可能投入、產出比會更高。人、過程、技術三者都不可偏廢。企業(yè)要分析人、技術與過程,哪個因素是企業(yè)的瓶頸問題。優(yōu)先解決瓶頸問題才能事半功倍,最大限度地提高生產效率。

硬件生產企業(yè)的生產線是由各種各樣的設備組成的,而軟件企業(yè)的生產線主要是由水平各異的人員構成的。在軟件開發(fā)中,人是最基本的生產要素,要想提高生產率,必須優(yōu)先提高人員的能力。

怪相六:大家要業(yè)績 快速過五級

很多企業(yè)在通過了CMMI3級的正式評估后,急于通過CMMI的5級評估。為什么呢?一是企業(yè)從市場競爭方面想把競爭對手甩在后面,便于爭取更多訂單;二是政府有巨資資助,企業(yè)通過高級別CMMI認證對當地的政府來講有業(yè)績;三是企業(yè)通過高級別CMMI認證可以擴大對外宣傳,增強客戶對自己的信任。幾種因素綜合在一起,企業(yè)不由自主地就開始了向高成.

CMMI的4級強調的是過程穩(wěn)定性與項目量化管理,5級強調的是根本原因分析與持續(xù)改進。很多企業(yè)可能在CMMI3級時,就已經做到了在項目組內定義量化的質量目標,并實現了該量化目標,因此在3級時可能就已部分做到4級的要求。有的企業(yè)在3級時就做到交付軟件的缺陷密度低于0.3個/Kloc,比SEI統(tǒng)計的通過CMMI5級評估的企業(yè)的平均質量還要好??蛻舻乃經Q定了供應商的水平,對于客戶要求高和生產高可靠性軟件的公司通過CMMI4~5級的評估是很有必要的。否則,真正達到CMMI3級水平就足以滿足一般的客戶需求。

在實施4~5級時,還需要慎重地考慮:你真的能在短時間內證明過程的穩(wěn)定性嗎?你真的可以在短時間內量化證明你的持續(xù)改進嗎?

按照統(tǒng)計學的要求,一諦枰?0個樣本點才可以證明過程的穩(wěn)定性,而且這些樣本點必須是與5M1E(人、機器、材料、方法、環(huán)境、測量)等因素相近的。而軟件企業(yè)的人員變動、技術方法升級等變化是比較快的,即使采集到8個樣本點,對于大多數軟件生產企業(yè)來說,也需要相當長的時間周期。根據SEI的報告,?992年以來,從等級1到等級2需要時間的中間值為19個月,從2級到3級的中間值為19個月,從3級到4級的中間值為24個月,從4級到5級的中間值為13個月。

CMMI認證的真正目的是幫助軟件生產企業(yè)改進生產流程,從而提高軟件產品的質量和生產效率。而CMM/CMMI在中國軟件這片特殊的土壤上一路走來,雖然曾經創(chuàng)造了許多輝煌,但更多的是遭遇了包括上述6種怪相在內的很多奇怪現象。   中國的軟件生產企業(yè)在通過相應級別的CMMI認證之后,如何理性看待CMMI,如何按照CMMI模型的要求使軟件生產流程得到真正持續(xù)的改進,如何準確判斷現有水平是否適合沖刺CMMI5級以及如何沖刺CMMI5級,從而做到CMMI在實效上的繁榮,而不是證書上的繁榮,這些都是中國軟件企業(yè)在真正走向世界之前要認真思考的問題。