• 沒有找到結果。

從工作分離及需求變動觀點考量不同開發方法之軟體境外開發績效表現 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "從工作分離及需求變動觀點考量不同開發方法之軟體境外開發績效表現 - 政大學術集成"

Copied!
119
0
0

加載中.... (立即查看全文)

全文

(1)國立政治大學資訊管理研究所 碩士學位論文. 指導教授:林我聰博士. 立. 政 治 大. ‧ 國. 學. ‧. 從工作分離及需求變動觀點考量不同開 發方法之軟體境外開發績效表現 y. Nat. sit. Considering development methods on offshore software development. n. al. er. io. performance: from work dispersion and requirements change perspective. Ch. engchi. i Un. v. 研 究 生: 黃 釗 熠. 中華民國九十九年七月.

(2) 從工作分離及需求變動觀點 考量不同開發方法之軟體境外開發績效表現 中文摘要 全球化使得軟體開發活動轉移至新興或開發中國家,快速變動的商業環境則 趨使軟體開發朝向敏捷開發演進,然而軟體境外開發產生工作分離現象,負面影 響軟體開發績效,此外敏捷開發法與境外開發環境存在衝突,本研究將軟體開發 方法視為一連續漸變的光譜,包含規劃導向、風險導向及敏捷開發等三階段,探. 政 治 大. 討在境外開發的環境下,哪一類型的開發方法能夠擁有較好的績效表現,並能減. 立. 緩工作分離的負面影響,其中軟體開發方法光譜與績效表現呈現曲線關係,工作. ‧ 國. 學. 分離負面影響敏捷開發端之績效表現,需求變動則負面影響規劃導向端績效表現,. 行方式。. ‧. 結論將從工作分離與需求變動程度觀點,分別探討不同情況下所應採取的專案執. er. io. sit. y. Nat. al. v. n. 關鍵字: 軟體境外開發、需求變動、工作分離、敏捷開發方法. Ch. engchi. I. i Un.

(3) Considering development methods on offshore software development performance: from work dispersion and requirements change perspective Abstract Affected by globalization, software development activities have transferred to developing country. On the other hand, driven by turbulent business environments,. 政 治 大 work dispersion derived from offshore software development has negative impact on 立. software development methods have become more flexible like agile method. However,. ‧ 國. 學. performance. Besides, offshore environments have conflict with agile method in some aspect. There is a need to know the fit of between development methods and offshore. ‧. modes. This research view development methods as a continuous spectrum, consisting. sit. y. Nat. of plan-driven, risk-driven and agile methods, and will probe which part of the spectrum. er. io. perform better in offshore context and can alleviate the negative work dispersion effect. al. iv n C h ehave software development performance n gcurvilinear c h i Urelationship. Work dispersion has n. on performance. The result shows that software development spectrum and offshore. negative impact on agile method, while requirements change has negative impact on plan-driven part. We’ll conclude from work dispersion and requirements change perspective, discussing how should practitioners conduct offshore project in different situations respectively.. Keywords: offshore software development, work dispersion, requirements change, agile development method.. II.

(4) 誌謝 感謝我的指導教授. 林我聰老師,讓我們帶走的不僅是研究本身,還包括終身受. 用無窮的待人處事風範。 感謝從計畫提報到論文的口試委員系主任管郁君老師、羅亦斯老師與張維中老師, 一路上給予學生最中肯的指教與建議。 感謝研究過程中幫助我填寫問卷及給予建議的產業先進,沒有你們的一臂之力就 無法完成這篇論文。. 政 治 大 滿難忘回憶的校園生活,一定是我搭捷運常讓座給老太太的回報。 立. 感謝 97 級資管碩班所有同學,兩年歲月如梭,能與各位渡過這抓住青春尾巴且充. ‧ 國. 學. 感謝一起提報計畫及口試的金翰,選擇敏捷開發法作為主題,果然是英雄所見略 同,在最煎熬的時刻有你的互相幫助,是我的榮幸。. sit. Nat. 在就知道今天不無聊了,真的承蒙各位的照顧了。. y. ‧. 感謝同實驗室的宛汝、雅慧、崑裕、瑋佑學長與學弟們,每次踏進 Lab 看到你們. io. er. 感謝強者室友大銘及山上宿舍的同胞孟榆、孝文、少華、瑞聲與健鈞,不論是 BBO、. al. iv n C hengchi U 感謝大學同學的隨時關心,雖然你們非常不遵守研究生禮貌運動一直問我論文寫 n. 深夜的慢跑、游泳、棒球、世足、日劇或兩百階的試煉都少不了你們。. 到哪或什麼時候口試,但其實我心中是滿懷感激你們還記得我的存在。 感謝我的家人與親朋好友,你們是我背後最重要的支柱,讓我可以無憂無慮的專 心於課業上,希望我的表現能讓你們放心。 最後感謝陪伴我征戰許久的 Macbook,靠著 Keynote 花俏又華麗的動畫幫我的報告 撐了不少場面,一直在我身旁給予我最適時的支援。 黃釗熠. 謹誌. 民國九十九年七月. III.

(5) 目錄 中文摘要 ........................................................................................................................... I  Abstract ............................................................................................................................ II  誌謝 ................................................................................................................................ III  目錄 ................................................................................................................................ IV  圖索引 ...........................................................................................................................VII  表索引 ......................................................................................................................... VIII . 政 治 大 1.1 研究背景 ........................................................................................................... 1  立. 第一章 . 緒論 .............................................................................................................. 1 . ‧ 國. 學. 1.2 研究動機 ........................................................................................................... 2  1.3 研究目的 ........................................................................................................... 3 . ‧. 1.4 研究方法及研究範圍 ....................................................................................... 3 . y. sit. 文獻探討 ...................................................................................................... 6 . io. er. 第二章 . Nat. 1.5 論文架構 ........................................................................................................... 4 . al. iv n C hengchi U 軟體全球開發 ........................................................................................ 6  n. 2.1 軟體開發全球化 ............................................................................................... 6  2.1.1. 2.1.2 優勢 ........................................................................................................ 9  2.1.3 距離的挑戰 .......................................................................................... 10  2.2 軟體開發流程演進 ......................................................................................... 14  2.2.1 演進的驅動力量 .................................................................................. 14  2.2.2 線型流程 .............................................................................................. 15  2.2.3 系統開發生命週期法 .......................................................................... 15  2.2.4 多循環流程 .......................................................................................... 16  2.2.5 Rational 統一流程模式 ......................................................................... 17  2.2.6 敏捷開發方法 ...................................................................................... 18  IV.

(6) 2.2.7 極限編程 .............................................................................................. 22  2.3 敏捷開發方法與軟體全球開發環境的衝突 ................................................. 24  2.4 軟體開發方法光譜概念 ................................................................................. 27  2.5 小結 ................................................................................................................. 30  第三章 . 研究方法 .................................................................................................... 32 . 3.1 研究步驟 ......................................................................................................... 32  3.2 研究架構與變項定義 ..................................................................................... 34  3.2.1 軟體開發方法 ...................................................................................... 35  3.2.2 軟體境外開發績效表現 ...................................................................... 38 . 政 治 大. 3.2.3 工作分離程度 ...................................................................................... 41 . 立. 3.2.4 需求變動程度 ...................................................................................... 41 . ‧ 國. 學. 3.2.5 干擾變項 .............................................................................................. 41  3.3 研究假說 ......................................................................................................... 43 . ‧. 3.4 問卷設計 ......................................................................................................... 46 . Nat. sit. y. 3.4.1 其他觀測變項 ...................................................................................... 50 . n. al. er. io. 3.5 資料蒐集方式 ................................................................................................. 50 . i Un. v. 3.6 統計分析方法 ................................................................................................. 51 . Ch. engchi. 3.6.1 線性迴歸與曲線迴歸 .......................................................................... 52  3.6.2 干擾變項之檢驗 .................................................................................. 53  3.6.3 資料分析與假說檢定步驟 .................................................................. 54  3.7 前測問卷分析 ................................................................................................. 55  3.7.1 軟體開發方法構面信效度分析 .......................................................... 56  3.7.2 需求變動構面信效度分析 .................................................................. 58  3.7.3 軟體境外開發績效表現構面信效度分析 .......................................... 59  3.7.4 前測分析總結 ...................................................................................... 61  第四章 . 實證結果與討論 ........................................................................................ 62  V.

