天天看點

在小組織裡實作和保持CMMI的5級成熟度

趙星漢 譯

前幾天和叢斌老師簡單讨論了下小組織裡貫徹執行高成熟度CMMI的可行性,叢斌老師發了這篇文章給我參考。我覺得挺好的,就翻譯了一下,以供國内相關學者老師參考。

研究人員和從業者都進行了多年的過程改進研究。由CMMI研究室提供的CMMI模型,它由許多指引産品和服務的改進活動組成。CMMI并沒有告訴你如何将其應用到你的工程和服務中,但是它規定了通用和專用的實踐需求。CMMI評定的成熟度等級範圍從2到5,其中5表示一個組織被認為是“優化的” 因為它具有高度成熟的實踐,可以利用其複雜性定量技術的測量策劃并有效實施組織過程改進。成熟度高的組織培養一個組織範圍内的環境持續的,可測量的,過程改進和高性能。

在一個小組織裡(小于50人)實作CMMI高成熟度比在中型和大型組織裡難得多。最主要的原因是小組織裡很少有經驗報告。這就是說大多數的小組織并沒有應用CMMI是因為他們覺得太難了。但是,當管理層認識到高成熟度的好處,那麼高成熟的需求就會增長,哪怕他們還不到50人(http://fremle.talkingvillage.com/resource.x/1585)。

根據現在CMMI實驗室資料庫資訊,全世界範圍内大概有5500家組織實行了CMMI,但隻有344家達到了5級(趙星漢同學:他看的似乎是2013年3月的報告_),其中78家在美國,隻有不足%3是小規模組織(趙:那不就是兩家麼),而且這78家裡超過半數都是軍方的。本文描述了一個叫做Keymind組織,它是Luminpoint公司的一個部門,做CMMI的曆程,總時間曆時8年,其中1年用于維持成熟度5級。Keymind提供了軟體開發,市場政策,以及針對商業和政府客戶的以使用者為中心的服務。

我們的曆程

在開始階段,我們堅信它是有價值的。但是就和很多組織一樣,我們也非常擔心,CMMI是否适合小組織。但是,不考慮潛在的困難,我們認為沒有标準是完美的。更何況CMMI的成熟度是某些特定的客戶的工程所要求的。而且即使不考慮顧客的要求,我們也相信如果正确了解CMMI,在過程中使用它将是對我們有益的。達到一個成熟度,不論是什麼級别,都需要時間和資源的投入,這些都需要回報。達到一個高成熟度需要更多的投資。是以,我們定義了明确和可量化的業務目标,如利潤的增長,通過提供更高的産品品質和能力以獲得更多的顧客數量,及時傳遞以及有競争力的支出,同時也改進組織的整體穩定性。

在小組織裡實作和保持CMMI的5級成熟度

圖 1 可觀的回報。這些年我們公司各員工的人均利潤趨勢、每次釋出的需求數量、每項需求的缺陷數量都顯示了巨大的收益。我們有意将Y軸歸一化以隐藏敏感資料

圖1顯示了我們的CMMI投資獲得了可觀的回報。藍色的線表示了員工的人均利潤,它在10年裡翻了一倍多;其中高成熟度的時間(3級以上)的收益最好。圖中也呈現了我們的工程的規模和品質在這些年的提升。紫色的線是我們這些年的釋出數量,用每次釋出的需求數量來衡量,顯示了我們是如何高效的在每次釋出中配置設定更多的需求。此外,綠色的線表示平均到每個需求的BUG數量,在5年内也有明顯的下降。因為我們每次都能傳遞給客戶更多的功能,同時BUG更少,進而我們的員工個人所得更高。

我們用需求的數量來表示規模和複雜度,而不是LOC,是因為在我們的環境中後者的度量不太可靠。“每個需求的錯誤數量”和“每個釋出的需求數量”的時間範圍都有限,這就意味着,我們無法呈現可靠的2008年之前的趨勢。我們在3級之前的資料是不可靠的,一個觀點就是我們引入了一個重要但是被忽視的悖論:3級之前顯示量化改進是困難的,因為整個組織的資料收集既不可靠也不夠充足,無法支援統計分析。

如何開始

了解做什麼去執行CMMI,我們從尋找經驗報告開始。但不幸的是,在那時沒有多少合适的案例(2004年左右),于是我們開始和本地的CMMI和過程改進專家一起進行溝通和工作。我們的主要目标是建立一系列既适合我們的組織同時又符合CMMI要求的實踐。最初的實踐包括項目估計,計劃,以及可以應用到組織各項工程的配置管理。在達到第二級,以及後邊到了第三級,我們開始關注生産率效益,并在這個時候,組織中的員工開始對我們主動流程改進所吸引。當得知我們必須每三年重新評估一次以維持我們的ML 3等級時,我們認為隻有進一步使用CMMI進行改進并針對ML 5才有意義。

為了成功的從三級向更進階别邁進,我們從分析文獻開始,查找其他的組織是如何做到5級的報告。對少數現有研究的分析表明,大多數報告組織都側重于同行評審過程。同行評審非常有用,因為它提供了很多的資料,這些資料能讓後續高成熟度中的量化分析容易一些。但是,他們緻力于缺陷的數量和類型,這些是安全關鍵領域中非常重要的參數,但是并不适用于我們。我們開始集中于技術過程,例如我們技術架構對标準的符合,以及生産中的缺陷數量,這是非常好的切入點,因為我們已經有多個工程中的可用的資料。是以,我們意識到單獨應用5級的實踐到同行評審并不一定适合我們,因為它不能提供給我們的項目經理有用的決策資訊。相反,配置管理和問題追蹤工具中大量的有價值的資料對分析和處理4級和5級的關鍵過程更加有用。是以,我們的方法是充分利用這些工具。

有用的經驗

一些因素幫助我們成功達到5級。

内部的專用資源

在一個組織裡建立和施行CMMI的最佳實踐是需要努力和時間的,這通常與上市時間和工程截止日期是沖突的。進一步說,一個小組織中,同一個資源往往有多種用途,于是針對計費時間和流程改進的需求就變得更加困難,因為資源有限,疊代很短。緻力于實作CMMI目标的内部資源和項目的現狀,促使我們與組織的其他成員進行了有效的溝通,該做什麼,如何以及何時進行。鑒于我們在小型組織中應用基于CMMI的過程改進活動的經驗,我們認為沒有内部專用資源,幾乎不可能實作比ML 2還多的目标。

主管上司的堅持

該組織的主要上司者從一開始就深信使用CMMI作為我們組織實踐的架構的重要性。在獲得3級評價之後,擷取5級成為我們上司的座右銘以及全體員工的願景。幸運的是,我們的主管上司在這期間并沒有改變想法,但是我們可以想象,如果他們并不完全認同我們的過程改進目标和路線的話,我們會面臨多少困難。

換油文化(原文直譯就是這個,這是啥意思)

該組織展示了一些關鍵特征,這些特征可以促進過程改進的識别,定義和推廣,是以變更發生的相對容易。這些特征包括共同的願景、公開、靈活和創新。人員之間固有的開放性和溝通便利性遍及企業的各個層面,并可以快速确定最佳實踐。上司力很好的确立了目标,激發了激情,并為每一次CMMI曆程中的裡程碑的勝利進行慶祝。

嚴選首席評估師

CMMI需要一個首席評估師,采用現有的評估方法(SCAMPI A類)來确定組織的成熟度等級。一般而言,CMMI要求人為解釋,并就組織背景下如何解釋和定制CMMI實踐進行主觀評價。是以,從組織願景來講,一個首席評估師是否與組織的CMMI解釋保持一緻是很難預測的。CMMI研究室允許組織挑選其首席評估師。在我們的經曆中,我們開發和應用了嚴格的訪談方法來選擇首席評估師。此外,我們利用CMMI一個3級過程域——決策分析與解決方案(DAR),其中的專用實踐來用于更加嚴格的制定和記錄重要的決策。同樣的,在選擇首席評估師時,我們也應用了DAR,并記錄下我們的結果。有意思的是,這些資訊甚至在評價時作為CMMI的DAR實踐的證據也是有用的。

外援

在一個小組織中,負責過程改進的管理人員通常隻有一個人甚至是兼職的。很明顯,一個人具有完成一個大變革的所有技能這是很少見的,例如達到5級需要過程改進,管理變更,定量測量技術,統計分析,評價和工具支援,一個人很難具備所有的技能。在我們的經驗中,我們發現必須依靠可靠的外援來提供資源的組合,補充我們組織中可用的,囊括完全支援我們的流程改進政策并擁有相同理想和價值觀的人員。

小疊代

CMMI依賴過程和産品的資料分析。為了有意義并提供可靠的訓示,資料分析需要一定數量的觀察值或資料點。平均而言,持續進行大約三個月的疊代有助于我們在相當短的時間内建立具有足夠資料點的知識庫。我們認為,具有長疊代的項目将意味着等待更長的時間(以獲得足夠的資料點)進行定量分析。

我們學到了什麼

我們在過程中學到了很多

你不能通過統計分析僞裝你的方式(這是什麼鬼?)

一個成功的CMMI實踐應用,特别是具備5級特征的,需要很深的CMMI模型和統計學的知識,例如p值,置信區間等。為了盡快從外部合作夥伴過渡到組織的參與者,必須盡早掌握這些知識。

你需要研讨,來教育訓練、收集證據,以及過程宣貫

學習新的或變更的實踐是必要的。但是,真正重要的是證明這些實踐在項目或組織中的應用,從CMMI評估的角度來看,這是通過建立證據來證明的。我們總是相信對所有員工教育訓練的重要性和價值,但是教育訓練有時候和項目的截止日期相沖突。利用研讨的方法,讓我們從另一個層面達到教育訓練的目的,讓我們的員工從經曆中學習,并在同時,我們可以收集到CMMI實踐被采用的證據。而且,研讨是非常有用的機制,它能確定新流程是被應用的。

我們的研讨會通常安排在午餐時間進行(以消除項目截止日期帶來的任何壓力),包括對實踐和期望的簡短回顧,以及有關如何将其應用于各個項目的示例的讨論。過程改進和品質人員支援這些會議,并跟進項目經理和其他相關人員,以確定将實踐有效地制度化。

讓持續改進成為一件非常重要的事情

改進是一項持續且永不停止的過程。更重要的是,沒有放之四海而皆準的真理。盡管存在最佳實踐,但人們會發生變化,背景,項目和态度也有所不同。我們清楚地了解到,我們的改進方法必須是疊代的:您無法預先知道要測量什麼才能獲得有用的估算值。從所有利益相關者那裡擷取回報,檢查收集的資料和實施實踐有意義是非常重要的,人們需要對自己正在做的事情深信不疑。他們需要切實感受到特定實踐的價值,并能夠發現和報告危險信号,以便始終改進實踐。

必須實行自動化

不論是收集資料還是報告結果,具備一個自動化的機制都是很重要的。最初,我們認為過程改進團隊可以使用工作表來解決與高成熟度測量相關的實踐工作。很快,我們發現對于我們而言,從現有工具(尤其是問題跟蹤和配置管理工具)提取資料并進行資料可視化和自動化分析會更加快速,低成本和友善,而且更加可靠。實際上,快速建立不同的報告視圖有助于在項目群組織度量會議上進行讨論,并清晰的呈現出可改進的方面。

在單次會議中實行量化管理

最初,我們在整個項目生命周期中随意地進行了測量事件。随着時間的流逝,我們意識到在整個周期中将重要的度量活動分解為單個會議非常重要。這些會議包括與流程改進測量專家合作的必要項目人員,用來設定項目目标或對照目标審查進度,根據我們的預測模型量身定做決策的項目流程,并應用通過組織基準績效和經驗。

這是一個長期的過程

CMMI本地化,應用自定的實踐,在适當的位置進行資料收集,建立資料分析工具來支援決策,以及做更好的決策,這些都是過程中需要實作的步驟。他們需要完成,并被證明采用CMMI以來的真正的改進。在這個過程中,若幹年也就過去了,過長的時間會讓動力直線下降。

現在,我們已經5級,我們緻力于流程改進計劃,這些計劃主要是擴大對資料有利的項目的比例。現在,每個人都看到了收集資料的價值,以及如何使用它來推動明智的決策,并有效地使我們能夠監視項目。是以,我們試圖應用CMMI最佳實踐到每一個項目和每一個人。考慮到我們工作的項目類型,我們還需要對資料進一步分層。例如,我們發現,使用COTS軟體解決方案建構的項目具有與完全從頭建構軟體的項目不同的性能基線。

我們仍在努力收集更高品質的名額。我們已經收集了錯誤資訊,并根據錯誤類型對每個錯誤進行了分類。但是,我們覺得分類結構有點主觀,部分定義模糊和重疊,不同的人對相同的BUG會有不同的分類。是以,我們開始花費時間和精力來研讨可能的改進,定義一個新的BUG分類結構,之後為了驗證,超過90%的開發人員每人分類10個缺陷來驗證它。我們随後應用确認的回報來進一步優化新的分類機制。如果用時間和精力來衡量這項活動,但是我們覺得這是值得的,因為缺陷的資訊對于了解我們的過程和改進預測模型是非常重要的。具備了持續的流程改進的習慣後,我們希望能夠證明缺陷重新分類投資的定量回報。

最後,雖然資料分析十分有用(見以上觀點),它也是十分危險的,如果缺乏嚴謹和科學的基礎,它可能會導緻你得到錯誤的結論。消除或至少減少資料解釋中可能出現的錯誤對于確定不會做出錯誤的決定或至少是提升信心很重要。例如,我們現在已經大大重構了我們的測量工具,以更好地預測生産中的缺陷。過去,系統會預測缺陷的範圍(低:0至2,中:3至5,高:6或更高)。開始階段對缺陷進行分組很有價值,尤其是作為獲得信心并檢視缺陷預測活動的價值的起點。但是,我們後來意識到,低,中和高的概念是主觀的,并且在項目之間可能會有所不同。是以,我們修改了預測變量的測量範圍,從順序範圍(低,中或高)到實際範圍(即缺陷數)。

我們的“争取到5級”的計劃是成功的。我們在這段經曆中學到經驗使我們保持在最前沿并幫助我們在每一級别定量的檢查和改進我們的實施效能。即使這段經曆的時間很長,并且需要巨大的投入,但是我們也從适合我們業務的方式的CMMI模型和每一個涉衆的決策支援中擷取了巨大的收益,範圍涵蓋了我們的員工和顧客。現在,我們緻力于以更開放的心态,繼續我們的CMMI量化改進道路。

繼續閱讀