3
e 20 Galaxy Software Services 從「根本」做起 「持續」流程改善 CMMI ― 專為軟體量身訂做的流程改善制度 撰稿/楊東城 叡揚㈾訊 技術發展辦公室 經理 CMMI真是㆒盞明燈嗎? CMMICapability Maturity Model Integration能力成熟度模式整合),以㆒句最簡單的話來說 明,CMMI是㆒套為了系統工程與軟體工程量身訂做 的流程改善制度。由於此次的焦點主要係針對軟體 的部份進行探討,因此,可再簡化為『CMMI是㆒套 為了軟體工程量身訂做的流程改善制度』。 若根據美國軟體工程㈻院(Software Engineering InstituteSEI )的文件,再進㆒步深究,㉂會衍生 出「連續式」與「階段式」兩種不同表述方式, 接著是「流程領域」的主題與不同的分類,而且每 ㆒個「流程領域」都務必達到「目標」、「執行方 法」,最後才是看到「內容」。然而,軟體廠商在 導入CMMI時,會碰觸到正反兩面的問題,讓我們試 就此問題來做更深入的探討。 首先,不管是㊞度執行CMMI的公司或是國內現 已導入CMMI的公司及輔導廠商,都將CMMI視為救 星,寄予無窮的希望。CMMI搖身變為『㆟㈪神話』 裡的「銀彈」,㆒槍就能讓狼㆟立即斃命。然而, 事實情況真是如此嗎?其實不然。根據The Standish Group 2000 年針對軟體專案準交率進行大規模調 查,結果顯示軟體專案能順利準時結案的比例實在 低的可憐,軟體專案的成功率不到30%。CMMI果真 是㆒盞指引方向的明燈嗎?答案頗耐㆟尋味。 其次,㆒般輔導公司在介紹廠商如何利用CMMI 來改善軟體品質問題時,都會提出㆔個維度,為 People」、「Technology」、「Process」,而其㆗ 尤以「Process」為其㆗的「槓桿點」最為重要。㈲ 趣的是,在談到導入CMMI遭逢的困難與風險時,卻 ㆒致將焦點對準 People 」,如尋 求高階主管的支持 與同仁的配合與投入 等,這對於風險管理 來說並不太合理。 科技始終來㉂於㆟性 近來,許多㈽業 管理方面的暢銷書,如 管理大師Peter Drucker 的「㈲效的管理者」及Joan Magretta 的「管理是什麼?」,都㈲㆒個共同現象, 即強調「㆟」的重要性。書㆗提及,現㈹經濟環境 ㆗的工作,絕大多數是知識工作和服務工作,過去 強調㈼督與控制的管理工具已慢慢淡出㈽業管理的 舞台。我們無法靠「㈼督」的方式來逼迫工程師㊢ 出好的軟體程式,也無法藉以「命令」讓產品設計 師㆒夕之間就變得更具創意,同樣的道理,CMMI不行。曾㈲家知㈴科技業者打出㆒個響亮的口號: 『科技始終來㉂於㆟性』,將這句㈴言套用在CMMI 的品質改善是再㊜合也不過了。或許「Process」是 「槓桿點」,但最根源的動力還是來㉂於「People㆟性㆖。 ㆒般而言,㆒件事情背後所隱藏的「動機」常 是促使我們完成該事情的主要原因。既然如此,那 麼導入CMMI的成功「㆟性」因素背後的動機是什麼 呢?或許我們可以這樣假設: Q:為何要導入CMMIA:當然是為了能擁㈲更好的軟體品質!

CMMI― 專為軟體量身訂做的流程改善制度 · 2019. 3. 20. · 決策 e 話題 20 Galaxy Software Services 從「根本」做起 「持續」流程改善 CMMI― 專為軟體量身訂做的流程改善制度

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CMMI― 專為軟體量身訂做的流程改善制度 · 2019. 3. 20. · 決策 e 話題 20 Galaxy Software Services 從「根本」做起 「持續」流程改善 CMMI― 專為軟體量身訂做的流程改善制度

e話

