CMMI入門 – 通用實踐的實施GP 2.1-GP 2.5

上文《CMMI入門通用實踐簡介》討論了CMMI通用實踐的意義與對過程有效性的重要性。我建議在討論通用實踐實施之前,先從那裡瞭解好實施通用實踐的目標。在這裡讓我們討論一下如何在CMMI的通用實踐方面,滿足SCAMPI 評估。也對比一下這些通用實踐如何能夠幫助我們提高效率。

CMMI的第一級通用目標只有一個實踐,就是完成任務而已。這裡沒有什麼過程管理的概念。只要有能力,把任務完成交差就可以了,沒有其他的過程質量的要求。大家可以用任何方法步驟,把接收到的輸入,轉變為所需的輸出就可以了。

請留意,CMMI在通用目標與實踐中使用的詞是“process”,翻譯成“任務”不很正確。我在這個檔案裡使用這個“任務”的翻譯,目的在於更容易明白。希望不會產生太多的誤解。

第二級的通用目標,就是“受管理的”。不要太關心“受管理”是否真的被高效管理。這只是一個CMMI的詞。“受管理”在CMMI裡,只是說滿足第二級的全部通用實踐而已。以下就是10個第二級的通用實踐:

GP2.1 建立組織政策

經常有人問我:“什麼是政策?”。用一個最簡單的案例,就是買東西之後要退貨。商家就會有一個退貨政策:“凡是沒有破壞包裝,顧客可以在一個月之內憑發票到客戶服務部辦理退貨手續”。所以一個政策就是一種情況與條件,作為一個操作的準則。政策通常說明在什麼情況底下需要做什麼,不能做什麼,而一般不包括操作的細節。

政策是高層領導指定的。是代表高層對員工操作的期待。

如果要滿足評估的要求,我們可以在每一個規程定義之前,說明“組織要求在這個那個情況下,按以下規程執行這個任務”。這就可以滿足SCAMPI 的通用實踐要求了。

比如:“版本釋出之前與進展有此需要的時候,需要進行配置稽核,以保證產品配置的一致性與完整性。”

比如:“每一個專案的活動都需要與需求保持一致,以保證產品能夠滿足客戶。”

一個政策的作用,就是提供一個準則,讓組織裡不同的單位,在同樣的情況底下,都會做類似的事情。雖然在第二級的時候,每一個專案都可以用自己的方法操作,但每一個專案在相同的情況,都需要作同類的工作。比如上面的第二個案例,需求管理。每一個專案都需要明確需求,承諾實現需求,但每一個專案都可以用不同的方法:有些用不同的工具,也可以自己開發工具,甚至用人工紀錄。但是每一個專案都需要明確需求,把需求的變更處理好,並且實現需求。

很多時候我們把政策與規程都混在一起。這個不很專業,但只要我們清楚哪些是政策,並且記錄在檔案裡了,就可以滿足GP2.1的評估要求了。

談完了過級的要求,談一下有效性的考慮。如果一個政策要有效,就需要有下面的現象:

  • 員工都知道並明白政策的內容
  • 違反政策的行為是不容許的
  • 政策按需要進行修改

推求效率與質量的組織,就會關注如何保證以上的效果。那麼,他們的領導都會關注政策的實施,員工也得到適當的培訓,並且不遵從政策的都會得到應得的後果。

評估政策的實施是否有效,就只要訪談幾位員工,看他們對政策的理解是否一致,察看違反政策有什麼後果,也可以訪談一下領導,看他如何處理違反政策的行為,等等,就可以了。

GP2.2 策劃任務

通過評估的要求就是任何任務都有計劃的記錄。很多工,如配置、QA、度量、風險、等等,在它們相關的特殊實踐之中,本來就有要求計劃的,滿足了它們的特殊實踐要求,就自然滿足了通用實踐要求。其他特殊實踐沒有計劃要求的任務,它們計劃的文件要求,從通用實踐的角度看,不是很嚴格。只要一些拿得出來的東西就可以了,比如其他的計劃裡有提到、其他檔案裡、自己的筆記、電郵、會議記錄、等等有記錄就可以了。

除了記錄之外,通用實踐對計劃還有三個要求:實現方法的步驟、相關人員的承諾、被使用的痕跡。承諾可以通過人員參與評審來證明。計劃受到修改就是使用的證明。

從計劃能夠發生有效的應用來考慮,可以把計劃看成為一個成功的藍圖,那就需要:

  • 計劃是需要有依據的:

任務需要完成的產品與目標、以至任務的工作範圍都明確並且有依據

  • 計劃能夠提供資源的預算:

任務的估算是合理的,所以資源的要求是合理的,主要是不過分的
干係人都識別了,人員的參與、許可權與職責都明確

  • 計劃能夠指導執行:

提供明確清楚、沒有衝突的任務的執行提示
任務的執行的確是按計劃開展的

  • 計劃有一定的預測能力

主要的風險都考慮清楚,並且有緩解與應對的方案

  • 計劃的投入有合理的回報

