發展
CMMI(Capability Maturity Model Integration For Software,軟體能力成熟度模型集成)是在
CMM(Capability Maturity Model For Software,
軟體能力成熟度模型)的基礎上發展而來的。CMMI是由美國卡耐基梅隆大學軟體工程研究所(Software Engineering Institute,
SEI)組織全世界的軟體過程改進和軟體開發管理方面的專家歷時四年而開發出來的,並在全世界推廣實施的一種軟體能力成熟度評估標準,主要用於指導軟體開發過程的改進和進行軟體開發能力的評估。
CMM模型自20世紀80年代末推出,並於20世紀90年代廣泛套用於軟體過程的改進以來,極大地促進了軟體生產率的提高和軟體質量的提高,為
軟體產業的發展和壯大做出了巨大的貢獻。
然而,CMM模型主要用於軟體過程的改進,促進軟體企業軟體能力成熟度的提高,但它對於系統工程、集成化產品和過程開發、供應商管理等領域的過程改進都存在缺陷,因而人們不得不分別開發軟體以外其他學科的類似模型。
自從引入基於模型的過程改進之後,工程界至少在三個重要領域已經有了變化。
首先,執行工程的環境已經變得更加複雜。工程量更大、需要更多的人員、需要跨越公司界限、發布範圍更寬更廣,而且必須繼續加快實現的進度,以滿足客戶的需要。這樣導致各種協調工作的大量增加。
其次,執行工程任務的方式已經有了進化。交叉學科群組、
並行工程、高度自動化的過程以及多國標準等都影響到工程實踐。這樣一來,一個工程項目可能要涉及到幾個
國際標準。
第三,軟體工程研究所的軟體能力成熟度模型(CMM)的成功,導致了各種模型的衍生,而每一種模型都探討了某一特定領域中的過程改進問題。各機構也已採用多種改善模型分別處理各自的關鍵過程問題。在工程組織中模型的繁衍導致了過程改進目標和技術的衝突,也導致了實踐人員在套用各種不同的模型來實現特定的需求時容易產生混淆,這就要求培訓工作也隨之增長。
所有這些變化都表明,有必要將各種過程改進工作集成起來。包含在當代工程中各種各樣的學科和過程是密切交又在一起的。在套用不同模型時,效率低下且容易混淆,常常要付出極其昂貴的代價。因而需要有一種單一的過程改進框架而又能跨越多種學科的工具。軟體能力成熟度模型集成(CMMI)就是用來解決這三類問題的。
基本思想
開發和套用CMMl的主要原因有三點:一是軟體項目的複雜性的快速增長使過程改進的難度增大,二是軟體工程的並行與多學科組合,三是實現過程改進的最佳效益。
(1)解決軟體項目的過程改進難度增大問題。CMM成功實施以後,極大地提高了軟體企業的開發效率和軟體產品的質量,從而也提高了軟體產品的可靠性和軟體產業的信譽,這樣人們就對軟體寄予了更大的希望。人們希望軟體能夠完成更多、更大、更複雜的任務。
(2)實現軟體工程的並行與多學科組合。CMM模型的成功實踐,促進了工程和產品開發的組織發生了巨大的變革,變革的目標主要是為了消除與分段開發有關的低效。在分段開發過程中,中間產品傳給下一階段的工作人員時,有可能要進行大量的返工,以糾正原先的理解錯誤。並行工程、交叉學科群組、交又功能群組、集成化產品群組以及集成化產品和過程開發等,都代表了在產品或服務的整個生命周期的合適時間內處理這類問題的不同方法。這種傾向意味著設計人員和客戶要與製造人員、測試人員和用戶共同工作,以支持開發需求的製造組織。這種工作方式蘊涵著所有關鍵的相關人員要支持產品或服務開發的所有階段。
(3)實現過程改進的最佳效益。儘管過程改進存在複雜化的因素,但軟體管理專家們相信,其中的許多障礙可以通過一個集成過程改進的公共模型來克服。這種信念反映了在集成方面所進行的工作和CMMl項目的作者和評審人員的經驗。人們相信,正如通過CMM的過程改進能夠產生顯著的效益一樣,集成過程改進也能產生更大的效益。
從根本上來說,過程改進集成主要影響四個領域:成本、側重點、過程集成和靈活性。其中某些變化可能比另一些變化容易量化,但所有這些都體現了過程改進集成的真正優勢。
CMMI模型的表示法
在CMMI中,每一種CMMI學科模型都有兩種表示法:階段式表示法和連續式表示法。
不同表示法的模型具有不同的結構。連續式表示法強調的是單個過程域的能力,從過程域的角度考察基線和度量結果的改善,其關鍵術語是“能力”;而階段式表示法強調的是組織的成熟度,從過程域集合的角度考察整個組織的過程成熟度階段,其關鍵術語是“成熟度”。
(1)階段式表示法
軟體CMM是一種階段式模型,該模型經過多年的成功使用已經被證明是有效的,這為選擇階段式表示法模型提供了最強有力的證據。考慮從不成熟組織向成熟組織的發展過程,階段式表示法具有兩方面優勢。
首先,階段式模型為支持組織的過程改進提供了一個過程平台,該模型將軟體組織的軟體能力成熟度描述為5級。對於著眼於改善過程成熟度的組織來說,階段式模型提供了一種明確的、行之有效的跨越式發展途徑。階段式模型中所描述的組織的五個成熟度等級中,每實現一次等級間的跨越,組織就致力於解決某一方面的問題。例如,組織從成熟度等級1到成熟度等級2,主要致力於項目管理過程的改進;從成熟度等級2到成熟度等級3,主要致力於廣泛的組織級過程的改進;從成熟度等級3到成熟度等級4,主要致力於過程定量管理的過程的改進;從成熟度等級4到成熟度等級5,主要致力於技術革新和最佳化過程的改進。通過這種方式,階段式模型確定了組織進行過程改進的最佳次序。
其次,階段式模型可以為組織定義一個過程成熟度等級,便於進行跨組織的比較。在階段式模型中,每一個過程域都被指定歸屬到一個成熟度等級中。因此,基於階段式模型為組織所定義的成熟度等級中,過程域的預期範圍和套用將變得非常清晰。這樣,在對不同的組織進行比較時,只要對比組織所達到的不同的成熟度等級,即可知道不同組織在執行過程域方面所存在的差別。
階段式表示法存在兩方面的缺點:一是階段式表示法採用分組形式,將過程域劃分到五個等級中。在一般情況下,一個組織要到達某一個等級,必須滿足該等級及其低等級的所有過程域,因而缺乏靈活性。另外,階段式表示法的每個等級都會出現同時進行多個過程改進的情況,因而工作量大,所花費的成本也很大。
(2)連續式表示法
相比之下,連續式模型不如階段式模型常用,採用連續式模型也有如下兩方面的優勢:
首先,連續式模型為用戶進行過程改進提供了比較大的自由度。如同上面所說,階段式模型確定了組織進行過程改進的最佳次序,但同時也限定了用戶在進行過程改進時必須遵循單一的改善路徑。而連續式模型則允許用戶根據組織的業務目的來選擇過程改進活動的次序。在連續式模型中,用戶可以選擇定義組織的成熟度等級,同時還可以選擇定義更適合於自身業務環境的過程域的次序。組織可以在一個自己選擇的次序中使過程域達到給定的能力等級,而不必遵循單一的階段式模型的原則。
其次,基於連續式模型對組織的過程進行評估,其評估結果具有更好的可見性。在連續式模型中,可以為每個過程域定義多個能力等級,從而可以增強對過程改進中強項和弱點的認識。由於連續式模型是對每個個別的過程域進行單獨的評定,並給出個別過程域的能力等級特徵圖,這樣更便於觀察。
連續式表示法也存在兩方面的缺點:一是由於連續式表示法沒有規定過程域套用的順序,
連續式表示法也存在兩方面的缺點:一是由於連續式表示法沒有規定過程域套用的順序,因而組織的過程改進需要軟體過程改進專家的指導,以便確定組織需要改進的過程和改進的先後次序。另外,儘管組織套用連續式表示法進行了過程改進,但難以與其他軟體組織進行組織間過程能力的比較。
級別
CMMI共有5個級別,代表軟體團隊能力成熟度的5個等級,數字越大,成熟度越高,高成熟度等級表示有比較強的軟體綜合開發能力。
CMMI一級,執行級。在執行級水平上,軟體組織對項目的目標與要做的努力很清晰,項目的目標可以實現。但是由於任務的完成帶有很大的偶然性,軟體組織無法保證在實施同類項目時仍然能夠完成任務。項目實施能否成功主要取決於實施人員。
CMMI二級,管理級。在管理級水平上,所有第一級的要求都已經達到,另外,軟體組織在項目實施上能夠遵守既定的計畫與流程,有資源準備,權責到人,對項目相關的實施人員進行了相應的培訓,對整個流程進行監測與控制,並聯合上級單位對項目與流程進行審查。二級水平的軟體組織對項目有一系列管理程式,避免了軟體組織完成任務的隨機性,保證了軟體組織實施項目的成功率。
CMMl三級,明確級。在明確級水平上,所有第二級的要求都已經達到,另外,軟體組織能夠根據自身的特殊情況及自己的標準流程,將這套管理體系與流程予以制度化。這樣,軟體組織不僅能夠在同類項目上成功,也可以在其他項目上成功。科學管理成為軟體組織的一種文化,成為軟體組織的財富。
CMMI四級,量化級。在量化管理級水平上,所有第三級的要求都已經達到,另外,軟體組織的項目管理實現了數位化。通過數位化技術來實現流程的穩定性,實現管理的精度,降低項目實施在質量上的波動。
CMMI五級,最佳化級。在最佳化級水平上,所有第四級的要求都已經達到,另外,軟體組織能夠充分利用信息資料,對軟體組織在項目實施的過程中可能出現的次品予以預防。能夠主動地改善流程,運用新技術,實現流程的最佳化。
由上述的5個級別可以看出,每一個級別都是更高一級的基石。要上高層台階必須首先踏上所有下層的台階。套用
CMMI是一個龐大的過程元模型,自發布以來在世界軟體界產生了巨大的影響。CMMI等級評估已經成為業界公認的標準,CMMI的證書成了一個企業或組織能力和形象的標誌,沒有這個證書不僅難以獲得國外項目,甚至也難以在國內一些項目的競標中獲勝。CMMI適合企業操作,避免了某些管理體系只重理論而忽視實踐的缺陷。在我國,隨著媒體的宣傳和政府的支持,許多企業引入了CMMI諮詢和認證,對於整個軟體行業的管理提升及研發效率提高起到了很大的幫助作用。但也有一些企業引入CMMI體系後,只留下一些形式上的開發流程和文檔模板,在管理上並無實質性改進。對於CMMI,業界一直存在著兩種聲音,有人認為CMMI執行過度,得不償失;也有人說它過於通用,實用價值不大;但多數人還是認同它,並根據需要加以套用。
作用
很多軟體企業紛紛實施CMMI管理模式,不少企業如:東軟、托普、華為等企業通過了三級或四級評估。這一方面反映了我國企業在進入WTO後的危機意識,以及與世界接軌的迫切願望。另一方面則反映出我國軟體企業在改進管理方法上所作的努力。但是CM-MI到底能夠為我們做什麼呢?實際上這個問題對不同的人有不同的答案。對採購部門的人員來說,掌握了CMMI技術可以有目的地考察項目實施人員或公司的實施能力,從而保證所採購的項目能夠順利完成。對於項目經理來說,掌握CMMl技術能夠提高自己的項目管理能力,從而能夠使項目高質量、低成本、按期限地完成。對於企業領導人來說,CMMI技術不僅能夠提升企業的管理水平,還能夠引入科學的管理理念,提升企業的整體管理水平。
在美國,很多企業通過CMMI評估一方面為了滿足承包國防工程或一些大企業的工程的要求,另一方面也是為了提高企業自身的管理能力。美國政府的工程項目,絕大多數都要求承包商具有一定的CMMI級別作為參加投標的資格。越來越多的大型企業業開始要求其工程承包商具有一定的CMMl級別。級別高的企業在贏得項目的競標中具有一定的優勢。因此,如果沒有CMMI的等級評估,企業就會失去很多商機。
套用
CMMI是一個龐大的過程元模型,自發布以來在世界軟體界產生了巨大的影響。CMMI等級評估已經成為業界公認的標準,CMMI的證書成了一個企業或組織能力和形象的標誌,沒有這個證書不僅難以獲得國外項目,甚至也難以在國內一些項目的競標中獲勝。CMMI適合企業操作,避免了某些管理體系只重理論而忽視實踐的缺陷。在我國,隨著媒體的宣傳和政府的支持,許多企業引入了CMMI諮詢和認證,對於整個軟體行業的管理提升及研發效率提高起到了很大的幫助作用。但也有一些企業引入CMMI體系後,只留下一些形式上的開發流程和文檔模板,在管理上並無實質性改進。對於CMMI,業界一直存在著兩種聲音,有人認為CMMI執行過度,得不償失;也有人說它過於通用,實用價值不大;但多數人還是認同它,並根據需要加以套用。