如何學習CMMI®
編輯日期 2017-01-18 閱讀次數(shù):1167 次
任甲林
很多朋友問我關于CMMI® 模型中的問題,卻很少有朋友問我如何學習CMMI® ,這便是魚與漁的問題。就事論事,學會一個的知識點,不如去掌握方法,可以解決很多的問題,學習到無限的知識。那么,究竟如何學習CMMI® 呢?我的體會如下:
(1) 通讀模型
模型是眾多的專家總結的經(jīng)驗教訓,歷時多年,討論了N遍才寫成的,模型里包含的信息量很大,描述的很完備,需要全面的通讀模型。比如,有朋友問我,開發(fā)工具是否要識別為配置項?其實這個問題在模型里有明確的答案,只要去讀CM SP1.1的描述就可以了,模型的原文如下:
Configuration identification is the selection, creation, and specification of the following:
? Products that are delivered to the customer
? Designated internal work products
? Acquired products
? Tools and other capital assets of the project's work environment
? Other items that are used in creating and describing these work products
再比如對于CM sp1.2 建立配置管理系統(tǒng),有的企業(yè)在填寫PIIDS表時就僅把實際應用的配置管理工具視為了直接證據(jù),其實仔細去讀模型的原文(A
configuration management system includes the storage media, the
procedures, and the tools for accessing the configuration
system)就會發(fā)現(xiàn):存儲的介質、規(guī)程與工具三者結合起來構成了配置管理系統(tǒng),因此物理的配置項、配置管理工具及配置管理規(guī)程都是該實踐的直接證據(jù)。
要注意應盡可能的去讀模型原文,盡管有繁體中文的模型可以下載,也有其他簡體中文的CMMI方面的書籍可以閱讀,但是翻譯后的資料與原文還是有些差異,可能丟掉了原文里的很多含義,甚至有翻譯錯誤的內容。
(2) 咀嚼模型
模型不但描述的完備,而且簡練,很多思想蘊含在平淡的敘述之中,因此需要仔細體會模型里的每句話。如對DAR SG1:評價候選方案,對于該目標的概述,模型的原文如下:
Issues requiring a formal evaluation process may be identified at any
time. The objective should be to identify issues as early as possible to
maximize the time available to resolve them.
仔細體會這段話,傳達了這樣幾個含義:
? 在任何時候可以采用DAR,比如項目的初期、中期、后期。項目的初期會有哪些決策呢?開發(fā)方法的選擇、技術路線的選擇、開發(fā)工具的選擇、需求的裁剪,供應商的選擇等等;中期呢?后期呢?
? 應該盡可能早的識別出需要執(zhí)行DAR的問題,以留出足夠的時間解決問題。在項目進展的早期應該盡可能多的識別出需要執(zhí)行DAR的問題,這樣能夠考慮的更加完備。
再比如:
對于PP SP1.1估計項目的范圍。模型中該實踐的正文為:Establish a top-level work breakdown structure (WBS) to estimate the scope of the project.
top-level是第幾層呢?仔細讀該實踐的第2條子實踐:
Identify the work packages in sufficient detail to specify estimates of project tasks, responsibilities, and schedule.
據(jù)此可以推理出:這里所說的top-level的WBS就是分解到工作包級,基于工作包去做估計、分配責任及安排進度。如果僅僅從字面的含義認為top-level就是第1層的WBS分解,那就是笑話了。第1層只有1個節(jié)點,沒有實質性的意義。
(3) 參考其他模型
CMMI是融合SW-CMM® 、SE-CMM® 、IPD-CMM® 等幾個模型而來,為了保證能夠適合于多種學科,在術語上往往比較抽象,因此當對于某些實踐無法讀懂時,就要相應地去參考其他模型。比如,對于PI
SP1.1
確定集成順序,對于軟件系統(tǒng)的集成,當系統(tǒng)的規(guī)模不大時,其實開發(fā)順序在很大程度上決定了集成順序。為了加深理解該實踐,在實際執(zhí)行過程中很好的裁剪該實踐,可以參考SE-CMM® 的BP05.08等實踐,在SE-CMM® 的BP05.08中有如下的描述:
The larger or more complex the system or the more delicate its elements,
the more critical the proper sequence becomes, as small changes can
cause large impacts on project results.
The optimal sequence of assembly is built from the bottom up as
components become subelements, elements, and subsystems, each of which
must be checked prior to fitting into the next higher assembly. The
sequence will encompass any effort needed to establish and equip the
assembly facilities (e.g., raised floor, hoists, jigs, test equipment,
I/O, and power connections). Once established, the sequence must be
periodically reviewed to ensure that variations in production and
delivery schedules have not had an adverse impact on the sequence or
compromised the factors on which earlier decisions were made.
在閱讀CMMI時可以參考的資料包括:SW-CMM、SE-CMM、IPD-CMM、PMBOK、ISO15504、TSP、PSP等。
(4) 映射到本企業(yè)的實際
CMMI模型既適合于軟件開發(fā)企業(yè),也適合于硬件生產(chǎn)企業(yè),既適合于軟件產(chǎn)品的開發(fā),也適合于外包類的軟件企業(yè),不同類型的企業(yè)對于模型的每條實踐解釋是不同的。需要結合企業(yè)自己的實際情況進行解釋模型。
CMMI® 模型是基于實踐提出的,不是理論推導出來的。模型里的實踐或多或少的都可以在本企業(yè)的實踐中找到映射。“做沒做”,“做的好不好”是在和企業(yè)的實踐進行映射時必須考慮的問題,通過這種映射可以加深對模型的理解。
比如,對于TS
SP1.1開發(fā)候選解決方案與選擇準則,在企業(yè)里候選方案的開發(fā)與選擇可能發(fā)生于投標階段、立項階段、設計階段,企業(yè)的這些不同階段的實踐都可以映射過來,在投標時或立項時可能是涉及對總體方案的選擇,在設計階段是涉及對具體某個產(chǎn)品構件的解決方案的選擇,當然,有時在前期階段也可能需要選擇不同的解決方案。通過與企業(yè)的實踐進行映射就可以發(fā)現(xiàn),這里提到的解決方案實際上是泛泛而言,并非僅僅針對總體技術路線的選擇,某個具體的構件的解決方案的選擇也適合。
判斷“做沒做”僅僅是最基本的映射,判斷“好不好”才是更高層次的映射。在CMMI® 模型里,只要達成了模型里每個PA的目標的實踐都被認可,模型里的實踐是可以替換的。
(5) 與多個人討論模型
一個人的視角是有局限的,通過與其他人的溝通,可以從不同的人員那里獲得不同的信息,從而對實踐可以理解的更加全面與深入。即使別人的觀點未必是正確的,也可以在討論中受到啟發(fā),也可能激發(fā)你自己的更多的想法。組織應該建立定期討論的制度,通過一種制度化的溝通來確保大家關注過程改進工作,真正地投入時間去考慮如何改進。在我咨詢的一個客戶中,有一個項目組每周都定期抽出一定的時間大家一起來研讀模型,這種溝通與討論對理解模型、識別組織的優(yōu)勢與劣勢很有幫助。不要僅僅限于與組織內部的同事進行討論,與其他組織的同行進行溝通幫助可能更大。
學習CMMI® 還有其他方法,但筆者認為上述的5種方法是最有效的,特此推薦給大家。