用於計劃的時間與工作量是與任務的規模與複雜相關的。就是說,簡單任務的計劃也應該是簡單的。複雜的任務,計劃就需要詳細一點。
計劃的內容覆蓋重點而不是過分的限制,內容與任務的規模是匹配的

很多問題都與干係人與風險有關。在評估的訪談過程中,很多人不能順利回答這方面的問題。其實幹系人就是專案成員、客戶、供應商、以及組織內部的上下游人員。凡是可以影響專案,或是受專案影響的人都是專案的干係人。重點不是把干係人羅列到一個表格裡,而是要考慮干係人如何參與專案的工作,專案如何滿足與/或配合干係人的需要。比如:產品的安裝人員就是一個專案的干係人。那麼,專案的配置管理工作有沒有考慮到他們呢?考慮干係人,與其他任何通用實踐的考慮一樣,都是希望提高過程質量與產品質量,不是製造更多的文件,或是設定更多的限制。

風險呢,就是專案裡每一個任務是否有信心按計劃完成任務。專案經理都會處理這些問題的。高效的專案管理就會預先考慮這些問題,做好處理與應對。這才是策劃的本意。

有效計劃的關鍵,在於做計劃的本意就是在於能預知任務的成功關鍵與機會。當我們經過這樣考慮,在評估的應對方面就會得心應手,否則就會表現得生硬。

QA需要有兩個層次的計劃:一個是為專案進行質量保證活動的計劃。內容包括決定QA稽核哪些物件最能保證專案的過程質量與產品質量。一個是每一個稽核活動的策劃,包括稽核的實施細節。

EPG有很多型別的活動都需要計劃。比如一個小改進的活動,他的計劃內容就需要包括基線原有的過程效能、制定新規程、培訓與輔導、監控、分析新規程的效能、等等。內容也應該包括如何進行規程效能的分析、比較等等的方法。

要強調的,EPG的職責並不限於制定新規程。EPG的使命是提升企業的過程效能。這樣,EPG就需要監控企業的規程效能。這些活動,也需要計劃,來明確實施的負責人、時間段、統計分析方法、判斷的準則、等等。單單制定規程不可能是高效的過程管理。

GP2.3 提供資源

資源包括資金、裝置、時間與有恰當技能的人員。我們經常投訴時間不夠。如果我們大部分的專案都可以基本按時完成,那麼,情況就不能說是時間不夠。我們的任務基本上都有足夠、哪怕是不很充裕、的時間。

要通過評估,這個基本上就是一個證明:一般任務都能基本按時完成。

這個通用實踐影響過程效能的方面,最主要的,就是員工的技能。因為一般企業的管理都重視技術,所以員工的技術技能不足的時候,領導是看得見的,所以技術技能也不是一個問題。真正的問題,在於管理方面的技能,尤其是過程管理的。這方面的技能,需要包括對效率與質量的追求與對過程效能的理解:什麼樣的操作有什麼後果,用什麼樣的度量指標來分析、判斷操作的狀態等。這些都是經驗的積累。所以通常EPG與QA都需要是經驗豐富的人員。這樣才能得到專案員工的尊重。這也是EPG人員的技能要求之一。

有一個案例:在稽核之中,發現了一個故障的分類,以我的判斷,是一個非常有效的分類方法,因為那些分類有非常明顯的指導性。就是說,分類是以解決問題的角度制定的。這樣有利於處理這些故障,以及將來預防這些故障發生。但是很多評委就分不清楚這個分類的重要性,並表達很多人都能夠把故障分類。不久之後,就在同一個稽核,就有人顯示其他的分類法:把大部分的缺陷歸類到中等的問題,不疼不癢。這些分類,一看就知道是以各方面的利益為依據,讓員工不特別受考核的衝擊。立意無可厚非,但不是改進之道。如果不能正確判斷操作的後果,就很難找到高效的改進。這個例子也說明拿過程資料考核就會導致歪曲過程的結果。

領導也需要明白什麼是有用的技能,否則得到晉升的人員,往往不是具備這方面技能的人員,這當然是不利於改進。在過程改進的領域裡,領導也需要能夠分辨哪些是有用的技能,企業效能才有機會逐步提高。

G2.4 分配職責與許可權

職責與許可權也是一個很容易認證過級,但非常難做到有效的領域。在第一個版本的時候,CMMI只提到分配職責。後來發現這個容易滿足,但不能有效,因為承擔責任的人,不一定有履行職責的權力,所以改成職責與許可權。這樣就解決了一部分的問題。但在中國,這個問題還有很大的不足。

要過級,幾乎只要在專案裡每一個任務或是部門裡每一個崗位都明確了職責與負責任的人員,評估就可以通過。

但是如果要有效,那麼需要考慮的因素就多得多了。比如:員工在履行這個職責的過程中是否有授權作出所需的決策與判斷?這些許可權,是否恰當?一位QA向專案提供了一些處理不符合的改進建議,他有要求專案整改的權力麼?如果QA得到授權,被賦予這個權力,那麼,專案執行了之後效果不好,是誰的責任?QA的還是專案的?我們可以看到,QA沒有這個權力,專案不進行整改,效果不會好。QA有了這個權力,專案被強制進行整改,效果也可能會不好。所以我們知道,這個QA的權力是不恰當的。要求專案整改的權力,需要存在於能夠承擔執行這個整改的後果的責任。這隻能存在於專案的領導。