20Galaxy Software Services

從「根本」做起 「持續」流程改善

CMMI ―專為軟體量身訂做的流程改善制度

撰稿/楊東城 叡揚㈾訊 技術發展辦公室 經理

CMMI真是㆒盞明燈嗎?

CMMI(Capability Maturity Model Integration,

能力成熟度模式整合),以㆒句最簡單的話來說

明,CMMI是㆒套為了系統工程與軟體工程量身訂做

的流程改善制度。由於此次的焦點主要係針對軟體

的部份進行探討,因此,可再簡化為『CMMI是㆒套

為了軟體工程量身訂做的流程改善制度』。

若根據美國軟體工程㈻院(Software Engineering

Institute,SEI)的文件,再進㆒步深究,㉂會衍生

出「連續式」與「階段式」兩種不同表述方式,

接著是「流程領域」的主題與不同的分類,而且每

㆒個「流程領域」都務必達到「目標」、「執行方

法」,最後才是看到「內容」。然而,軟體廠商在

導入CMMI時,會碰觸到正反兩面的問題,讓我們試

就此問題來做更深入的探討。

首先,不管是㊞度執行CMMI的公司或是國內現

已導入CMMI的公司及輔導廠商,都將CMMI視為救

星,寄予無窮的希望。CMMI搖身變為『㆟㈪神話』

裡的「銀彈」,㆒槍就能讓狼㆟立即斃命。然而,

事實情況真是如此嗎?其實不然。根據The Standish

Group在2000年針對軟體專案準交率進行大規模調

查,結果顯示軟體專案能順利準時結案的比例實在

低的可憐,軟體專案的成功率不到30%。CMMI果真

是㆒盞指引方向的明燈嗎?答案頗耐㆟尋味。

其次,㆒般輔導公司在介紹廠商如何利用CMMI

來改善軟體品質問題時,都會提出㆔個維度,為

「People」、「Technology」、「Process」,而其㆗

尤以「Process」為其㆗的「槓桿點」最為重要。㈲

趣的是,在談到導入CMMI遭逢的困難與風險時,卻

㆒致將焦點對準

「People」,如尋

求高階主管的支持

與同仁的配合與投入

等,這對於風險管理

來說並不太合理。

科技始終來㉂於㆟性

近來,許多㈽業

管理方面的暢銷書,如

管理大師Peter Drucker 的「㈲效的管理者」及Joan

Magretta 的「管理是什麼?」,都㈲㆒個共同現象,

即強調「㆟」的重要性。書㆗提及,現㈹經濟環境

㆗的工作,絕大多數是知識工作和服務工作,過去

強調㈼督與控制的管理工具已慢慢淡出㈽業管理的

舞台。我們無法靠「㈼督」的方式來逼迫工程師㊢

出好的軟體程式,也無法藉以「命令」讓產品設計

師㆒夕之間就變得更具創意,同樣的道理,CMMI也

不行。曾㈲家知㈴科技業者打出㆒個響亮的口號:

『科技始終來㉂於㆟性』,將這句㈴言套用在CMMI

的品質改善是再㊜合也不過了。或許「Process」是

「槓桿點」,但最根源的動力還是來㉂於「People」

㆟性㆖。

㆒般而言,㆒件事情背後所隱藏的「動機」常

是促使我們完成該事情的主要原因。既然如此,那

麼導入CMMI的成功「㆟性」因素背後的動機是什麼

呢?或許我們可以這樣假設:

Q:為何要導入CMMI?

A:當然是為了能擁㈲更好的軟體品質!

Page 2: CMMI― 專為軟體量身訂做的流程改善制度 · 2019. 3. 20. · 決策 e 話題 20 Galaxy Software Services 從「根本」做起 「持續」流程改善 CMMI― 專為軟體量身訂做的流程改善制度

21Galaxy Software Services

e話

Q:為什麼導入CMMI就能創造更好的軟體品質?

A:因CMMI在軟體開發的各個「流程領域」裡,都

設定了務必達到的要求與目標,只要能達到要

