CMM簡介
CMM是軟件過程能力成熟度模型(Capacity Maturity Model)的簡稱,是卡內基-梅隆大學軟件工程研究院爲了滿足美國聯邦政府評估軟件供應商能力的要求,於1986年開始研究的模型,並於1991年正式推出了CMM 1.0 版。CMM自問世以來備受關注,在一些發達國家和地區得到了廣泛應用,成爲衡量軟件公司軟件開發管理水平的重要參考因素和軟件過程改進事實上的工業標準。據瞭解,美國、印度、日本等國家已有數十家公司通過了CMM不同等級的認證。
1986年11月,SEI應美國聯邦政府的要求,在Mitre公司的協助下,於1987年9月開發了一套軟件能力成熟度框架和一套軟件成熟度問卷,用來評估軟件供應商的能力。這就是最早用於探索軟件過程成熟度的一個工具。
四年以後,也就是991年,SEI自己總結了CMM成熟度框架和初版成熟度問卷的實踐經驗,並以此爲基礎推出民用CMM1.0版。
CMM1.0版合用兩年之後,1992年4月,SEI舉行了CMM一個的研討會,參加研討會的有大約200名富有經驗的軟件專家。SEI在廣泛聽取他們的意見之後,又於1993年推出 CMM1.1版。這也是目前世界上比較流行和通用的CMM版本。
十幾年來,此項工作一直在不斷進行。按照SEI原來的計劃,CMM的改進版本2.0應該在1997年11月完成,然後在取得版本2.0得實踐反饋意見之後,在1999年完成準CMM2.0版本。但是,美國國防部辦公室要求SEI推遲發佈CMM2.0版本,而要先完成一個更爲緊迫得項目CMMI。
CMMI(Capability Maturity Model Integration)即能力成熟度模型集成,這也是美國國防部的一個設想,他們想把現在所有的以及將被發展出來的各種能力成熟度模型,集成到一個框架中去。這個框架有兩個功能,第一,軟件獲取方法的改革;第二,建立一種從集成產品與過程發展的角度出發、包含健全的系統開發原則的過程改進。
隨着人們對CMM研究的不斷深入,其他學科也結合本系統的特點,陸續推出了自己的CMM模型。例如,人力資源能力成熟度模型、系統工程能力成熟度模型等等。爲了以示區別,國內外很多資料把CMM叫做SW-CMM。
軟件過程成熟度的提高是一個漸進的過程,需要一個長遠的、可持續發展的過程作爲保證。爲建立一個面向過程持續提高的基礎和文化,有些軟件企業可能要花費很大的精力和時間。但是這種努力對任何一個軟件企業來說都是非常必要的。
CMM目前代表着軟件發展的一種思路,一種提高軟件過程能力的途徑。儘管它存在着某些不足。例如,成熟級別、關鍵過程域、公共屬性和關鍵實踐還需要在軟件行業進一步深入地討論和修訂,但它確實爲軟件行業的發展提供了一個良好的框架,而且是濃度軟件過程能力提高的有用工具。
增強我國軟件企業的競爭力,提高國產軟件的水平是國人的共同願望,但目前我國軟件水平,尤其是軟件開發能力和軟件生產能力還很差,這也是不爭的事實。那麼,如何提高我國軟件的開發和生產能力,從而提高軟件整體水平?軟件企業實施CMM也許不失爲一條有效的途徑。
一個企業的軟件能力更取決於該企業的過程能力,特別是在軟件開發和生產中的成熟度。其過程能力越是成熟,該企業的軟件生產能力 就越有保證。目前,我國已有一些軟件企業正在嘗試實施CMM。
當然,CMM不是萬能的,並不一定對所有的軟件企業都適合,實施CMM的企業也有失敗的例子。我們希望通過本專欄能使更多的企業瞭解CMM,儘快找到適合本企業的發展之路,從而提高中國軟件企業的競爭力。