論壇文章
跟CMMI,我們是玩真的! 叡揚CMMI元年開跑
前往目錄

緣起

時序要拉回到2005年8月,記得在答應執行長Perry承接叡揚資訊全公司導入CMMI的任務後,一切就好像劉姥姥進了大觀園一樣,一大堆關於CMMI的定義、要求、縮寫、幻想、謬誤,甚至是傳說等各種不同的觀點,在短時間內大量湧入,迷失在一些細節中,搞的我一個頭兩個大。一樣是CMMI,這篇文章說它好,另一篇文章卻提出它有問題的地方,有時候甚至談的是相同的觀點。相信大家都聽過「瞎子摸象」的故事,不同的人用不同的觀點來描述他所感受到的大象,但是,大象終究還是大象。要瞭解大象的最好方法就是直接去看大象、用手觸摸大象,同樣的道理,要瞭解CMMI的最好方法就是公司直接導入CMMI吧!而我很幸運的剛好有這樣的機會參與叡揚資訊CMMI的導入過程。現在就利用這個機會來藉機回顧整理叡揚導入CMMI的過程,以及對於未來的展望。

CMMI跟專案的關係

在軟體開發方法中,有各種不同的學派、方法、觀點。有從程序角度出發的、有從架構角度點切入的、有從技術角度出發、也有人提倡從管理的角度著手,這些不同的觀點難免會在討論問題的解決方法時容易有各執己見的情況,甚至可能會因偏重某一觀點而忽略了其他也同樣重要的內容。但是,CMMI很巧妙的避開了這些爭議,它不訂「程序」、不評論「方法」、也不評論任何一種「技術」的優劣,反之,它是從「特徵」的角度來思考。CMMI認為,如果有一種作法是有效的,那麼這些方法是否會有哪些共同的特徵呢?俄國大文豪托爾斯泰在「安娜-卡列尼娜」中提到「幸福的家庭都是相似的,不幸的家庭卻有他們各自的不幸」。將大文豪的名言套用在軟體開發上,也有異曲同工之妙。以軟體專案的角度來看,我們可以這樣說,「成功的專案都是相似的,失敗的專案卻有他們各自的不幸」。

CMMI研究了在軟體開發中各種不同的理論、方法,並將這些大家所認同的方法中所謂好的「特徵」整理成不同的「流程領域」與其「需要達到的目標」。至於這些「流程領域的目標」該怎麼去實現呢?各個組織可以視其實際需要,用各種不同的方式來達到。雖然這樣的做法可以很巧妙的避開各種爭議,然而,卻也因留下相當大的彈性與太多的空間,反而讓不同的組織必須要仔細思考與選擇適合自己的方法。

閉關修練  制定相關流程

對於一家想要藉由CMMI來改善自己的軟體公司來說,CMMI就像是一部憲法,但是對於提供實際執行各種與生活相關的法律卻付之闕如。組織必須依照自己的特性討論出適合自己實際執行的方法,而這個部分其實才是最艱難的部份。

叡揚在導入初期時,首先須要制定及釐清相關流程,於是我們找了各部門第一線最資深的同仁共同來參與討論,甚至為了讓同仁能靜下心來討論與制訂流程,我們還把數十名同仁關到北投的山上珍鰣袙mA才讓各個流程的程序與表單內容順利產出。接著與高階主管進行多次的Review,再根據Review的結果不斷修正程序與表單的內容,務求定義出來的程序與表單內容不僅是符合CMMI的要求而已,也必須適合我們公司的文化、環境、人員,同時也藉此獲得高階主管的認同與支持。

準備通過評鑑的過程,不能只是「按表操課」而已

好不容易將程序與表單制訂出來了,內容也都經過大家的認同與Review了,心想最辛苦的過程應該已經過了吧?!接下來同仁只須「按表操課」照做就可以準備迎接通過評鑑的那一刻了。其實不然,真正的挑戰才要開始,這種情形就好比看完游泳教學手冊,瞭解各種游泳的方法與技巧,也在游泳池旁練習了半天,但還是缺乏實際下水游泳的經驗,要知道看完游泳手冊與會游泳是兩碼子事。導入CMMI流程改善的過程就像是要一群旱鴨子學會游泳一樣,只是難度提高許多,而軟體開發的過程又遠比學會游泳這件事情的困難度更高,於是乎,在開始Rollout的初期我們才發現,原來要將程序與表單內容真正落實在現實環境中,竟是困難重重。

打從一開始叡揚在導入CMMI的定位就是我們是玩真的!不是只求通過評鑑,而是要以全公司所有軟體開發及維護的部門為範圍。於是,我們又撐過一段跌跌撞撞的日子,比如開始有同仁會反應先前制定出來的程序與表單不見得都適合套用在各個專案,有時同仁提出的意見的確也讓CMMI小組陷入兩難的處境,但畢竟專案有專案的限制,CMMI也有CMMI的要求,如何同時滿足兩者的需求,又能對專案帶來好處,是這段期間最辛苦的地方。然而,也因為有這樣的過程與經驗,讓整個程序的要求不再只是SOP而已,而是真正的活用在叡揚的文化中,並且到後來還能隨著環境的改變而彈性的調整成適合自己的模式。

Keep It Simple and Stupid

除了在流程與軟體工程相關的工作獲得改善外,我們也在導入的後期開始尋求其他軟體工具的輔助來進行流程的改善,這包括早已在公司內部使用的自行代理的相關工具及國內外合適的工具,我們試圖在流程執行的導入最困難的時候使用最適合的工具來減輕負擔。與其他公司導入CMMI所持觀點最大不同的地方在於,叡揚在一開始就不認為工具是CMMI導入的萬靈丹,就好比一個人擁有一雙好的蛙鞋,但並不代表這人一定會游泳。軟體開發有其一定的創造性,工具確實能夠簡化與提高開發過程的有效性,卻無法取代同仁的創造力;流程工具的確能帶來一部份的便利,卻也帶來某種程度上的限制。相信大家一定會認同一個觀點,兩家使用相同工具的公司並不代表會擁有一樣的品質與能力。對於工具,我們抱持的態度是在不同的時機點,不同的成熟度時,選擇不同的合適工具,並儘可能的保持像英語說的「KISS, Keep It Simple and Stupid」。

通過評鑑不是意外,考驗才正開始

經過20個月同仁們的努力、參與及投入,以及各部門主管的支持與在關鍵時刻提供最大的協助,我們終於在今年3月17日全公司通過了CMMI ML3 V1.2的評鑑,這同時也是國內第一家率先採用CMMI for DEV ver 1.2 Model通過評鑑的公司,其中評鑑的專案數佔所有專案的88%,專業人員的涵蓋度為74%,涵蓋規模之大在國內首屈一指。

距離公司成立的1987年,剛好是20年整,有同仁戲稱這是叡揚的CMMI元年,不過筆者卻深刻的瞭解到,這成果其實是公司累積了20年的經驗與成熟度,才能讓我們順利的通過評鑑的關鍵。通過評鑑不是意外,通過評鑑後才是真正考驗的開始,如何讓CMMI不只是一堆的要求或程序,而是能真正為同仁與客戶帶來更好的生活才是我們永遠努力的方向。