CMMI全稱是Capability Maturity Model Integration,CMMI是個好東西來的,但行內人士對她的認識並不全面,甚至有種種的誤解。儘管網上有不少CMMI相關介紹,但通常都是比較苦澀難懂的。本文將用生動通俗的語句,讓你們初步看清楚CMMI的真面面孔。php
CMMI是什麼東西?html
CMMI英文全稱是Capability Maturity Model Integration,直接翻譯就是能力成熟度模型,直接看這幾個中文字,你仍是沒有辦法搞清楚CMMI是什麼東西的。數據庫
你們可能在網上見過不少《成功人士的七個習慣》(可能還有不少相似的名字)的文章吧?有人總結了成功人士的成功的緣由,總結出他們的習慣,若是咱們也能具有這些習慣,那麼咱們也極可能成爲成功人士。相似的,CMMI能夠看做是成功企業如何作好軟件的一些習慣、作法、準則等的集合,是如何作好軟件的最佳實踐的集合。若是企業也能按照CMMI的要求作好,那麼企業就極可能成爲成功的企業。post
CMMI裏面全部的要求,都是來自於成功企業的最佳實踐的,她的先進性咱們沒必要懷疑,若是咱們沒有作好,那不是CMMI自己的問題,而是咱們本身沒有理解好或者是沒有執行好的緣由。優化
說到CMMI,就不可避免會提到另外3個字母SEI,SEI全稱是Software Engineering Institute的全稱,直譯就是軟件工程學院,是美國的一所大學,CMMI標準就是他們搞出來的。spa
CMMI目前最新版本是V1.2,若是你是如今纔開始瞭解CMMI的,那麼你徹底沒有必要去搞清楚V1.1與V1.2的差異,更加沒有必要去比較CMM與CMMI的差異,直接瞭解CMMI V1.2就能夠了,你只須要知道CMM是CMMI的前身,而CMMI V1.1雖然比CMM要新不少,但如今已經不用了。如今在互聯網上還有不少比較CMM與CMMI的文章的,除非你很想了解或者你有不少時間,建議沒必要去看這些內容。.net
連續式 vs 階段式翻譯
CMMI有兩種表述方式:連續式與階段式,兩種方式只是從不一樣的角度來闡述CMMI,其實質上表達的內容是一致的。就好像咱們作數據庫設計的時候,可能會設計不一樣的視圖來查看相同數據表的數據,只是角度不同。設計
你們可能會問,好好的CMMI,爲何要搞兩種表達方式呢?不怕把你們搞糊塗嗎?htm
確實這兩種方式把很多人給搞糊塗了,這是SEI的一個敗筆。之前的CMM是隻有階段式的表達方式的,連續式是後來提出來的,SEI內部分紅兩派,一派支持連續式,一派支持階段式,各執己見,最後達不成一致,就出來瞭如今這個樣子,連續式與階段式二者共存。
連續式其實更加能反應過程改進的本質,而且能更好地引導企業把過程改進作到實處,但連續式比較難以理解。階段式是直接繼承CMM的,你們都比較容易理解,並且階段式有一個級別,在商業上更好宣傳,但很容易致使企業爲了過級而過級。
連續式和階段式同時也是評估的兩個不一樣角度,用連續式評估,企業會獲得不少個PA的Level,用階段式評估,企業會獲得一個總體的Level。
對CMMI還不是很熟的人士,先了解這麼多就能夠了,之後再慢慢了解。
CMMI 1至5級簡述
這裏咱們用比較容易理解的階段式的角度,來描述一下CMMI的級別。
在模型中,全部軟件組織的軟件能力成熟度劃分爲5個等級——第1到第5級。數字越大,成熟度越高,高成熟度等級表明比較強的綜合軟件能力。
5個成熟度等級分別是:
第1級:初始級
第2級:受管理級
第3級:已定義級
第4級:定量管理級
第5級:持續優化級
CMMI的五個臺階(五個等級)
臺階一:CMMI一級,完成級。
在完成級水平上,企業對項目的目標與要作的努力很清晰,項目的目標得以實現。可是因爲任務的完成帶有很大的偶然性,企業沒法保證在實施同類項目的時候仍然可以完成任務。企業在一級上的項目實施對實施人員有很大的依賴性。
臺階二:CMMI二級,管理級。
在管理級水平上,企業在項目實施上可以遵照既定的計劃與流程,有資源準備,權責到人,對相關的項目實施人員有相應的培訓,對整個流程有監測與控制,並與上級單位對項目與流程進行審查。企業在二級水平上體現了對項目的一系列的管理程序。這一系列的管理手段排除了企業在一級時完成任務的隨機性,保證了企業的全部項目實施都會獲得成功。
臺階三:CMMI三級,定義級。
在定義級水平上,企業不只可以對項目的實施有一整套的管理措施,並保障項目的完成;並且,企業可以根據自身的特殊狀況以及本身的標準流程,將這套管理體系與流程予以制度化這樣,企業不只可以在同類的項目上生到成功的實施,在不一樣類的項目上同樣可以獲得成功的實施。科學的管理成爲企業的一種文化,企業的組織財富。
臺階四:CMMI四級,量化管理級。
在量化管理級水平上,企業的項目管理不只造成了一種制度,並且要實現數字化的管理。對管理流程要作到量化與數字化。經過量化技術來實現流程的穩定性,實現管理的精度,下降項目實施在質量上的波動。
臺階五:CMMI五級,優化級。
在優化級水平上,企業的項目管理達到了最高的境界。企業不只可以經過信息手段與數字化手段來實現對項目的管理,並且可以充分利用信息資料,對企業在項目實施的過程當中可能出現的次品予以預防。可以主動地改善流程,運用新技術,實現流程的優化。
由上述的五個臺階咱們能夠看出,每個臺階都是上面一階臺階的基石。要上高層臺階必須首先踏上較低一層臺階。企業在實施CMMI的時候,路要一步一步地走。通常地講,應該先從二級入手。在管理上下功夫。
第1級是不須要評估的,哪怕大家是手工做坊開發的軟件公司,也能夠說是CMMI1級。從2級開始到5級,SEI在每一個級別都有詳細的標準。
那怎樣纔算達到某個級別呢?
要經過高級別的評估,要知足這個級別如下全部級別的標準。
例如:
一個進行4級評估的企業,評估的時候首先是看是否達到2級要求,而後是3級要求,而後纔是4級要求。
評估的時候,若是2級的標準達到,但3級的要求達不到,就算4級的要求達到了,也只能算2級。
每一個級別又表明怎樣的意思呢?下表簡要地說明了1到5級的差別:
2級比較容易作到,要作到3級要作的事情多不少,通常來講建議二、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的做用作好準備