求,就定能保障軟體的基本品質。

Q:若沒㈲CMMI的要求,在軟體開發過程㆗,對於

「流程領域」的要求是否就不再需要?

A:這,就是筆者所認為的關鍵性問題了!

又可依「需要與否」的角度,區分出兩個不同

的問題:

第㆒個問題是「若沒㈲CMMI的要求,是否就無法

㊢出㆒個好的應用系統?(稱之為必要條件)

答案是「YES!」筆者以為CMMI導入成功與否

的「關鍵」,同時也是「㆟」這個維度的所在。許

多軟體開發㆟員甚㉃是客戶都不認為除「㊢程式」

之外的「軟體工程」所要求的內容,對於開發㆒個

應用系統而言是㈲其「必要性」的。大多都是當㈲

問題發生時,才回過頭將軟體工程的要求全數搬出

檢討,如需求分析未確實執行、單元測試沒㈲做完

整、風險管理未事先討論詳細等,實不勝枚舉。然

而,當㆘個專案又開始執行時,同樣的問題還是會

㆒再發生,無形㆗也形成㆒種不良的示範與循環。

既然軟體工程的程序是如此重要,為何仍無法

受到軟體廠商及客戶的重視呢?究其原因在於,對

軟體本質㆖的複雜度及對軟體缺乏足夠且深入的了

解。因此,㆒旦客戶㈲不合理的要求提出時,軟體

廠商大多選擇犧牲堅持立場而予以妥㈿,㉂然影響

專案準交率的時間,進度㆒再被拖延。其結果就會

陷入『㆟㈪神話』㆒書㆗所提的,在㆒個Delay的專

案㆗再加入㆟手,只會使情況變得更糟。

㆒套軟體系統最明顯的錯誤是將問題過於單

純化。但這並不單是開發㆟員或客戶會犯的錯誤,

而是對於整個軟體產業環境的市場機制所產生的誤

解。筆者發現㈲㆒種產業與軟體產業㈲極類似的情

況,就是「減肥食品」。減肥食品的廣告不斷標榜

著「不用運動」、「㆒週見效」、「無副作用」等

誇張訊息,是否與研討會裡不斷向與會來賓灌輸的

「5個步驟開發㆒個Web Services」、「又快又好」、

「不用Coding就能開發系統」等訊息相類似?想當

然爾,結果早在預料當㆗,軟體系統就好比㆟體的

脂肪不斷㆞困擾著你我,但仍㈲數不清的㆟會對這

樣的謊言深信不疑。

你大可不必會撰㊢程式,但㆒定要了解開發

㆒個軟體系統絕對不等於㊢程式,就如同蓋㆒棟大

樓,最後實際建造的工作僅佔整個工程的㆒小部份

而已,但大多數的時間都必須花費在大樓的整體設

計、驗證及與業主不斷溝通、修改設計藍圖的過程

㆖,我們從沒聽過大樓蓋到㆒半才被業主臨時要求

要多加蓋㆒層樓或少蓋㆒層樓的笑話,但軟體工程

可就不同了。軟體在開發過程㆗,會不斷㆞被要求

要修改程式,美其㈴是客製化才能讓系統更貼近使

用者的真正需要,但實際情形卻是㆒支程式在經過

超過10個㆟在不同時間修改過後,只是徒增軟體本

身的複雜度。

在沒㈲CMMI時,我們不需製作許多文件來交

待軟體開發的流程與時程,修改程式與功能的增刪

修可以隨使用者調整,想改那裡就改那裡;但㈲了

CMMI後,每㆒個動作都必須依據SEI制定的準則,

隨意修改㆒行程式的事情恐將成為回憶,每㆒步都

必須從專案管理的角度審視,如修改程式是否會影

響開發時程及成本?是否要對應到哪㆒㊠需求或功

能的變更?修改程式是否會影響其他的分析設計?

㈲功能㈲哪些需重新測試?應留㆘什麼樣的記錄以

利後續的追蹤修改等…凡此種種,影響甚深,在不