(7) 4.1 樣本結構分析 ................................................................................................. 62  4.2 問卷信效度檢測與基本敘述統計 ................................................................. 63  4.2.1 軟體開發方法構面信效度分析 .......................................................... 63  4.2.2 需求變動構面信效度分析 .................................................................. 65  4.2.3 軟體境外開發績效表現構面信效度分析 .......................................... 66  4.2.4 信效度分析總結 .................................................................................. 68  4.2.5 各構面與題項之基本敘述統計 .......................................................... 69  4.3 線性偏離檢驗與曲線迴歸分析 ..................................................................... 72  4.4 多元階層迴歸分析 ......................................................................................... 77 . 政 治 大. 4.4.1 規劃導向端多元階層迴歸分析 .......................................................... 79 . 立. 4.4.2 敏捷開發端多元階層迴歸分析 .......................................................... 81 . ‧ 國. 學. 4.5 共變模式混合迴歸分析 ................................................................................. 82  4.5.1 規劃導向端共變模式混合迴歸分析 .................................................. 83 . ‧. 4.5.2 敏捷開發端共變模式混合迴歸分析 .................................................. 84 . Nat. sit. y. 4.6 資料分析結果討論 ......................................................................................... 86 . al. n. 第五章 . er. io. 4.6.1 交互作用未能成立之討論 .................................................................. 87 . i Un. v. 結論與建議 ................................................................................................ 89 . Ch. engchi. 5.1 管理意涵 ......................................................................................................... 89  5.2 結論 ................................................................................................................. 93  5.3 研究貢獻 ......................................................................................................... 95  5.4 研究限制與未來研究建議 ............................................................................. 96  參考文獻 ........................................................................................................................ 97  附錄 A 軟體境外開發研究問卷(正體中文) .............................................................. 102  附錄 B 軟體境外開發研究問卷(英文) ...................................................................... 104  附錄 C 軟體境外開發研究問卷(簡體中文) .............................................................. 107 . VI.

(8) 圖索引 圖 1.5-1 論文架構 ........................................................................................................... 5  圖 2.1-1 軟體境外開發情境 ........................................................................................... 8  圖 2.1-2 軟體開發活動分散至境內與境外 ................................................................... 9  圖 2.1-3 距離的負面影響 ............................................................................................. 11  圖 2.2-1 系統生命開發週期法 ..................................................................................... 16  圖 2.2-2 Rational 統一流程模式................................................................................... 17  圖 2.4-1 軟體開發規劃的光譜 ..................................................................................... 28 . 政 治 大. 圖 2.4-2 軟體開發方法三向架構 ................................................................................. 29 . 立. 圖 2.4-3 軟體開發彈性的光譜 ..................................................................................... 30 . ‧ 國. 學. 圖 3.1-1 研究步驟 ......................................................................................................... 34 . ‧. 圖 3.2-1 研究架構 ......................................................................................................... 35  圖 3.2-2 軟體開發方法光譜 ......................................................................................... 36 . y. Nat. io. sit. 圖 3.2-3 軟體開發方法光譜之不同階段特性比較 ..................................................... 38 . n. al. er. 圖 3.2-4 軟體開發方法光譜之敏捷宣言特性比較 ..................................................... 38 . Ch. i Un. v. 圖 3.4-1 研究問項的形成 ............................................................................................. 46 . engchi. 圖 3.6-1 干擾變項模型 ................................................................................................. 53  圖 3.6-2 資料分析流程 ................................................................................................. 55  圖 4.3-1 曲線估計模型圖 1 .......................................................................................... 76  圖 4.3-2 曲線估計模型圖 2 .......................................................................................... 77  圖 4.6-2 東西方境外開發環境示意圖 ......................................................................... 88  圖 5.1-1 限制鬆綁的過程圖示 ..................................................................................... 90  圖 5.1-2 需求變動高應採取作法圖示 ......................................................................... 91  圖 5.1-3 工作分離高應採取作法圖示 ......................................................................... 91  圖 5.1-4 同時考量工作分離與需求變動應採取作法圖示 ......................................... 92 VII.

(9) 表索引 表 2.1-1 軟體開發營運模式象限 ................................................................................... 7  表 2.1-2 軟體全球開發環境之挑戰 ............................................................................. 12  表 2.2-1 傳統開發方法與敏捷開發方法之比較 ......................................................... 19  表 2.2-2 敏捷開發方法定義 ......................................................................................... 20  表 2.2-3 極限編程的十二項實踐 ................................................................................. 22  表 2.3-1 敏捷開發方法與軟體全球開發環境之衝突 1 .............................................. 26 . 政 治 大 表 3.1-1 量化研究法之分類 ......................................................................................... 33  立 表 2.3-2 敏捷開發方法與軟體全球開發環境之衝突 2 .............................................. 27 . ‧ 國. 學. 表 3.2-1 軟體開發方法光譜之不同階段特性比較 ..................................................... 37  表 3.2-2 軟體專案開發績效之定義 ............................................................................. 40 . ‧. 表 3.2-3 干擾變項之定義 ............................................................................................. 43 . sit. y. Nat. 表 3.4-1 軟體開發方法之定義與問項 ......................................................................... 47 . io. er. 表 3.4-2 軟體境外開發績效表現之定義與問項 ......................................................... 48 . al. iv n C h e n......................................................................... 3.4-4 需求變動程度之定義與問項 50  gchi U n. 表 3.4-3 工作分離程度之定義與問項 ......................................................................... 49  表. 表 3.5-1 資料蒐集方式 ................................................................................................. 51  表 3.6-1 不同型態變項所使用之統計方法比較 ......................................................... 52  表 3.6-2 線性迴歸與曲線迴歸的函數模型 ................................................................. 53  表 3.7-1 軟體開發方法之項目整體統計量 ................................................................. 57  表 3.7-2 軟體開發方法之因素分析轉軸後成分矩陣 ................................................. 57  表 3.7-3 需求變動之項目整體統計量 ......................................................................... 58  表 3.7-4 需求變動之因素分析轉軸後成分矩陣 ......................................................... 58  表 3.7-5 軟體境外開發績效表現之項目整體統計量 ................................................. 59  表 3.7-6 軟體境外開發績效表現之因素分析轉軸後成分矩陣 ................................. 60  VIII.

(10) 表 3.7-7 信效度分析整理 ............................................................................................. 61  表 4.1-1 正式問卷發放與回收情形 ............................................................................. 62  表 4.1-2 樣本職位分布 ................................................................................................. 62  表 4.1-3 樣本基本資料分布 ......................................................................................... 63  表 4.2-1 軟體開發方法之項目整體統計量 ................................................................. 64  表 4.2-2 軟體開發方法之因素分析轉軸後成分矩陣 ................................................. 64  表 4.2-3 需求變動之項目整體統計量 ......................................................................... 65  表 4.2-4 需求變動之因素分析轉軸後成分矩陣 ......................................................... 65  表 4.2-5 軟體境外開發績效表現之項目整體統計量 ................................................. 66 . 政 治 大. 表 4.2-6 軟體境外開發績效表現之因素分析轉軸後成分矩陣 ................................. 67 . 立. 表 4.2-7 刪題後之軟體境外開發績效表現因素分析轉軸後成分矩陣 ..................... 68 . ‧ 國. 學. 表 4.2-8 信效度分析整理 ............................................................................................. 69  表 4.2-9 各構面基本敘述統計 ..................................................................................... 70 . ‧. 表 4.2-10 各題項之項目統計量 ................................................................................... 70 . Nat. sit. y. 表 4.2-11 相關矩陣 ....................................................................................................... 71 . n. al. er. io. 表 4.2-12 規劃導向端相關矩陣 ................................................................................... 71 . i Un. v. 表 4.2-13 敏捷方法端相關矩陣 ................................................................................... 72 . Ch. engchi. 表 4.3-1 線性偏離檢驗 1 .............................................................................................. 74  表 4.3-2 線性偏離檢驗 2 .............................................................................................. 74  表 4.3-3 曲線模型估計 1 .............................................................................................. 75  表 4.3-4 曲線模型估計 2 .............................................................................................. 75  表 4.3-5 曲線模型估計階層迴歸分析摘要表 ............................................................. 76  表 4.4-1 自變項共線性診斷摘要表 ............................................................................. 79  表 4.4-2 規劃導向端多元階層迴歸分析摘要表 ......................................................... 80  表 4.4-3 敏捷開發端多元階層迴歸分析摘要表 ......................................................... 82  表 4.5-1 規劃導向端共變模式混合迴歸分析結果摘要表 ......................................... 84  IX.

(11) 表 4.5-2 敏捷開發端共變模式混合迴歸分析結果摘要表 ......................................... 85  表 4.6-2 假說檢定結果 ................................................................................................. 86  表 5.2-1 工作分離與需求變動象限 ............................................................................. 93 . 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. X. i Un. v.

