CMM

CMM(Capability Mathrity Model)

能力成熟度模型,是一個開發模型由美國國防部收集組織的數據研究後創建的一個模型。maturity 涉及到軟件的流程以及優化程度,從開始實踐到正式定義的步驟,再到管理結果的指標,再到流程的主動優化。

這個模型的目標是爲了優化軟件開發流程,但也可以應用於其他流程。

簡介

能力成熟度模型最初是爲了客觀評估政府承包商開發軟件項目的能力而創建的一個模型。這個模型基於 IEEE 中首次描述的流程成熟度框架。

因此這個模型來自於軟件開發,但也可以作爲一個模型來輔助業務流程,也可以拓展到全世界的政府辦公,商業和工業中。

歷史

軟件開發流程早期

在 20 世紀 80 年代,計算機的使用更加廣泛,靈活且成本更低廉。各個組織都開始使用計算機信息系統,並且對軟件開發的需求顯著地成長。許多軟件開發的流程還在起步階段,很少有標準或者"最佳實踐"的定義。

結果是這種成長造成了很多痛苦:項目失敗是普遍的。在計科仍處於早期階段,項目的規模和複雜性超出了市場在計劃預算內提供足夠產品的能力。一些人開始發表文章或出版書籍試圖使軟件開發流程專業化。

先行者

27 歲的 Watts Humphrey 在 IBM 開發了流程成熟度概念

在軟件工程研究所(Software Engineering Institute)的發展

1986 年,Humphrey 離開了 IBM 加入了位於賓夕法尼亞州匹茲堡的美國國防部軟件工程研究所。應美國空軍的需求,他開始正式確定流程成熟度框架,用來幫助美國國防部評估軟件承包商的能力,作爲簽署合同的一部分。

美國空軍的研究的這一個模型爲軍隊提供了一個客觀評估軟件承包商的能力成熟度。Humphrey 將這個模型建立在 Philip B. Crosby 其 Quality is Free 一書中 Quality Management Maturity Grid(質量管理成熟度網絡) ,Humphrey 不同的是,組織基於以特定的順序解決流程問題而分階段優化他們的流程。而不是獨立地衡量每個單獨開發過程的成熟度。因此,CMM 被圖通的組織用來理解和改進商業流程方法的普遍而強大的工具。

能力成熟度模型作爲一套確定的標準和實踐在五個成熟度級別中的每一個完整表示於 1991年。

CMMI(Capability Maturity Model Integration)

CMM 模型應用於軟件開發曾被質疑。在培訓,評估和改進活動中,應用沒在組織內部集成的多個模型會造成很高的成本。

CMMI 項目用來解決軟件開發流程中使用多個模型所造成的問題。因此 CMMI 取代了 CMM,CMM 作爲一種理論在公共領域中被使用。

適用於其他流程

CMM 早起作爲一個工具來評估政府在軟件項目中承包商表現的能力水平。因此來源於軟件開發。但是這個模型可以、已被用於、且繼續應用於更廣泛的成熟度流程中。

模型要點

成熟度模型

一個成熟度模型可以看到用一個結構化的層次,來描述組織的行爲、實踐和流程能夠可靠且持續的輸出結果的程度。

模型可以用作比較的基準,並有助於理解。例如for comparative assessment of different organizations where there is something in common that can be used as a basis for comparison. In the case of the CMM, for example, the basis for comparison would be the organizations' software development processes.

真不好理解

結構

模型包含五個方面

  • 成熟度等級:連續 5 層,最上層(第 5 層)是一個理想化的狀態,可以通過流程優化和持續改進的組合來進行系統地管理。

  • 關鍵流程區域:一個關鍵的流程區域定義了一系列相關共同作用的活動,來達成一系列重要的目標

  • 目標:目標是關鍵流程區域的總結,用有效和持久的方式實施。目標實現的程度是組織能力在該成熟度上的指標。目標表示了每個關鍵過程域的範圍,邊界和意圖。

  • 共同特徵:共同特徵包括實施和制度化關鍵過程域的實踐。公有五中類型:執行承諾,執行能力,執行的活動,測量和分析以及驗證措施。

  • 關鍵實踐:關鍵實踐描述了最有效地促進該區域實施和制度化的基礎設施和實踐要素。

等級:

依照 SEI 的可預測性以及影響能力來定義了持續性的模型來控制企業中軟件流程。使企業往這5個方向上改進,雖然不嚴謹,但有相當一部分經驗來支持這種概念。

  • Initial 新的從未做過。

  • Repeatable 這個過程至少被記錄過,或許可以試圖重複相同的步驟來嘗試。

  • Defined 這個流程被標準的商業流程定義或者確認。

  • Capable 根據商業的指標對流程進行定量的管理。

  • Efficient 流程管理包括深思熟慮的流程優化和改進

對於每一個成熟度等級,關鍵流程域都有與之相對應,且每個域都有五個元素:goals,commitment,ability,measurement 以及 verification。這些並不是 CMM 獨有的,這是企業在成熟過程中必須經歷的階段。

Level 1 - Initial

在這個級別的過程的特徵是它們(通常)未記錄並且處於動態變化的狀態,傾向於由用戶或事件以臨時,不受控制和被動的方式驅動。 這爲進程提供了混亂或不穩定的環境。 (例子 - 外科醫生少量地進行新手術 - 負面結果的水平未知)。

Level 2 - Repeatable

這種成熟程度的特徵是某些過程是可重複的,可能具有一致的結果。 流程規則不太可能嚴格,但如果存在,可能有助於確保在壓力期間維持現有流程。

Level 3 - Defined

這一級別的流程的特徵是建立了一組已定義和記錄的標準流程,並且隨着時間的推移會有一定程度的改進。 這些標準流程已到位。 這些過程可能沒有被系統地或重複地使用 - 足以使用戶變得勝任或者在一系列情況下被驗證的過程。 這可以被認爲是一個發展階段 - 在更廣泛的條件和用戶能力發展中使用,該過程可以發展到下一個成熟水平。

Level 4 - Managed(Capable)

該級別的流程的特徵是,使用流程度量,可以在一系列操作條件中證明流程目標的有效實現。 已經測試了該過程在多種環境中的適用性,並且該過程得到了改進和調整。 流程用戶在多種多樣的條件下體驗過程,並且能夠展示能力。 流程成熟度使得能夠適應特定項目,而不會出現可測量的質量損失或偏離規範。 流程能力是從這個級別建立的。 (例子 - 外科醫生執行手術數百次,負面結果水平接近零)。

Level 5 - Optimizing(Efficient)

這一級別的流程的一個特點是,重點是通過增量和創新的技術變革/改進不斷改進流程績效。

在成熟度5級,流程涉及解決流程變化的統計常見原因和改變流程(例如,改變流程績效的平均值)以改善流程績效。 這將在保持實現既定的定量過程改進目標的可能性的同時完成。 世界上只有少數幾家公司達到了這一水平。

推薦這篇文章CMM/CMMI的5個等級

批判

該模型最初旨在評估政府承包商執行軟件項目的能力。 它已被用於並且可能適用於該目的,但批評者指出根據CMM的流程成熟度對於成功的軟件開發不一定是強制性的。

以上來自 Wikipedia

引進 CMM 的重要意義

對軟件公司而言

  • 提高軟件開發的管理能力,CMM 可以提供軟件公司的自我評估方法和自我提高手段

  • 提高軟件生產率

  • 提高軟件質量

  • 提高軟件公司的競爭力

對軟件項目發包單位和軟件用戶

  • 提供軟件開發商的開發管理水平和評估手段

  • 有助於軟件開發項目風險識別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章