另一個我們在這個領域有效運作的困難在於我們對職責、許可權缺乏認識。比如我們說,同級評審會議在於提出問題,最多也只是建議,而不是決定解決方案。我們就不明白為什麼。我們認為,就地處理了問題不是很痛快麼?這是因為解決方案是作者的職責,不是評委的職責。作者對於整個檔案內容有一個理念。評委就不一定有同樣的理念。所以,作者對於一個整改方案,如何影響檔案其他部分不但是有一個比較全面的考慮,也可能需要有一些時間充分考慮,不應該,也不能在會議當場可能妥善處理。作者承擔修改的後果,所以這是作者的決策。

我們可能會問:如果作者能力不好又怎樣?更理直氣壯的是:評委的經驗比較豐富,作者應該聽評委的!

從過程管理的理念來看,這些觀念不是高效的。當然,評委如果比較有經驗,他的意見就很有機會比較好。但是如果真正要確保意見是好的,就要通過比較充分的對比、分析與考慮。這點評委有自己的任務,一般是比較難的。而且檔案質量的好壞,是作者的責任,評委也不會願意承擔這個責任。

如果我們在G2.3提供的員工都具備適當的技能,那麼作者就會有決定適合方案的能力,他就能理解評委的意見,能夠把評委的意見加入到自己的考量裡。這樣就兩全其美:作者承擔檔案的質量責任,然後又能夠利用評委的經驗。當然,這些只能在大家都有一個追求提高產品質量的目標的情況下才能實現。這個共同目標也是過程改進的一個關鍵因素。

最近也有一個經驗:我寫了一個報告,標明的“草案”,不能傳遞,然後發給一位同志查閱,希望他能提點意見。在這個過程中,我發現有些地方我還需要細化一點,表達得細緻一點。當我們交談的時候,他說:都很好,只是報告裡的建議比較不適合。在交談中我同意了把建議刪除,然後就等待著他把檔案發回來讓我修改,我就一併把那些地方也修改好。怎料他自動修改了就直接釋出了。我連我自己的報告最後的版本也沒有看過。我很吃驚這樣的事情發生。雖然大家“認為”對某些意見是一致的,並不代表不是作者的人就有權去修改人家的檔案。這是因為有如上面案例的評委不應該制定方案一樣,會產生混亂。

我經常收到同志發給我得郵件,和我討論問題。大部分的下款都沒有署名。我覺得很不理解。因為一個名字很容易寫,花不了多大的功夫。寫了,人家就知道你是誰,這對交流有幫助。大家可能想著我可以查出來作者是誰。但是為什麼要我去查呢?署名不單是讓人家知道你是誰,也是一個“這個信是我寫的,裡面是我的意見!”的表達。你看,這樣作者是多麼的自信、多麼的為自己的東西承擔責任!寫信不署名就是一種習慣,一種有巨大負面意義但非常容易改的習慣。但是很多同志還是不能改。在無奈之餘,也意識到在國內,職責與許可權的認識與實踐的確是一個問題。

G2.5 培訓人員

這個實踐也是比較容易認證過關。作為通用實踐,這裡只要求按行使任務職責所需的技能培訓就可以了。培訓的形式也不一定要求非常正規。只要有一些紀錄甚至回憶就可以了。

至於培訓的有效性,那就是另一回事。要讓培訓有效,策劃培訓活動的人員需要明確培訓的需求:這個培訓期待提供哪些技能,讓後按這個需求安排培訓活動。在一般的領域技能培訓之外,我們也需要在恰當的情況下進行深入一點的專題培訓或是交流。比如我們當然需要培訓如何進行同級評審。其實在實施了一定時間之後,也會需要進行一些如何主持評審會議、改善洩露率技巧、等等的培訓。

這類情況在各個領域都存在。比如:有效的缺陷分類可以預防缺陷的發生。而且情況與目標不同的時候,分類方法可以不同。專案覆盤或其他情況也要把缺陷分類。如何把缺陷分類好就是一個可以培訓的課程。

培訓完結之後,也需要最低限度短期內觀察培訓的後果,尤其是在工作之中的應用。這不一定要非常精確,也不一定需要定量的,只要有一些可以觀察的指標就可以了。比如配置管理培訓,就可以觀察受訓之後,員工是否因為明確了步驟,導致完成配置任務的效率提高了,等等。

目前業界的培訓理念,對如何評價培訓的效果還沒有一個合理有效的辦法。因為每一種方法都有它的副作用、壞影響。所以在觀察培訓效果的時候,不能對資料過分認真。

上述的GP2.1到GP2.5,通過認證評估的要求,與有效操作的對比,希望大家可以瞭解,這些通用實踐都是對過程較能有很大的影響的。下次再討論其他的通用實踐,敬請留意。