(12) 第一章 緒論. 1.1 研究背景 全球化及快速變遷的商業環境是目前各產業所面對的兩大挑戰,全球化使得 產品的生產或服務的提供不將侷限於國境之內,而是分散到全球各地,利用不同 地區的資源優勢,以降低生產成本、提高競爭優勢,此現象即全球運籌(Global Logistic)。然而快速變動的商業環境,促使企業必須具備更快速、更敏捷的適應能. 政 治 大 其中在軟體產業的部分,全球化及環境快速變動的挑戰持續加溫(Ågerfalk & 立. 力,而能夠應付瞬息萬變的產業趨勢。. ‧ 國. 學. Fitzgerald, 2006),全球化導致一個軟體的誕生,包括整個軟體開發生命週期在內, 分散至全球各地,越來越多的軟體公司將軟體開發活動,透過外包或境外開發的. ‧. 方式轉移至新興或開發中國家(Carmel & Tjia, 2005),軟體公司可以藉此接觸到遍. sit. y. Nat. 及全球且成本較低的人力資源,例如印度、中國或菲律賓,當地政府甚至因此設. io. er. 立軟體園區,吸引更多軟體公司投資進駐,此現象稱為軟體全球開發(Global. al. iv n C hengchi U 資源進行軟體開發,逐漸發展成為軟體公司取得競爭優勢的基準配備(Edwards, n. Software Development)或軟體境外開發(Offshore Software Development),運用全球. 2005)。 此外,由於商業環境的快速變動及難以預測,使用者對於軟體需求的改變也 越趨頻繁,然而無法順利及正確的滿足使用者需求,就意味著軟體專案的失敗, 其中可能涵蓋的問題包括預算的超支、開發時程的延遲及軟體品質不佳等 (Maruping, Venkatesh, & Agarwal, 2009),即使軟體開發已有超過五十年的歷史,所 謂的軟體危機(Software Crisis)正持續不斷挑戰著軟體公司的能力(Ågerfalk & Fitzgerald, 2006),因此無疑的,使用者需求的不斷改變對於軟體開發構成一大威脅 (Maruping, et al., 2009),面對此一威脅,軟體開發方法從傳統重量級、規劃導向的 流程,逐漸發展成輕量級、人本導向的流程,如敏捷開發方法(Agile Development 1.

(13) Method)(K Beck, 2004; Holmstrom, Fitzgerald, Agerfalk, & Conchuir, 2006; Qumer & Henderson-Sellers, 2008; Yadav, Adya, Sridhar, & Nath, 2009)。. 1.2 研究動機 許多外在的推力促使軟體開發全球化,然而軟體全球開發和以往相同地點的 開發,最大的不同在於產生了工作分離(Work Dispersion)的現象,同一個軟體的 開發任務分散在不同國家、不同時區甚至不同文化,此現象負面影響軟體開發的 績效表現(Ramasubbu, Mithas, Krishnan, & Kemerer, 2008),進而產生許多控制、協 同、溝通、文化及科技上的挑戰(Yadav, et al., 2009)。. 政 治 大. 然而因應快速變動的商業環境而產生的敏捷開發方法,是目前產業實務的先. 立. 驅,但在許多關鍵要素上與軟體全球開發的環境大相逕庭而產生衝突. ‧ 國. 學. (Balasubramaniam, Lan, Kannan, & Peng, 2006),以溝通及互動導向的敏捷開發方法, 是否能適用於因距離分散而產生溝通延遲的全球開發環境還尚待討論. ‧. (Balasubramaniam, et al., 2006; Ramasubbu, et al., 2008),因此在軟體全球開發的實. Nat. sit. y. 務上,不論是採取傳統規劃導向的開發方法,或是近年逐漸發展的敏捷開發方法,. n. al. er. io. 通常會針對全球化環境進行適應性的調整,因此軟體開發方法的區分不再涇渭分. i Un. v. 明,而是一個光譜的概念(Yadav, et al., 2009),軟體全球開發必須具備傳統開發方. Ch. engchi. 法的結構化流程,並且擁有敏捷開發方法的彈性。. 然而現今對於軟體全球開發的研究並不多(O. K. Lee, et al., 2006),在全球開發 環境中運用敏捷開發方法也是實務領先研究,僅有少數研究關注於此並進行實證 (Ågerfalk & Fitzgerald, 2006; Fruhling & De Vreede, 2006; Yadav, et al., 2009),而敏捷 方法在境外開發時扮演著什麼樣的角色興起越來越多的討論與關注(Batra, 2009)。 對於不同開發方法是否能適用於全球分散式的開發環境,並緩解距離所產生的負 面影響,亦是個值得關注的議題(Ramasubbu, et al., 2008)。. 2.

(14) 1.3 研究目的 本研究目的在於建立一個測試模型,探討在軟體境外開發的環境下,哪一類 型的軟體開發方法能夠擁有較好的表現?擁有什麼樣特性的開發方式能夠緩解距 離所造成的負面影響?並從工作分離及需求變動的觀點,分析在全球化及快速變 動的商業環境下,不同特性的軟體開發方法所產生的績效,以瞭解在境外開發的 環境下,應採用何種開發方式,以獲得較好的績效表現。 由過去研究發現,不同軟體開發方法間的界線已越趨模糊,形成一個光譜的 型態(B. Boehm, Port, & Winsor Brown, 2002; Harris, Collins, & Hevner, 2009; Yadav,. 政 治 大. et al., 2009),光譜上各階段代表不同類型及擁有不同特色的軟體開發方法,本研究. 立. 將對於光譜上不同類型、不同特色的軟體開發方法進行實證研究,觀察在軟體境. ‧ 國. 學. 外開發的環境之下所產生的績效表現,並加入兩個可能影響軟體境外開發績效的 干擾因素,工作分離程度及需求變動程度,分析擁有不同特色的軟體開發方法,. ‧. 其績效所受到的影響,期望能對目前在軟體全球開發環境下,專注於專案開發方. Nat. er. io. sit. y. 法論的研究產生貢獻。. 1.4 研究方法及研究範圍a. n. iv l C n hengchi U 從資訊管理研究之觀點,依照學者梁定澎(1997)之分類 ,主要可分為以下五類,. 涵蓋大部分資訊管理研究常用之研究方法: 一、. 個案研究(Case Study). 二、. 調查研究(Survey Research Method). 三、. 實證研究(Emperical Research Method). 四、. 數學模式推導(Modeling). 五、. 系統展式(System Representation). 本研究目的在探討具有不同特色之軟體開發方法,在軟體境外開發環境下之 績效表現,並從工作分離程度及需求變動程度的觀點分析開發方法之績效所受到 3.

(15) 的影響,為上述五種方法中之實證研究法,透過文獻探討形成研究架構,或稱概 念架構的測試模型,藉由問卷設計、回收及分析,進行假說檢定及考驗之實證研 究。 若從量化研究的角度考量,學者邱皓政(2008a)將量化研究歸納為三種型式, 調查法(Survey study)、相關法(Correlational research)及實驗法(Experimental research)。調查法主要是以小樣本估計大母體,利用樣本對母體進行描述及解釋; 相關法的目的則是在建立複雜變項間的關係,進而發展成理論模型;實驗法則是 利用多種變化的實驗設計(Experimental Design),前測及後測,實驗組及對照組的 搭配,建立變項間的因果關係,和前兩者最不同的地方在於實驗設計的存在,由. 政 治 大. 於前兩者因缺少實驗設計,因此又稱做非實驗設計(Non-experimental Design)研究。. 立. 本研究為上述量化研究法分類中之相關法,以探索不同變項間的關係及互相影響. ‧ 國. 學. 之程度。. 本研究範圍包含整個軟體開發生命週期,從需求分析到軟體系統建構與上線. ‧. 過程中,採用不同特色之軟體開發方法,在軟體境外開發的環境下所產生的績效. Nat. sit. y. 表現,並考量到工作分離及需求變動對其關係所造成的影響。. n. al. er. io. 綜合上述之整理,本研究屬於資訊管理研究方法中之實證研究,並採用量化. i Un. v. 研究中之相關法技術,建立不同特色之軟體開發方法與軟體境外開發績效間的關. Ch. engchi. 係,並從工作分離及使用者需求變動的情境下,探討不同開發方法之境外開發績 效所受到的影響及干擾。. 1.5 論文架構 本研究論文共分為五章,第一章為緒論,包括研究背景、動機、目的及研究 方法,界定研究範圍及研究問題。第二章為文獻探討,主要針對軟體全球開發相 關議題,進行相關文獻之整理及基礎理論探討,綜合分析最近興起之敏捷開發方 法與軟體境外開發環境之衝突,並彙整出關於軟體開發方法之光譜概念。第三章 為研究方法,提出本研究之主要步驟,採取之研究方法,研究變項之定義,透過 4.

(16) 過去文獻之探討發展出本研究架構與研究假說,並且依照研究架構之不同構念編 制問卷量表,隨後說明所採取之統計分析方法與策略。第四章為實證結果與討論, 針對回收之問卷進行統計分析及假說檢定,提出本研究之成果。第五章為結論與 建議,統整本研究之結論及研究貢獻,並說明未來研究建議。 整體論文架構如圖 1.5-1 所示:. 第一章、. 緒論. (研究背景、動機、目的及研究方法). 文獻探討 政 治 大. 第二章、. 立. 學. 第三章、. 研究方法. ‧. ‧ 國. (軟體全球開發、軟體開發流程演進、軟體開發光譜概念). (研究步驟、定義研究架構、變項及假說). er. io. sit. y. Nat. n. a l 第四章、 實證結果與討論 iv n Ch engchi U (研究假說之實證結果與統計分析). 第五章、. 結論與建議. (研究結論、貢獻及未來研究建議). 圖 1.5-1 論文架構. 5.

