原文出處:
http://tech.it168.com/m/2007-08-02/200708020957750.shtml 本文請勿轉載。
近來筆者所在公司正在為過CMMI3做各種準備,對公司的員工進行了一些相關的培訓,作為項目管理人員的我,在學習CMMI3的過程中,也有了自己的一點對于CMMI3的思考。
CMMI將軟件過程中的很多步驟都通過步驟規范起來,它并沒有告訴我們應該怎么去做,而只是告訴我們應該做些什么。因為軟件過程中的每一步都需要經過思考、決策、有依據才能得出過程的結果,所以減少了每一步發生錯誤的可能性。
一.CMMI概述
CMMI是Capacity Maturity Model Integrated的簡稱,即集成的軟件能力成熟度模型,CMM是CMMI的早期版本,它主要用于軟件工程,而CMMI是一種綜合性模型,它是工程實施和管理方法,它在軟件與系統集成以外的如科研、工程等領域都得到了廣泛的應用。
CMMI是一個由理論和經驗部分組成的模型。它有連續式和階段式兩種表述方式,其中連續式主要用于衡量一個企業的項目能力,而階段式主要用來衡量一個企業的成熟度。在連續式表述下,企業在接受評估時可以選擇自己希望評估的項目來進行評估,所以評估通過率相對比較大,但它反映的那個相對比較窄,因為它僅僅反映該企業的該項目或類似項目達到了對應的等級。而用階段式來進行評估時,需由評估師自己來挑選內部的任何項目或其中的某一部分來進行評估。
階段式的CMMI有5個等級,如下:
第一級(初始級):在該等級下,項目的目標雖然得以實現,但它的實現帶有很多的偶然性和風險性,該級對人員的依賴性比較大,性能依賴個人的能力,且隨個人固有的性能、知識和動機的不同而變化。
第二級(受管理級):在該等級下,意味著組織要確保策劃、文檔化、執行、監督和控制項目級的過程,并且需要為過程建立明確的目標,并能實現成本、進度和質量目標等。在這種情況下,組織已經營造了一個穩定的、受控的開發環境,項目已經在受控制的狀態下運行。該級包括如下7個過程域:需求管理(RM)、項目策劃(PP)、項目監督與控制(PMC)、供方協定管理(SAM)、測量與分析(MA)、過程和產品質量保證(PPQA)和配置管理(CM)。
第三級(已定義級):在等級三下,項目執行過程是通過裁剪組織的標準過程集合和組織過程財富產生的“已定義過程”,并具備與該過程相適應的運行環境。該級報刊如下11個過程域:需求開發(RD)、技術解決(TS)、產品集成(PI)、驗證(Ver)、確認(Val)、組織過程聚焦(OPF)、組織過程定義(OPD)、組織培訓(OT)、集成項目管理(IPM)、風險管理(RSKM)和決策分析和決定。
第四級(定量管理級):在等級四下,組織建立了產品質量、服務質量以及過程性能的定量目標,運用統計技術和定量目標作為判斷過程管理成功的標準。在過程的生存周期里,對產品質量、服務質量和過程性能做到統計意義上的了解和管理。該級包括如下兩個過程域:組織過程性能和定量項目管理。
第五級(持續優化級):該等級的突出特征是過程性能的持續改進。組織建立起整個組織的定量過程的定量過程改進目標,并且把它們作為過程改進的判斷標準;這些目標將適時修改,以反映不斷變化的本組織的業務目標。實際實施的過程和組織的標準過程集合都是改進活動的對象。該級包括如下兩個過程域:組織革新和部署和原因分析和決定。
二.CMMI給我們帶來了什么好處?
概括來說,CMMI給我們帶來了如下好處:改進進度和預算的可預測性、改進開發周期、提高生產率、改進質量(質量缺陷)、增加客戶的滿意度、提高員工的士氣、增加投資回報和低質量成本。
對于不同的人來說,CMMI給他們帶來的好處各有不同,例如,對于企業的老板來說,CMMI不僅提高了企業整體的管理水平,而且為企業引進了科學高效的管理觀念、創造了更好的利益。而對于項目經理來說,對CMMI技術的學習掌握能夠提高自身的項目管理能力,因此能夠更好的提高項目質量,低成本、按期限的完成既定的任務。等等。
CMMI的實施包括如下幾個步驟:差距分析、過程定義、過程部署和實施、預先評估和正式評估五步。它的實施能夠提高我國企業的管理水平,使我國的企業在管理上能夠盡快地引入國際上的先進技術。調整了我國企業的管理體制,使其從無序變成有序、主觀變成客觀、人治變為體制。CMMI應用將產生的直接效果是提高了工程項目的質量、降低了工程的成本,保證了工程的周期、提高我國企業的在國內與國際市場上的競爭能力。
來越多的大型企業業開始要求其工程承包商具有一定的CMMI級別。級別高的企業在贏得項目的競標中具有一定的優勢。 因此,如果沒有CMMI的等級評估,企業就會失去很多商機。另一方面,企業通過CMMI評估也是為了提升企業內部的管理水平,降低企業的工程成本,得到更加豐厚的回報,對企業來說受益不少。
就拿筆者所在公司來說,從CMMI實施中進行差距分析來說,測量與分析、風險管理、組織培訓等地方明顯做得不夠。因為沒有測量與分析的數據的采集,導致過程中的很多地方無法進行估量。因為對風險管理得不夠,使得風險散播到項目過程中的各個地方,無法從某處獲得對風險的集中管理。因為上級的組織培訓的不重視,導致很多技能不能被相關人員較快較好的掌握。除此以外,還存在很多的問題,CMMI的實施給公司項目管理者帶來了福音。
三.對CMMI的思考
筆者在學習CMMI的過程中,也產生過一些疑問,進行過一些思考,具體如下:
1. 實施CMMI最好采用什么方式來驅動?
CMMI只是告訴我們需要做什么,但具體如何做,以及采用什么工具、方法和技術等去做,這些答案需要我們自己去找。
實施CMMI最好采用什么方式來驅動呢?
答案是以實際需求來驅動,真正遵循IDEAL(I-初始;D-診斷;E-建立;A-執行;L-學習)組織過程改進模型。
我們不應該過分的追求采用什么方法或工具來做好某件事情,例如設計圖我們并不一定需要采用專門的Rose的工具來做;對需求等的跟蹤并不一定要采用專門的需求跟蹤工具來做,很多時候Excel就能夠達到很好的跟蹤效果。在以實際需求來驅動的過程中,可以靈活的采用適合的方法或工具,不應該太過拘泥。
2. CMMI與ISO9000存在哪些區別?
取得ISO 9000認證不意味著完全滿足CMMI的某等級要求。取得CMMI第二級或第三級也不能籠統地認為可以滿足ISO 9000的要求。
3. CMMI過時了嗎?
迭代開發技術、軟件產業最佳實踐、和經濟動機推動組織采用基于結果的方法:開發業務案例、構想和原型方案;細化后納入基線結構、可用發布,最后定為現場版本的發布。雖然CMMI保留了基于活動的方法,它的確集成了軟件產業內很多現代的最好的實踐,因此它很大程度上淡化了和瀑布思想的聯系。
分析CMMI和迭代開發之間有什么聯系,方法之一就是看每個模型的KPA是否為這種開發方法激發了合理的軟件管理原理。CMMI和迭代思想聯系得很緊密,所以說CMMI并沒有過時。
4.CMMI與敏捷開發的關系?
最近幾年來,CMMI已經成為一項主流開發技術。很多成功的企業都在使用這個技術。
那么CMMI與敏捷之間存在怎么樣的關系呢?分析如下:
使用敏捷式方法要求IT和業務方面的參與者緊密溝通,更快的交付業務需求從而更快的獲取效益。降低改變的成本、提高系統的靈活性,以及降低投資的風險。敏捷式開發能在質量上有很大的提高。大概在60年代的時候,軟件開發是沒有計劃性的,基本是寫出來,誰也不知道什么時候能交付,但也就是在那個時候,軟件工程學的概念在美國召開的一次會議上頭一次被提出來,傳統工程學通常是把項目分成三步或者四步,先把需求確立起來,進行設計構建。應用到軟件里是開始先由分析人員對需求進行分析,然后設計,架構師把整體的東西設計出來,再確定下來交給編程的團隊,編程的團隊按照需求規約,把東西給做出來,所有的這些東西都是由不同的人在不同的時間完成的。
這種模式的優點是:開發計劃性非常強,因為你知道什么人在什么時候做什么事情。但也存在一些缺點,這些缺點主要由軟件開發和傳統的建筑工程學的不同引起。客戶需求的不斷變化,特別是商業 軟件,跟隨市場的變化,客戶需求也在不斷變化。客戶本身在腦子里并不是很清楚自身需要什么,在它看到了產品后,在使用的過程中,他對自己想要的東西才有了一些更加確定的想法,知道了怎樣的東西才是自己所需要的。但在這個階段的需求變化使得項目步履維艱、使得成本大幅度增加。所以工程學里一個核心的概念,變化是最可怕的一件事情,從設計角度也好、分析的角度也好,不管怎么,不要變化,這樣就使成本增加。
敏捷式開發最核心的東西是它不排斥變化,對變化采取的是適應性的態度。敏捷式的開發針對一小部分進行設計測試,對每一個循環時間非常短,軟件從小到大,從很小的一點到不斷的增加擴大,而且增長的過程中是對軟件不斷修改的過程。
敏捷開發還有一個很大的特點就是它是以人為本,而不是以方法為本的。我們的軟件開發是腦力勞動,而不是簡單的工作。如果你設計出一套方法來,不管什么方法,讓每個人去適應的方法,最后開發效應反而不如你組建一個具有進取心的團隊,這個團隊通常情況下是先選擇一種方法,細節也一樣,在開發過程中,不斷對方法反思,直到達到這個團隊的最高開發效應為止。
如果說,要真正趕上最新一輪的創新浪潮有幾個重要的標志,一個是要趕上最新的CMMI的轉向敏捷開發,從體系架構角度講,除了一些先進的架構理念,還有一些架構模式等等,還有開源代碼的應用,不僅僅是操作系統,包括數據庫、應用服務器、各種開發工具等有很多的開源工具。
四.總結
本文對CMMI進行了概述,并分析了實施CMMI給我們帶來的好處,以及筆者對CMMI的一些思考。
posted on 2007-08-30 13:38
阿蜜果 閱讀(3393)
評論(2) 編輯 收藏 所屬分類:
項目管理 、
CMMI