1986年11月,美國聯邦政府委托卡內基梅隆大學(Carnegie-Mellon)軟件工程研究所(SEI)開發一套用于評估軟件承包商能力的方法。SEI于1987年9月發布了一套軟件過程成熟度框架和一套成熟度問卷。1991年,SEI將軟件過程成熟度框架發展成為軟件能力成熟度模型(Capacity Maturity Model,CMM),誕生了CMM 1.0。1993年,SEI推出了CMM 1.1,這是目前世界上應用最廣泛的CMM版本。
十幾年來,CMM的改進工作一直不斷地進行。美國國防部希望把現在所有的、以及將被開發出來的各種能力成熟度模型,集成到一個框架中去。到2000年,CMM演化成為CMMI(Capability Maturity Model Integration,能力成熟度模型集成)。CMMI不僅適合軟件,而且適合于軟件硬件結合的系統,這是對CMM最大的改進。
從20世紀90年代至今,軟件過程改進成為軟件工程學科的一個主流研究方向,其中CMM和CMMI是該領域舉世矚目的重大成果。CMM/CMMI是世界范圍內用于衡量軟件(硬件)過程能力的事實上的標準,同時也是軟件(硬件)過程改進最權威的指南。
CMM將能力成熟度分為5個級別,這5個成熟度等級為評價機構軟件過程能力提供了一個有序的級別,如圖1-2所示。同時也為機構的軟件過程改進工作指明了方向,讓人們分清輕重緩急,指導人們一步一步地改進過程能力而不是企圖跳躍式地前進。
圖1-2 CMM的5個能力成熟度等級
人們往往搞不清楚CMM和軟件過程改進的關系,將二者混為一談。下面作個比喻來解釋:
把“軟件過程改進”比喻為“學英語,提高英語能力”,那么CMM就好比是“英語等級評估標準(考試大綱)”。一般情況下,英語等級考試的成績反映了英語能力。但是,在特別擅長應試的中國,英語考試成績很好并不見得英語能力很好,甚至可能差到“啞巴英語”的程度。這種“特性”傳染到軟件領域,不少企業雖然通過了高級別的CMM等級評估,但是其實際能力卻非常低下。
軟件過程改進的真正目的是提高機構的軟件過程能力,而不是為了達到CMM高等級!叭旯麑懺,功夫在詩外”,這是很好的啟示。
2000年至2003年,我在上海貝爾有限公司負責CMM/CMMI的研究和推廣工作,公司的每個事業部都有軟件(硬件)過程改進人員。公司在CMM/CMMI過程改進方面的投入巨大,取得一些成效,但是沒有達到我的期望值。感慨很多,一言難盡。此處,我對CMM/CMMI過程改進做個簡要的評論,供同行企業參考。
一、CMM等級評估:從狂熱回歸理性
2000-2003年是國內IT企業搞CMM等級評估最狂熱的時期,主要原因有:
(1)2000年,CMM剛剛在國內興起,感興趣(學習、研究)的人非常多。近幾年國內出版了不少關于CMM、軟件過程改進的書籍,相關論壇、會議也比較多。有良好的群眾基礎。
(2)那個時候ISO9000認證已經被國人搞臭了,而當時國內CMM 等級評估還很少見,企業達到CMM 2級、3級是很榮耀的事情。物以稀為貴,人們把認證的目光從ISO9000轉向了CMM。
文章來源于領測軟件測試網 http://www.kjueaiud.com/