(17) 第二章 文獻探討. 2.1 軟體開發全球化 在全球競爭的時代,許多產業為了降低營運成本,進而提高競爭優勢,常會 在不同地區設置廠站,以廣泛利用全球資源,此現象即為全球運籌管理(Global Logistics Management, GLM),其被定義為「以全球的觀點進行多國規劃並執行企 業運籌管理活動,透過交換過程,以提高顧客滿意程度和服務水準,並降低成本,. 政 治 大 球化的時代,全球運籌管理為各產業營運的重要戰略考量之一。 立. 以增加市場競爭力,進而達成企業之利潤目標。(Fawcett & Closs, 1993)」因此在全. ‧ 國. 學. 然而對於軟體產業而言,在軟體開發的過程中,利用全球的資源獲取開發上 的綜效,幾乎已成為業界的標準策略(Edwards, 2005),軟體開發從傳統在組織內部、. ‧. 同一地點的自製開發模式,轉向跨組織且遍佈於全球的境外開發模式(Carmel &. sit. y. Nat. Tjia, 2005),這種軟體開發的全球運籌營運模式即稱為軟體全球開發(Global. io. er. Software Development, GSD)(Yadav, et al., 2009),亦稱為軟體境外開發(Offshore. al. iv n C Distributed Development)(Sarker,hMunson, 2009)。 i U e n g c&hChakraborty, n. Software Development)(Ramasubbu, et al., 2008)或軟體分散式開發(Software. 以下即針對軟體全球開發之現況發展、優勢與挑戰分別進行說明與基礎理論 之文獻探討。. 2.1.1 軟體全球開發 全球化使得軟體開發變得更加多廠站、多地點與多文化的全球分散式開發 (Holmstrom, et al., 2006),並導致軟體開發活動散佈到新興及開發中國家,軟體開 發從傳統同一地點的開發模式轉向全球虛擬團隊的跨國界合作模式(Carmel & Tjia, 2005),然而先進及發展快速的資訊通訊科技(Information and Communication Technology, ICT)設備,也促使跨國界且分散的軟體虛擬開發團隊(Global Virtual 6.

(18) Teams, GVTs)得以順利連結(Edwards, 2005),因此在軟體開發過程中採用虛擬團隊 模式已經成為非常普遍的情形。軟體開發專案未來可能會發展成一個遍佈全球的 虛擬群島(Carmel & Agarwal, 2001)。 軟體開發的營運模式如表 2.1-1 所示,可分為四個象限: 表 2.1-1 軟體開發營運模式象限 (Olsson, Conchuir, Agerfalk, & Fitzgerald, 2008) 內製(In-House). 外包(Outsourced) 外包至境內第三方軟體開發服. 境內 傳統的內製模式 (Onshore) 境外. 政 治 大 外包至境外第三方軟體開發服 由境外分公司負責開發 立 務提供者. 學. ‧ 國. (Offshore). 務提供者. ‧. 首先是左上角,開發活動位在組織內部及境內,也就是在同一國家內進行,. sit. y. Nat. 是傳統的軟體開發營運模式。若在國境之內,將軟體開發工作外包至第三方單位,. io. er. 即為右上角之模式。若開發活動於組織內部進行,但工作卻分散至與外國分公司. al. 合作進行,此即左下角之模式。然而若是外包至位於國外的第三方單位,即為右. n. iv n C 下角之模式。本研究所指軟體全球開發、軟體境外開發或軟體分散式開發是指表 hengchi U 2.1-1 下方之兩個象限的營運模式。 而在軟體全球開發的活動之中,包含三個不同角色,顧客、境內開發單位(或 指外包顧客, Outsourcing Client)及境外開發單位(或指外包供應商, Outsourcing Vendor)(Batra, 2009)。以下提供一個情境作為範例(Nobuhiro & Mita, 2008),如圖 2.1-1 所示,位於日本境內的顧客向同樣位在日本境內的軟體公司訂立契約,要求 開發所需之軟體,軟體公司在與顧客進行需求分析及功能確認後,再將軟體細部 開發工作轉移至軟體公司位於中國的分公司,或外包至位於中國的其他軟體公司, 完成程式開發工作後則將其移交給日本境內之軟體公司,最後將完成之軟體交至 顧客手中,完成本次軟體開發。 7.

(19) 顧客. 外包供應商. (Ex: 日本). (Ex: 中國) 提供軟體產品. 外包軟體開發活動 (例如程式建構) 移交完成之程式碼. 訂定專案合約期需求 外包顧客 (Ex: 日本). 圖 2.1-1 軟體境外開發情境. 政 治 大. 資料來源:修改自 Batra (2009). 立. ‧ 國. (Onsite-Offshore Model)」,包含三個部分:. ‧. 一、境內(Onsite). 學. 學者 Carmel & Tjia (2005)針對此情境提出了「境內─境外開發模式. io. er. 一地點,能與顧客進行即時的溝通及互動。. sit. y. Nat. 商業環境評估、可行性分析及需求分析主要在此進行,由於與顧客位於同. al. iv n C hengchi U 較高階之系統分析與設計由境內與境外單位合作進行,以確保正確之需求 n. 二、境內與境外(Onsite & Offshore). 能傳達至境外單位,此階段與顧客互動之需求也較低。 三、境外(Offshore) 軟體之細節設計、程式編碼及測試活動則在境外單位進行。. 由此可得知,在軟體全球開發的情境下,軟體開發生命週期的各個部分可能 分散在不同地區進行,部分活動完全由境內或境外單位執行,部分則由境內與境 外單位合作完成,如圖 2.1-2 所示。. 8.

(20) 維護. % 0 1. 測試. % 0 1. % 0 8. % 0 9. % 0 1. 境外. 程式編碼. % 0 2. % 0 0 1. % 0 0 1. (Onsite). 系統設計. % 0 9. 境內. 系統分析. % 0 9. 需求分析. (Offshore). 政 治 大. 圖 2.1-2 軟體開發活動分散至境內與境外. 立. 資料來源:修改自 C. James & Alpana (2006). ‧. ‧ 國. 學. 2.1.2 優勢. 全球化促使了軟體境外開發的興盛,其中兩個最重要的驅動原因,就是成本. Nat. sit. y. 因素及更廣大的人力資源,扮演著相當關鍵的策略性角色(Carmel & Agarwal, 2001;. n. al. er. io. Carmel & Tjia, 2005)。藉由快速組成的虛擬團隊,使得開發團隊能夠更貼近顧客、. i Un. v. 更快抓住市場機會,甚至創造出二十四小時不間斷的軟體開發(Round-the Clock. Ch. engchi. Development)(Edwards, 2005; Holmstrom, et al., 2006),因此在產業高度競爭的環境 下,能夠縮短軟體開發週期而快速上線、減少開發成本、利用更好及更廣的人力 資源、彼此分享最佳實務與更貼近顧客,都是運用軟體全球開發的特性,以增加 競爭機會與優勢(Ågerfalk & Fitzgerald, 2006; Yadav, et al., 2009)。 針對這些優勢,學者 O'Leary et al.(2007)將其區分為從三個觀點來分析。首先 是從空間(Spatial)的觀點來看,軟體的全球開發使得軟體公司可以節省龐大的不動 產花費,公司地點可選擇在地價較便宜之區域,空間選擇上較自由。第二是時空 (Temporal)的觀點,藉由分散於各地的開發中心,形成二十四小時不間斷的軟體開 發流程,除了可以縮短開發週期,加快上市時間,亦可服務遍佈於全球的顧客, 9.

(21) 擴大服務涵蓋範圍。最後是組織組態(Configurational)的觀點,意指能夠接觸到具 有不同專業領域知識、成本更低及更廣泛的人力資源。此外,除了上述提及的因 素,軟體品質及專案管理能力提升也是促使軟體開發全球化的重要因素(Carmel & Agarwal, 2002; Ramasubbu, et al., 2008)。 綜合以上,學者 Conchúir, Ågerfalk, Olsson, & Fitzgerald (2009)統整了軟體全球 開發所產生的優勢如下: 一、減少軟體開發成本 二、利用橫跨不同時區的開發中心增加效率 三、接觸到更廣且更好的人力資源 四、創新及最佳實務的分享. 立. 五、更貼近的市場及顧客. 政 治 大. ‧ 國. 學. 2.1.3 距離的挑戰. ‧. 軟體境外開發帶來了不少優勢,但也伴隨著許多挑戰,包括控制、協同、溝. Nat. sit. y. 通、文化及科技上的挑戰(Yadav, et al., 2009),導致這些挑戰的重要因素就是「距. n. al. er. io. 離」(Carmel & Agarwal, 2001)或稱「工作分離(Work Dispersion)」(Ramasubbu, et al.,. i Un. v. 2008),距離加深了組織流程上的複雜度,如圖 2.1-3 所示,距離使得專案的控制、. Ch. engchi. 溝通及協調變得更加困難,然而很不幸的,組織的運作靠的就是溝通與控制,而 距離正是這些工作的障礙。. 10.

(22) 溝通 負面影響. 距離. 協調. 負面影響 負面影響. 控制. 圖 2.1-3 距離的負面影響 (Carmel & Agarwal, 2001). 政 治 大. 然而工作分離也是軟體境外開發中常見的現象,影響了專案開發的溝通、協. 立. 同及管理活動,甚至是績效(Herbsleb & Mockus, 2003; Lu, Watson-Manheim,. ‧ 國. 學. Chudoba, & Wynn, 2006),境外軟體專案的執行上常需要橫跨許多地點,因此造成. ‧. 工作上的大量分離,對於複雜度相同的專案,跨廠站的分散式開發相較於同地點 開發,會需要較長的時間以及較多的人力投入,即使在高度結構化的流程當中,. y. Nat. io. sit. 工作分離仍會負面影響軟體開發的績效(Ramasubbu, et al., 2008)。. n. al. er. 學者 Ågerfalk & Fitzgerald(2006)指出三種影響軟體境外開發的距離因素。首先. Ch. i Un. v. 是地理上的距離(Geographic Distance)所造成的問題,位於不同地點的開發人員,. engchi. 彼此的溝通主要依賴於同步(Synchronous Communication)或非同步(Asynchronous Communication)的溝通科技,前者例如電話、即時通訊或網路視訊會議等,後者則 例如電子郵件(Cummings, Espinosa, & Pickering, 2009),如此的環境使得開發人員 減少許多面對面溝通的機會,因此缺乏對於專案的認知與認同,導致無法形成團 隊精神。而若開發人員位於不同的時區,則形成時空上的距離(Temporal Distance), 降低開發人員使用同步溝通的機會,造成資訊傳遞上的延遲,甚至有開發人員為 了要和另個時區的開發人員即時溝通,而必須改變工作時間,調整至另一時區之 工作時間(Conchúir, et al., 2009)。然而位於不同國家的開發人員,需要和身處於不 同文化及社會背景的人合作,因此導致了社會文化上的距離(Sociocultural Distance), 11.

(23) 最大的風險就是語言解讀上的誤解,導致對於文件描述的誤判。 軟體開發是一個需要頻繁協同互動的活動,但軟體全球開發使開發活動分散 於不同地區,造成了地理空間的距離、時空的距離及社會文化的距離。然而溝通 科技的運用僅能在某種程度上解決地理空間的問題,時空上的距離減少了工作時 間上的重疊,降低使用同步溝通的機會,使得在軟體境外開發的環境下,由於距 離的影響而產生了協同延遲(Coordinator Delay)(Cummings, et al., 2009),並且負面 影響軟體開發的生產力及品質(Ramasubbu, et al., 2008)。 總結以上,在全球化的時代,即使有再先進的資訊通訊科技,距離所產生的 負面影響還是無法消弭,「距離永遠是個問題(Distance Matters)」(Olson & Olson,. 政 治 大. 2000)。. 立. 對於軟體全球開發環境下,距離所造成的挑戰相關文獻彙整如表 2.1-2 所示:. ‧ 國. 學. 表 2.1-2 軟體全球開發環境之挑戰 資料來源:本研究整理. ‧. 描述. Nat. y. 作者. io. sit. 軟體全球開發(GSD)帶來了許多挑戰,包括控制、協同、 (Yadav, et al., 2009). n. al. er. 溝通、文化及科技上的挑戰. Ch. i Un. v. 許多協同合作的問題在於缺乏共同工作的環境,溝通科 (Cummings, et al.,. engchi. 技僅可以在某種程度上解決空間上的距離,時空上的距 2009) 離改變了工作上的時機及同步性 減少了工作時間上的 重疊,加深了協同延遲(Coordination Delay),時空上的 距離同樣也減少了使用同步溝通的機會 境外軟體專案的執行上常需要橫跨許多地點,因此造成 (Ramasubbu, et al., 工作上大量的分離,即使在高度結構化的流程當中,工 2008) 作分離仍會負面影響軟體開發的績效 (Ågerfalk &. 軟體分散式開發產生了三種距離: 1.. 地理距離(Geographic Distance) 12. Fitzgerald, 2006).

(24) 2.. 時空距離(Temporal Distance). 3.. 社會文化距離(Sociocultural Distance) (C. James & Alpana,. 軟體境外開發實務上可能遇到的問題: 1.. 較高的文件往來額外負擔. 2.. 較高專案管理上的額外負擔. 3.. 開發中心的地域分散. 4.. 實體基礎建設一致性的問題. 5.. 軟體品質的確保. 6.. 文化上的衝突. 7.. 顧客資料隱私的維護. 立. 2006). 政 治 大 (Olson & Olson,. 分散式環境必須注意的重點:. ‧ 國. 學. 1.. 協同準備 (Collaboration Readiness):. 2000). 淺層意涵是群組軟體科技的使用,深層意涵是能. y. Nat. sit. 軟體開發架構。. n. al. er. 共同基礎(Common Ground). io. 2.. Ch. i Un. v. 正式與非正式的溝通及知識上的交流,資訊與知. engchi. 識在分散的地點也能流通順暢。 3.. 工作耦合(Coupling in Work) 人力資源分工的機制,軟體功能的模組化及開發 團隊的模組化。. 4.. ‧. 在地理上分散的團隊間,快速建立整體的目標及. 科技準備 (Technology Readiness) 科技基礎建設的監控及持續的改善,協同科技的 使用功效取決於組織政策及獎勵措施,及員工對 這些科技的瞭解程度。. 13.

(25) 2.2 軟體開發流程演進 軟體開發的流程,或稱軟體工程,定義為「以工程化的方法,從一個抽象的 『問題』,推導或創造出具體的軟體『解答』」(鄭炳強, 2007),也就是一個解決問 題的過程。然而軟體開發是一項高風險及高難度的活動,即使軟體開發已有超過 五十年的歷史,所謂的「軟體危機(Software Crisis)」還是不斷的出現在現今的軟體 開發活動中,包括開發預算的低估、開發時程的延宕、軟體品質表現不佳或軟體 不符顧客需求等(Ågerfalk & Fitzgerald, 2006)。 軟體開發流程經過不斷的演進,從最早期的系統開發生命週期法(Software. 政 治 大. Development Life Cycle, SDLC),到最近逐漸興盛的敏捷開發方法(Agile. 立. Development Method),在方法的本質及特色上有著非常大的轉變,學者鄭炳強(2007). ‧ 國. 學. 將這段發展的歷史劃分為三個階段,從最原始的線性流程,轉變至多循環流程, 以至現在新興的敏捷開發方法,學者 Harris, et al.(2009)甚至認為,軟體開發的過程. ‧. 就像是一場藝術表演,從不斷的創意中,設法得到一個成功的結果,不同開發方. Nat. sit. y. 法就好比不同類型的表演形式,最後結果都是希望觀眾或顧客能滿意。以下針對. n. al. er. io. 軟體發展演進的驅動力量與各階段發展的過程及特色進行介紹。. 2.2.1 演進的驅動力量. Ch. engchi. i Un. v. 除了全球化之外,快速變動的商業環境是目前軟體產業所面臨的最大挑戰之 一,使用者需求隨著不斷變動及難以預測的商業環境而跟著改變(Ågerfalk & Fitzgerald, 2006; G. Lee & Xia, 2005; Maruping, et al., 2009),改變的速度變得越來越 快速,甚至緊繃,促使軟體開發方法的改變及演進,需要更快的開發速度以面對 不斷變化的需求(Fitzgerald, 2000),無法回應使用者需求的改變意味著專案的失敗 (Maruping, et al., 2009),因此驅動軟體開發流程不斷演進的力量,就是隨著激烈競 爭時代,不斷改變的環境及使用者需求。. 14.

(26) 2.2.2 線型流程 線型流程(Linear Process)意指軟體開發隨著階段劃分,循序進行,在完成前一 階段後,再進行下一步驟(鄭炳強, 2007)。就如同蓋房子,先從基地開始,然後是 模板工程、室內裝修等,一旦進入下一個階段,就不再回頭。在需要嚴格控管預 算或時程限制,以及高品質且穩定結果的軟體需求,通常會使用這種強調管理控 制的開發流程,控制通常是藉由完整的時程規劃、完善需求及架構的分析設計, 期望透過事前的詳細規劃,使得軟體開發能夠以非常平順的腳步逐步前進(Harris, et al., 2009)。此一流程之所以至今仍被採用,最主要的原因是,這個模型最簡單,. 政 治 大. 並且在管理上易於計劃與管控。由於非常重視事前的規劃活動,因此線性流程又. 立. 稱為「規劃導向(Plan-Driven)」的開發方法(B. Boehm, et al., 2002; Harris, et al.,. ‧ 國. 學. 2009)。. 然而線性流程最大的問題,是必須在軟體開發初期就釐清顧客需求,在這種. ‧. 情況下,開發者較缺乏彈性,在開發過程中要進行任何變更也較困難(Harris, et al.,. Nat. sit. y. 2009),此外,軟體的不可見性是此一流程會面臨的風險,因為到最後軟體產出之. n. al. er. io. 前,流程個階段的成果很難被確實驗證,因為在流程中並無顧客對於開發產出之. i Un. v. 回饋階段,因此前一段的錯誤很可能被帶到下一階段,並產生連鎖效應,使錯誤. Ch. engchi. 越滾越大,造成軟體開發後期極大的問題(鄭炳強, 2007)。. 2.2.3 系統開發生命週期法 線型流程的代表實務範例即為瀑布模式,或稱系統開發生命週期法(Software Development Life Cycle, SDLC),由學者 W.Royce (1970)首先提出,其執行程序與 原則,強調把系統開發的過程分成「幾」個階段,如圖 2.2-1 所示,每個階段清楚 定義要做哪些工作及交付哪些文件,各階段循序執行且僅循環一次,適用於低風 險的專案,例如發展期間需求可清楚及完整表達、需求改變機率較低、問題領域 知識較易取得等,但因系統開發週期較長,且過程中使用者參與不足,例如使用 15.

(27) 者僅在一開始的需求階段及最後的安裝階段參與,使其風險較高,另外過於強調 完整的分析與設計文件,一旦需求變更,文件便需大幅修改,缺乏彈性及應變能 力(吳仁和 & 林信惠, 2007)。. 可行性分析 需求分析 系統分析 系統設計 測試 維護. 學 圖 2.2-1 系統生命開發週期法. ‧. ‧ 國. 立. 政 治 大. 資料來源:修改自吳仁和&林信惠(2007). sit. y. Nat. io. n. al. er. 2.2.4 多循環流程. i Un. v. 多循環流程(Iterative Process) 根本上打破傳統線型流程的思維,並不要求每一. Ch. engchi. 階段都要執行完畢才進入下一階段,所有流程階段都可被重新進入,由於完成的 每一部分,後續發展都必須建立在之前所打下的基礎上,因此其核心強調,在缺 陷或瑕疵可能導致重大災害及失敗前,提早被發現出來 (鄭炳強, 2007)。 軟體開發流程發展至此,逐漸開始重視彈性及風險,利用不斷的循環與逐漸 擴大的方式,於每次循環加入里程碑(Milestone)的機制,從專案利害關係人 (Stakeholder),包括開發者、顧客或合作單位等,確認系統開發的可行性與實際可 落實的程度,並從風險的角度出發,採用適當的開發方式,避免採用不可行的方 案導致專案的失敗或徒勞無功的窘境(鄭炳強, 2007)。由於風險在此流程中扮演重 要角色,因此多循環流程又稱做「風險導向(Risk-Driven)」的開發方法(B. Boehm, et 16.

(28) al., 2002),以螺旋模式(Spiral Model)及 Rational 統一流程模式(Rational Unified Process, RUP)為實務範例。. 2.2.5 Rational 統一流程模式 Rational 統一流程模式為多循環流程的實務代表,以反覆與漸增的軟體發展方 式進行開發,並在每一次反覆週期評估風險,以儘早發現問題,反覆發展指在重 複使用相同一系列的操作或步驟進行軟體開發,漸增指每一次都在軟體產品上增 加新功能、模組、元件或子系統等(Kruchten, 2003)。 Rational 統一流程模式可由動態與靜態兩個構面來說明軟體開發專案的實施. 政 治 大. 階段與核心工作,如圖 2.2-2 所示,水平軸代表動態面,主要依照專案週期之時程. 立. 劃分為初始、詳述、建構及轉移等階段,垂直軸代表靜態面,表達開發活動所需. ‧. ‧ 國. 量或比率。. 學. 之核心工作流程,水平與垂直交叉格上的圖形面積代表其所對應工作之估計工作. n. er. io. sit. y. Nat. al. Ch. engchi. i Un. v. 圖 2.2-2 Rational 統一流程模式 (Kruchten, 2003) 綜合以上,Rational 統一流程模式一開始即清楚定義軟體開發各階段的核心工 作流程及階段,透過不斷的反覆與漸增進行,並強調儘早處理風險問題,且不需 17.

(29) 假設在專案的起始階段需有清楚且完整的需求(吳仁和 & 林信惠, 2007),透過適 量的文件及專案管理,使得軟體開發相對於傳統的系統開發生命週期法較具彈性 (B. Boehm, et al., 2002),用一句中國經典名句描述風險導向的開發方法,就是不要 「為賦新詞強說愁」─辛棄疾〈醜奴兒〉。. 2.2.6 敏捷開發方法 隨著資訊科技的發展、商業環境的快速變化,軟體開發者必須不斷面對越來 越急迫的需求改變,並設法使軟體開發方法具有彈性,讓軟體開發的過程變得更 有效率,這些方法就稱為敏捷開發方法(Agile Development Method)(Maruping, et al.,. 政 治 大. 2009),具有彈性的意義就在於有能力回應改變,包括需求、預算、時程及風險上. 立. 的改變(Harris, et al., 2009)。. ‧ 國. 學. 敏捷開發方法為近年來興盛之軟體開發方法,許多學者對於其特性及定義都 做出了描述。敏捷開發方法被認為企業在面對未預期的改變時,能夠從威脅的環. ‧. 境中存活下來,並將改變轉換成為機會的能力(Holmstrom, et al., 2006; Sarker, et al.,. Nat. sit. y. 2009),對於傳統重量級、規劃導向的軟體開發方法,以及對複雜、龐大文件的持. n. al. er. io. 續不滿意,使得一些較輕量級的敏捷開發方法,如 XP、Scrum 的出現(Fruhling & De. i Un. v. Vreede, 2006; Yadav, et al., 2009),實務導向的敏捷方法利用溝通、彈性及創新的團. Ch. engchi. 隊合作,解決以往經常超出預算及品質不良的問題(Ågerfalk & Fitzgerald, 2006), 在顧客需求經常性改變的情況之下,敏捷方法提出對此情形的解決方案(Yadav, et al., 2009),它鼓勵專案人員利用非正式的溝通,排除不必要的規劃活動及僵化的流 程(Balasubramaniam, et al., 2006),專注在快速的開發、需求的動態管理及迅速的反 覆與漸增(Fruhling & De Vreede, 2006),不將時間耗費在對軟體生產力較無貢獻的 流程改進,轉而重視顧客的滿意及員工的授能(Batra, 2009),相對於以往較沒效率 的、反應速度較慢且較官僚式的開發模式,形成一個與以往觀念截然不同的開發 方法,甚至有學者認為,傳統結構化的開發模式已無法應付於當今動態、多變的 環境(Batra, 2009; B. W. Boehm & Turner, 2003)。歸納以上觀點,敏捷開發方法是一 18.

(30) 種人本導向、溝通導向、具有彈性、快速反應及輕量的軟體開發方法(Qumer & Henderson-Sellers, 2008)。敏捷開發方法與傳統開發方法的比較如表 2.2-1 所示: 表 2.2-1 傳統開發方法與敏捷開發方法之比較 (B. Boehm, et al., 2002; Yadav, Adya, Sridhar, & Nath, 2007; Yadav, et al., 2009) 傳統開發方法. 敏捷開發方法. 系統需求清楚明確,透過結 透過頻繁的溝通及輕量開發 基本描述 以滿足需求多變的環境. 1.. 流程導向. 1.. 人本導向. 2.. 密集的文件,缺乏溝通. 2.. 密集的溝通,缺乏文件. 3.. 密集的里程碑規劃. 立. 政 治 大3.. 正式溝通管道. 非正式溝通管道. (Ex: 正式會議、合約). (Ex: 面對面溝通). 大團隊 (>10 人). 小團隊 (<10 人). 1.. 1.. y. 核心知識. 動. 固定且詳細描述的需求. n. al. Ch. 規格書. 快速的反覆、漸增及變. engchi. 2.. 從每次反覆開發的回饋. er. ‧ 國. io 2.. 穩定與充足的開發相關. ‧. Nat. 專案需求. 學. 溝通管道 團隊大小. 快速回應需求變動. sit. 專案特色. 構化及流程導向的方式進行. i Un. v. 中,滿足需求的改變. 敏捷開發方法並無一個完整且公認的定義,但被廣泛認知為一個輕量級的軟 體開發方法,本身包含許多面向(Sarker, 2009),提倡此方法的學者 Kent Beck, et al. (2001)為此建立一個敏捷軟體開發宣言網站(Manifesto for Agile Software Development),簡單明瞭的說明敏捷開發方法最主要、最核心的開發理念與價值觀, 其中包含四個概念,中文翻譯則引用自學者吳仁和(2010): 一、個體與互動勝於流程與工具 Individuals and interactions over processes and tools 二、可運作的軟體勝於全面性的文件 19.

(31) Working software over comprehensive documentation 三、與客戶的協同合作勝於契約談判 Customer collaboration over contract negotiation 四、因應變化勝於遵循計畫 Agility in responding to change over following a prescribed plan 學者一般指出敏捷開發方法的發展是實務領先研究(Ågerfalk & Fitzgerald, 2006; Fruhling & De Vreede, 2006; Yadav, et al., 2009),近年來逐漸有學者對於敏捷 開發方法進行實證研究,並且認為其對軟體開發品質有正面影響(Maruping, et al., 2009),由於敏捷開發方法預期到需求的改變是無可避免,因此當需求變動真的發. 政 治 大. 生時,才能夠有效管理及應對(K Beck, 2004)。. 立. 關於敏捷開發方法之定義描述相關文獻彙整如表 2.2-2 所示:. ‧ 國. 學. 表 2.2-2 敏捷開發方法定義 資料來源:本研究整理. ‧. 定義. y. Nat. (Meredth & Francis,. n. er. io. sit. 敏捷性的概念最先出現在製造業。. al. Ch. 作者. i Un. 2000). v. 敏捷性被定義為企業在面對未預期的改變時,能夠從威 (Holmqvist & Pessi,. engchi. 脅的環境中存活下來,並且將改變轉換成為機會。. 2006). 為了因應急速變動的使用者需求,設計科學及軟體工程 (Maruping, et al., 社群提出了一套彈性的技術,即敏捷開發方法,給予軟 2009) 體開發團隊面對使用者需求變動的能力。 實務導向的敏捷方法,利用溝通、彈性及創新的團隊合 (Ågerfalk & 作,解決以往經常超出預算及品質不良的問題。. Fitzgerald, 2006). 目前軟體開發正興起一股敏捷開發的風潮,它鼓勵專案 (Balasubramaniam, 人員利用非正式的溝通,排除不必要的規劃活動以及固 et al., 2006) 定的流程需求。 20.

(32) 前所未見的複雜流程與龐大文件促使了敏捷開發方法的 (Fruhling & De 發展,專注在快速的開發、需求的動態管理與快速的反 Vreede, 2006) 覆及漸增,如 XP、Scrum 的出現。 敏捷開發方法不再專注於流程的改善,而是強調顧客滿 (Batra, 2009) 意及員工授能。 敏捷開發方法是一種人本導向、溝通導向、彈性、快速 (Qumer & Henderson-Sellers,. 反應及輕量的軟體開發方法。. 2008) (Sarker, et al., 2009). 敏捷方法在資訊系統開發中的定義:. 政 治 大. 對於環境的感知能力. 2.. 對於未預期事件的反應能力. 3.. 對於輕量級開發方法的使用. ‧ 國. 立. 學. 1.. (Holmstrom, et al.,. 敏捷方法專注在與顧客的協同互動、快速回應需求改. ‧. Nat. io. sit. 滿足顧客需求與產業對輕量且快速開發方式的需求。. y. 變,並致力於軟體開發本身而非開發流程,目的是為了 2006). n. al. er. 雖然是一套新的開發方式,但其具體的實踐來自於許多 早已存在的方法。. Ch. engchi. i Un. v. 不像傳統流程導向的方法,敏捷方法利用人的創意及創 (Cockburn, 2002) 造力來克服未預期的狀況,而非制式化的流程。 敏捷開發方法與傳統的開發方法目的都是為了要設法解 (Yadav, et al., 2007) 決問題,關鍵的不同就在於敏捷方法專注在不斷改變的 使用者需求。 敏捷方法是一個採用簡短且反覆循環的輕量開發流程, (B. Boehm & Turner, 仰賴團隊的知識與技術互動而非文件,並利用使用者的 2005) 回饋確認需求。. 21.

(33) 2.2.7 極限編程 敏捷開發方法的概念逐漸形成,實務上也發展出許多實踐敏捷開發核心價值 的方法,最常被討論及使用的就是極限編程(eXtreme Programming, XP)(Holmstrom, et al., 2006),它不是一種全新的開發方法,而是將過去許多著名的軟體工程實務結 合進而實現敏捷開發(K Beck, 2004),其特性完全與敏捷開發方法相符合,是一套 輕量級的軟體開發方法論,刪除許多「重裝」流程所要求的,例如不必要的文件 或產出。面對需求快速變動的環境,強調「適應」勝於「預測」 ,適時、適當及少 量的計劃與設計,勝於事前詳盡的規劃與安排,並將軟體開發視為人與人的合作,. 政 治 大. 強調人本導向勝於流程導向(鄭炳強, 2007)。. 立. 極限編程的十二項實踐方法包含三個面向,程式設計、軟體開發及專案管理,. 表 2.2-3 極限編程的十二項實踐 資料來源:彙整自鄭炳強(2007). y. Nat. 方法描述. n. al. (Test-driven). 程式設計. er. io. sit. 方法名稱. 測試驅動. ‧. ‧ 國. 學. 如表 2.2-3 整理所示:. iv n C「先測試,再編碼」 ,先撰寫測試個案,再進行程 hengchi U 式編碼,直到通過所有測試個案。透過不斷的測. 試,給予開發團隊及客戶信心及修改系統的勇氣。 搭配編程 (Pair programming). 兩人共用一台電腦、一個鍵盤與滑鼠,所有程式有 兩人共同創作,是一種非正式的同儕評審(pair review)。搭檔編程比兩個獨立工程師加總的生產力 來得高。. 簡單設計. 因為需求變化快速,為了減少變動所帶來的損失,. (Simple design). 僅進行最少且最必要的系統設計。同時由於對問題. 22.

(34) 的瞭解不夠,因此在過渡階段,詳盡的設計是無意 義的。 程式重構. 指在不改變系統行為的前提下,重新調整、優化系. (Program refactoring). 統內部的結構,以減少複雜度、消除冗餘,增加靈 活性及提高系統的性能。與簡單設計是兩項互相搭 配的實踐。 軟體開發. 系統隱喻. 利用隱喻取代事先詳細的架構設計。隱喻給予團隊. (System metaphor). 一個共同的圖像,描述既存系統如何運作,以及未. 政 治 大. 來的發展方向,能讓每一個人都了解系統如何組裝. 立 與運作才是最重要的關鍵。. ‧ 國. 學. 每位成員都有權利更改任何的程式碼,並對所有的. (Collective ownership). 程式共同負責。若某人程式碼有誤,而另一個人知. ‧. 集體擁有. 道了,就應該協助修改。. y. Nat. 持續整合. (Continuous integration). n. al. 編碼標準 (Code standards). 頻繁的整合會使團隊隨時擁有一個最新、穩定的版. er. io. sit. 在通過單元測試後,一天之中多次進行系統整合。. i n C本可以參考。 U hengchi. v. 為減少不必要的文件,儘量透過程式本身進行溝 通,因此編碼規範就變得很重要。編碼標準讓程式 碼保持一致性,並且容易閱讀與重構。 專案管理. 小型發布. 很快地先開發出一個簡單、可運作的系統,每隔一. (Small release). 個短時間的循環,發布更新版本,提供顧客測試與 使用,也更易於掌握軟體開發的真實進度。. 計畫遊戲. 因為計劃如此重要,所以隨時都得做計劃。分為發. 23.

(35) 布計畫(release plan)及循環計畫(iteration plan),發. (Planning game). 布計畫決定下次要完成哪些需求,由顧客及開發者 共同決定。循環計畫則只有開發者參加,主要決定 該循環所要執行的任務分派。 一個團隊. 強調顧客隨時可以被接觸到,亦即顧客應在開發團. (One Team). 隊旁邊,或開發者留在顧客的旁邊,以便隨時可以 接觸與討論。. 持久步調. 強調工作品質與符合人性,因此不加班、不超時工. (Sustainable pace). 作是其實踐的一部分。. 立. 政 治 大. 除了極限編程外,尚有其它敏捷開發方法如 ASD(Adaptive Software. ‧ 國. 學. Development)、Scrum、Crystal Clear、FDD(Feature Driven Development)、. ‧. DSDM(Dynamic System Development Method)、Agile Modeling、Lean Software Development 與 AUP(Agile Unified Process)等(鄭炳強, 2007)。. sit. y. Nat. n. al. er. io. 2.3 敏捷開發方法與軟體全球開發環境的衝突. Ch. i Un. v. 全球化使得軟體開發分散於不同地區,甚至跨越國界,形成軟體全球開發的. engchi. 環境;隨著快速演進的商業環境,使用者需求經常性變動成為常態,為了應付此 現象,軟體開發逐漸跳脫以往規劃導向的方式,往風險導向及敏捷開發演進。受 到這些趨勢的影響,軟體開發已朝向在全球開發的環境中導入敏捷開發方法,但 敏捷開發方法與軟體全球開發環境存在著矛盾,許多關鍵要素顯著的不同 (Balasubramaniam, et al., 2006),時空、地理及社會文化上的距離,增加在軟體全球 開發環境下導入敏捷方法的困難度(Yadav, et al., 2007),許多敏捷開發方法中互動 性活動嚴重遞減,因此使得敏捷開發方法的效果受到負面影響(Holmstrom, et al., 2006),在全球分散式的環境下,溝通延遲是採用敏捷開發方法的障礙(Cummings, et al., 2009),分散式環境中存在較特殊的溝通挑戰,文化及語言的障礙阻礙了溝通 24.

(36) (Harris, et al., 2009),因此敏捷開發方法與軟體全球開發環境存在衝突。 首先考慮到溝通,全球分散式的開發環境較難進行即時面對面的溝通,溝通 頻率也顯著遞減,再加上時差的關係,使得溝通成本增加,此外,對語意及文化 上的誤解也是在分散式環境下所形成溝通的挑戰(Ågerfalk & Fitzgerald, 2006; Cummings, et al., 2009);然而對敏捷開發方法而言,溝通方面注重的是非正式溝通 管道,例如非事先預定的面對面口頭溝通,相對於正式的溝通管道,例如白紙黑 字的合約與正式的會議,必須增加非正式溝通的頻率以滿足敏捷開發方法強調的 互動性(K Beck, 2004; Highsmith & Cockburn., 2001)。因此形成溝通的衝突,軟體全 球開發強調利用結構化的開發機制減少溝通,降低距離造成的負面影響,敏捷開. 政 治 大. 發方法強調利用非正式的溝通來取代正式的文件,增加軟體開發的彈性. 立. (Balasubramaniam, et al., 2006)。. ‧ 國. 學. 其次考慮到管理控制,對於開發流程及軟體品質的控制受限於分散式的環境 而無法有效掌握,因此採用固定的合約來限制流程與控制品質(Carmel & Agarwal,. ‧. 2001; C. James & Alpana, 2006);然而敏捷開發方法著重的是輕量級的流程管理,. Nat. sit. y. 透過持續的溝通與互動,使軟體開發成果能夠符合顧客所需,強調軟體開發的主. n. al. er. io. 角為軟體本身與開發人員而非流程(Highsmith & Cockburn., 2001; Qumer &. i Un. v. Henderson-Sellers, 2008)。因此形成在管理控制上的衝突,軟體全球開發強調運用. Ch. engchi. 固定且結構化的合約來管理品質及流程,敏捷開發方法強調利用開發團隊及顧客 的反覆溝通來建立軟體的品質;軟體全球開發通常以固定的流程主導開發工作的 進行,敏捷開發法強調以人本導向而非流程導向進行軟體的開發(Balasubramaniam, et al., 2006)。 最後在團隊合作方面,分散式的環境使得開發團隊彼此間缺乏信任,團隊士 氣較低(Nathan, Shivram, Ravi Sheshu, Manish, & Jamie, 2008);然而對敏捷開發方法 而言,重視的是團隊的合作,透過彼此的信任增加團隊的互動性,使軟體開發的 過程能夠更順暢(K Beck, 2004; Highsmith & Cockburn., 2001)。因此在缺乏團隊氣氛 的環境下,軟體全球開發中的合約通常是具體的目標及里程碑,敏捷開發方法中 25.

(37) 的合約通常是鬆散而非正式的;此外,軟體全球開發較不需要團隊的合作,但對 敏捷開發方法而言,團隊合作是其中重要的元素之一(Balasubramaniam, et al., 2006)。 總結以上,敏捷開發方法與軟體全球開發環境所形成的衝突彙整如表 2.3-1 所示:. 表 2.3-1 敏捷開發方法與軟體全球開發環境之衝突 1 (Ågerfalk & Fitzgerald, 2006; Balasubramaniam, et al., 2006; Highsmith & Cockburn., 2001; Yadav, et al., 2009). 立. 衝突. 1.. 溝通導向. 少、成本增加. 2.. 重視非正式管道的溝. 利用固定的合約控制. 1.. Nat. 軟體開發流程與品質 流程導向. 1.. 因分散而缺乏團隊精. io. 2.. n. al. 神、士氣. 透過與顧客互動控制 軟體開發流程與品質. 2.. 人本導向. 1.. 重視團隊合作與互動. Ch. 管理控制的衝突. sit. 1.. 通互動. er. 語意及文化上的誤解. ‧. 2.. 溝通的衝突. 學. 因距離使溝通機會減. ‧ 國. 1.. 治 政敏捷開發方法特性 大. y. 軟體全球開發環境特性. e性 ngchi. i Un. v. 團隊的衝突. 學者 Batra (2009)也提出了類似的衝突概念,從敏捷開發方法宣言的觀點分析 其與軟體全球開發環境的衝突,整理如表 2.3-2 所示:. 26.

(38) 表 2.3-2 敏捷開發方法與軟體全球開發環境之衝突 2 (Batra, 2009) 敏捷宣言. 與軟體全球開發環境的衝突. 個人化及互動. 1.. 距離的障礙會阻礙溝通及互動的進行. 2.. 非正式的溝通管道在境外開發環境較少使用. 3.. 雙方文化上的衝突影響溝通過程. 1.. 境外開發的環境下,還是需要文件的規範,以. 專注於軟體本身 避免語意上的描述模糊 1. 團隊間的協同合作. 治 政 開發活動的流程細節 大. 境外開發單位或許不歡迎需求的改變,因為改. 學. ‧ 國. 立1.. 一般的境外開發專案還是習慣透過合約去規範. 回應需求改變的敏捷性. 變造成的成本增加需要自行吸收 2.. 境外單位與境內單位溝通上的不易. ‧ sit. y. Nat. n. al. er. io. 2.4 軟體開發方法光譜概念. Ch. i Un. v. 軟體開發方法發展至今,主要的驅動力量就是不斷變動的商業環境,促使其. engchi. 必須考慮到彈性與風險,發展至今,甚至出現了與傳統系統開發生命週期法特性 截然對立的敏捷開發方法,然而開發方法間的界限也越趨模糊,方法與方法間不 再涇渭分明,逐漸發展出軟體開發方法光譜的概念,學者 Barry Boehm, et al.(2002) 指出敏捷開發方法與規劃導向開發方法就是一個「需要多少規畫?」的光譜。在 面對難以掌握的顧客需求及快速轉變的產業環境時,可能出現的解決方案就是在 一個專案中混合採用多種開發方法(B. W. Boehm & Turner, 2003),軟體開發就是不 斷在控制與彈性中取捨的過程(Harris, et al., 2009),開發團隊必須同時擁有敏捷開 發方法的彈性與傳統開發方法的規劃流程,以在當前的環境中取得競爭優勢,獲 得更大的顧客滿意度(Ågerfalk & Fitzgerald, 2006; O. K. Lee, et al., 2006; Yadav, et 27.

(39) al., 2009)。然而在軟體全球開發的環境中,同時融合傳統規劃導向開發方法的嚴謹 與敏捷開發方法的彈性,創造出一個兼具穩固與敏捷(Agile-Rigid)的開發環境,能 夠幫助全球分散式的團隊面對因為距離及工作分離而產生的種種挑戰,減緩在協 同、控制及溝通上產生的風險(Yadav, et al., 2007, 2009)。 以下針對學者所提出的軟體開發方法光譜概念進行文獻彙整。首先是學者 Barry Boehm, et al.(2002)提出的「需要多少規劃?」光譜,如圖 2.4-1 所示,越往 右邊是越嚴格、程度越大、越密集的軟體開發規劃過程,到最極端就是一只固定 的合約,上面詳盡規範了軟體開發的細部流程與應有產出等。越往左邊,規劃活 動則逐漸遞減,分別是運用里程碑當作目標管理的規劃導向模式,接著同樣以里. 政 治 大. 程碑做為管理方式之風險導向模式,如螺旋模式或 Rational 統一流程模式(RUP)。. 立. 隨著規劃活動的減少,進入了敏捷開發法的範圍內,強調的是儘量少量的規劃,. ‧ 國. 學. 例如極限編程。到光譜的最左極端,可謂毫無規劃活動可言,發展出了駭客式的 開發方式,其與敏捷開發方法並不相等,敏捷開發方法的極限編程至少還有十二. ‧. 項實踐方式,有著實際的方法論存在,駭客式的開發方法則是沒有任何規劃活動、. Nat. sit. y. 沒有方法論可言。規劃導向的方法使用嚴格的合約及里程碑限制開發團隊,這些. n. al. er. io. 預先制定好的計畫也是爭執、專案延遲的導因,因此風險導向的開發方法,例如. i Un. v. Rational 統一流程模式(RUP)可做為平衡敏捷與規劃的參考。. 駭客式. Hackers. Ch. engchi. 極限編程. 里程碑式. 里程碑式. (敏捷開發方法). 風險導向模式. 規劃導向模式. XP. Milestone. Milestone. Inch Pebble. (Agile Methods). Risk-Driven. Plan-Driven. Ironbound. Models. Models. Countract. 圖 2.4-1 軟體開發規劃的光譜 (B. Boehm, et al., 2002). 28. 正式合約.

數據

表 2.1-1 軟體開發營運模式象限
圖 3.6-1 干擾變項模型  (Baron &amp; Kenny, 1986)

參考文獻

相關文件

在重工業方面,由於國家經濟的巨幅變化,亞 塞拜然的工業發展在 1995 至 2008 年之間取得重大 成就,1994

參觀藝術家工作室,各組自行設計問題,加上藝術家帶領彩繪 地景藝術的經驗。發現學習效果比在教室更好。當然,出發前 在教室的引導合作學習也是不可忽視的。”理解 感受

一、成績計算:以術科實作及面試之原始分數計算,術科實作成績佔 70%,面試成績佔 30% (術 科實作原始分數*70%+面試原始分數*30%,分數四捨五入至小數點第 2

為配合政府推動六大新興產業及十大重點服務業之發展與開拓就業

勞動部自民國 92 年起推動多元就業開發方案(以下稱本計畫),以民間

勞動部自民國 92 年起推動多元就業開發方案(以下稱本計畫),以民間

5.派發作文時,宜嘉許同學的優秀表現,印發 佳作,於課堂上分析讚賞,鼓勵同學互相 觀摩,並將佳作上載學校網頁,加強學生

5.派發作文時,宜嘉許同學的優秀表現,印發 佳作,於課堂上分析讚賞,鼓勵同學互相 觀摩,並將佳作上載學校網頁,加強學生