CMMI基礎知識掃盲

2021-07-13 14:19:02 字數 3971 閱讀 3661

摘要

cmmi全稱是capability maturity model integration,cmmi是個好東西來的,但行內人士對她的認識並不全面,甚至有種種的誤解。儘管網上有很多cmmi相關介紹,但一般都是比較苦澀難懂的。本文將用生動通俗的語句,讓大家初步看清楚cmmi的真面面孔。

cmmi是什麼東西?

cmmi英文全稱是capability maturity model integration,直接翻譯就是能力成熟度模型,直接看這幾個中文字,你還是沒有辦法搞清楚cmmi是什麼東西的。

大家可能在網上見過很多《成功人士的七個習慣》(可能還有很多類似的名字)的文章吧?有人總結了成功人士的成功的原因,總結出他們的習慣,如果我們也能具備這些習慣,那麼我們也很可能成為成功人士。類似的,cmmi可以看作是成功企業如何做好軟體的一些習慣、做法、準則等的集合,是如何做好軟體的最佳實踐的集合。如果企業也能按照cmmi的要求做好,那麼企業就很可能成為成功的企業。

cmmi裡面所有的要求,都是來自於成功企業的最佳實踐的,她的先進性我們不必懷疑,如果我們沒有做好,那不是cmmi本身的問題,而是我們自己沒有理解好或者是沒有執行好的原因。

說到cmmi,就不可避免會提到另外3個字母sei,sei全稱是software engineering institute的全稱,直譯就是軟體工程學院,是美國的一所大學,cmmi標準就是他們搞出來的。

連續式 vs 階段式

cmmi有兩種表述方式:連續式與階段式,兩種方式只是從不同的角度來闡述cmmi,其實質上表達的內容是一致的。就好像我們做資料庫設計的時候,可能會設計不同的檢視來檢視相同資料表的資料,只是角度不一樣。

大家可能會問,好好的cmmi,為什麼要搞兩種表達方式呢?不怕把大家搞糊塗嗎?

確實這兩種方式把不少人給搞糊塗了,這是sei的乙個敗筆。以前的cmm是只有階段式的表達方式的,連續式是後來提出來的,sei內部分成兩派,一派支援連續式,一派支援階段式,互不相讓,最後達不成一致,就出來了現在這個樣子,連續式與階段式兩者共存。

連續式其實更加能反應過程改進的本質,並且能更好地引導企業把過程改進做到實處,但連續式比較難以理解。階段式是直接繼承cmm的,大家都比較容易理解,而且階段式有乙個級別,在商業上更好宣傳,但很容易導致企業為了過級而過級。

連續式和階段式同時也是評估的兩個不同角度,用連續式評估,企業會得到很多個pa的level,用階段式評估,企業會得到乙個整體的level。

對cmmi還不是很熟的人士,先了解這麼多就可以了,以後再慢慢了解。

cmmi 1至5級簡述

這裡我們用比較容易理解的階段式的角度,來描述一下cmmi的級別。

在模型中,所有軟體組織的軟體能力成熟度劃分為5個等級——第1到第5級。數字越大,成熟度越高,高成熟度等級代表比較強的綜合軟體能力。

5個成熟度等級分別是:

第1級:初始級

第2級:受管理級

第3級:已定義級

第4級:定量管理級

第5級:持續優化級

第1級是不需要評估的,哪怕你們是手工作坊開發的軟體公司,也可以說是cmmi1級。從2級開始到5級,sei在每個級別都有詳細的標準。

那怎樣才算達到某個級別呢?

要通過高階別的評估,要滿足這個級別以下所有級別的標準。

例如:乙個進行4級評估的企業,評估的時候首先是看是否達到2級要求,然後是3級要求,然後才是4級要求。

評估的時候,如果2級的標準達到,但3級的要求達不到,就算4級的要求達到了,也只能算2級。

每個級別又代表怎樣的意思呢?下表簡要地說明了1到5級的差異:

2級比較容易做到,要做到3級要做的事情多很多,一般來說建議2、3級一起來做。3級到4級跨度很大,要做到4級非常不容易。如果4級做得比較好,要做到5級難度不算很大。以下是各級難度的示意圖:

過程域(pa)、目標(goal)與實踐(practice)

cmmi2級到5級,每個級別都包含幾個到十幾個pa(process area),直接翻譯就叫做:過程域。

pa簡單地說就是要做好軟體開發的某乙個方面,如果要達到某個級別的要求,就要達到該級別所有pa的要求。乙個pa包含幾個goal(目標),如果要達到某個pa的要求,就意味著要達到該pa每個goal的要求。