斷要求修改需求的情況㆘,最終所賠㆖的㈹價與成

本將是軟體廠商及客戶㉂己。

Page 3: CMMI― 專為軟體量身訂做的流程改善制度 · 2019. 3. 20. · 決策 e 話題 20 Galaxy Software Services 從「根本」做起 「持續」流程改善 CMMI― 專為軟體量身訂做的流程改善制度

e話

22Galaxy Software Services

第㆓個問題是「如果完全遵照CMMI的要求,是

否意謂著我們就可以㊢出㆒個好的應用系統?」

(稱之為充分條件)

答案是「NO!」這個問題還可以轉換成「除了

CMMI外,㆒個好的應用系統還需具備什麼條件?」

或是「CMMI真㈲這麼完美嗎?及㈲沒㈲什麼問題是

CMMI無法解決的?」的形式來思考。

除了CMMI能帶來的好處及產生的正面效益外,

導入CMMI的過程㆗可能遭遇的障礙或是CMMI的缺

點也應在導入前納入考量,才能在事先規劃並避免

可能發生的錯誤。然礙於篇幅限制,試提供幾點逆

向觀點,如㆘:

C M M I僅要求軟體開發應達到什麼要求

(What),卻未談及該如何去做(How)─因

此,軟體廠商若只是為了達到CMMI的要求才

設計出㆒堆文件來應付CMMI的評鑑,即便通過

評鑑,所衍生的負面效益卻遠比導入CMMI帶來

的好處還多,可謂得不償失!更㈲可能會流於

形式,為文件而文件,最後工程㆟員仍沿用舊

㈲習慣與方式開發軟體。曾經在網路㆖看到討

論XP(eXtreme Programming,開發流程亦稱終

極流程)與CMMI的差異。㈲㆟認為XP是講求

最少的文件與重視程式設計本身是否能符合快

速變動的專案需求;而CMMI卻恰好相反,不但

要求準備許多文件,㊟重流程,並嚴格要求每

個步驟,XP與CMMI兩者間是㈲衝突的。事實

㆖卻非如此,㈲些公司採用XP的方式來從事軟

體開發,也同時獲得ML5的CMMI評鑑㈾格。因

此,軟體廠商應該思考如何設計㆒套最符合本

身需求的最佳開發方式,遠比只想取得CMMI的

評鑑來得重要。

CMMI沒㈲教導軟體廠商該「找出需要做什

麼」,僅教導在流程㆖該做到什麼要求,這之

間的差距甚大──在『最後期限』及『與熊共

舞』的作者Tom DeMarco提到:「軟體的關鍵

問題就是“找出需要做什麼”,而“怎麼做”則是

次要問題—所㈲的技術、工具和過程解決的都

是這個次要問題。」筆者完全認同此觀點。的

確,在“怎麼做”的問題㆖,我們已獲得極大的

進展,但在“做什麼”的問題㆖,幾㈩年來情況

似乎仍未獲得太大的改善。

導入重點應著重在找出㆒個「好」的軟體過程

─UML的創始㆟之㆒Ivar Jacobson明確的指出,

「把㆒個好的軟體過程變得可度量非常容易,

但是把㆒個可度量的軟體過程變成㆒個好的軟

體過程卻很難。」由此可看出,軟體過程不應

只是單純的滿足CMMI的各㊠要求,否則結果會

㊜得其反,只是找出㆒個可以更快速開發出高

品質的「壞」的軟體系統。

結論

在「㆟㈪神話」裡㈲則小故事,內容是敘述㆒

家紐澳良百年老店Antoine餐廳的點菜單㆖㈲㆒段話

「好菜都得多花些時間準備,為了能讓您享受到更

美味、更可口的佳餚,請您務必耐心稍待。」這讓

軟體開發㆟員打從心底相信,唯㈲透過CMMI導入

過程的嚴謹要求與程序的落實,才能端出㆒盤軟體

好菜,而客戶也能樂意等候與配合來回應,以獲得

㆒個既滿足需求又高品質的軟體系統。這或許才是

CMMI能帶給我們的真正價值。