每個goal怎樣才算達到要求呢?每個goal又包含幾個到十幾個practice(實踐),如果這些practice都做到了,就認為該goal達到要求了。

級別、pa、goal與practice的關係示意圖如下:

2級有7個pa,3級有11個pa,4級有2個pa,5級有2個pa,一共22個pa,practice的總數量超過400個。如果要達到5級的要求,意味著必須滿足這400多個practice的要求。

評估辦法

評估乙個企業達到多少級別的要求,其實就是看相應的practice是否達到要求。評估辦法根據嚴謹的程度,分為以下辦法:

scampi c

scampi b

scampi a

scampi a是最嚴謹的,進行正式評估的時候,必須採用該辦法。下面我們簡單體會一下scampi a評估方法。

舉乙個日常的例子,比方說你今天中午吃了飯,但別人不知道,別人要判斷你是不是吃了飯,用scampi a的辦法來判斷的話,需要提供以下證據:

1)書面直接證據,能證明你吃了飯的書面的直接的證據。如果你去餐廳吃飯的,你的帳單就可以用來做直接證據,如果你在家做飯,那就麻煩,可能沒有能留下直接書面證據了。

2)書面間接證據:比方說你在家做飯,之前去買菜了,你買菜的賬單就可以作為間接書面證據。

3)訪談證據:如果別人問你,今天中午有沒有吃飯,你能準確說出來,並且沒有疑點,那就認為證據有效了,或者是如果你和別人吃飯,別人能說出跟你吃了飯,也認為證據有效了。

以上3方面的證據,第乙個證據書面直接證據,是必須要有的,同時第2和第3類證據,至少要有乙個。以上證據都具備,才能認為你吃了飯。

我想大家可能要「**」了,為了要證明吃了飯,居然要這樣麻煩!當然吃飯只是乙個例子,我們進行cmmi評估的時候,每乙個practice都需要提供這樣的證據。

準備評估沒有什麼捷徑,就是老老實實按照cmmi的要求去做,認真做好過程改進的工作,認真準備書面證據,訪談的時候就按照實際的做法老老實實的回答。

企業商業目標與cmmi

有一種業內普遍的誤解,好像cmmi級別越高,專案的成本就越高。那麼我們要問,為什麼我們還要去追求高階別呢?企業到底為什麼要去評估cmmi?

業內也有另外一種誤解,cmmi是用來提高軟體質量的。那麼cmmi不用來加快軟體開發進度,節省成本嗎?軟體開發從來就是質量、進度、成本的平衡,cmmi只關注乙個方面嗎?

公司的商業目標,簡單地說兩個字可以概括——「賺錢」!為了賺錢,我們有很多辦法:

提高質量,我們的質量不需要很高,比競爭對手高就可以了。

加快進度,我們的進度也不需要很快,但至少要比競爭對手快。

減少成本,成本也不必減少很多,關鍵是能支援公司運作,能帶來利潤就可以了。

cmmi是為企業的商業目標服務的!既不是純粹提高質量,也不是光增加公司的成本而不提高效益。cmmi是為了提高企業的生產力!

如果貴公司實施了cmmi,而沒有提高生產力的話,改進是失敗的,違背cmmi的初衷的。cmmi是個好東西,我們沒有做好,並不是cmmi的錯,是我們沒有理解好或者是執行好。

要讓cmmi切實為企業帶來價值,難度很高,如何才能做到?這些內容可以寫一本書。本文希望能澄清大家的一些思想誤區,掃掃cmmi的文盲,為切實發揮cmmi的作用做好準備

CMMI基礎知識掃盲

cmmi是什麼東西?連續式 vs 階段式 cmmi有兩種表述方式 連續式與階段式,兩種方式只是從不同的角度來闡述cmmi,其實質上表達的內容是一致的。就好像我們做資料庫 設計的時候,可能會設計不同的檢視來檢視相同資料表的資料,只是角度不一樣。大家可能會問,好好的cmmi,為什麼要搞兩種表達方式呢?不...

CMMI基礎知識掃盲

摘要 cmmi全稱是capability maturity model integration,cmmi是個好東西來的,但行內人士對她的認識並不全面,甚至有種種的誤解。儘管網上有很多cmmi相關介紹,但一般都是比較苦澀難懂的。本文將用生動通俗的語句,讓大家初步看清楚cmmi的真面面孔。cmmi是什麼...

CMMI基礎知識掃盲 筆記

原教程 cmmi capability maturity model integration cmmi v1.2 後分為三種 sei sofeware engineering institue 軟體工程學院 在模型中,所有軟體組織的軟體能力成熟度劃分為5個等級 第1到第5級。數字越大,成熟度越高。高...