《敏捷方法苗圃》由会员分享,可在线阅读,更多相关《敏捷方法苗圃(277页珍藏版)》请在金锄头文库上搜索。
1、1 1驚濤駭浪!台灣軟體業的險境驚濤駭浪!台灣軟體業的險境台灣工廠外移,國力所繫的代工產業台灣工廠外移,國力所繫的代工產業危在旦夕,舉國寄望軟體業勃然興起,危在旦夕,舉國寄望軟體業勃然興起,但但真相是真相是:軟體業軟體業乩童乩童* *亂舞、神壇遍佈,亂舞、神壇遍佈,導致產業不振!導致產業不振!* * 乩童乩童 指軟體工程師指軟體工程師不做設計不做設計( (切割切割) ),自然無法做,自然無法做單元測單元測 試試,則工作不夠精準,軟體品質不良;但,他能很快做完,則工作不夠精準,軟體品質不良;但,他能很快做完 軟體,又能軟體,又能demodemo,善男信女頂禮膜拜!,善男信女頂禮膜拜!( (其主管
2、當年也是其主管當年也是 乩童,當然不知道要糾正此事乩童,當然不知道要糾正此事) )* * 乩童愈多、愈努力,則產生愈多垃圾乩童愈多、愈努力,則產生愈多垃圾 ( (指無設計、無法指無設計、無法 維修的軟體維修的軟體) ) ;軟體公司如神壇,當然產業就烏煙瘴氣了;軟體公司如神壇,當然產業就烏煙瘴氣了2 23 3敏捷方法苗圃敏捷方法苗圃 座落於座落於: :www.AgileMethod.csie.ncu.edu.twwww.AgileMethod.csie.ncu.edu.tw有有敏捷方法敏捷方法研討會投影片、研討會投影片、上課教材上課教材 ( (內有最內有最 新資料新資料) )、實習教材實習教材、
3、國外論文國外論文、產業體檢產業體檢問卷、經驗心得,問卷、經驗心得,請鑑賞請鑑賞 ! !4 4軟體行銷軟體行銷 vs. vs. 軟體工程軟體工程軟體行銷軟體行銷 - - 找出利基產品、客戶,經營品牌,找出利基產品、客戶,經營品牌,是軟體業最重要的事,是軟體業最重要的事,老闆老闆們靈活地全球找商機們靈活地全球找商機 - - 紅海紅海( (既存市場既存市場) ) 或藍海或藍海( (全新市場全新市場) )行銷行銷 之後,開發團隊之後,開發團隊工程師工程師們快速完成高品質產品,們快速完成高品質產品,這是這是軟體工程軟體工程,才是本課程範圍,才是本課程範圍有人疾呼有人疾呼: : 應行銷某軟體,軟體業就有錢
4、賺應行銷某軟體,軟體業就有錢賺- - 混淆議題了!須深沈反省混淆議題了!須深沈反省 工程缺失工程缺失5 5教材結構教材結構p.7 p.7 觀念觀念 談談 軟體軟體 文化文化 溝通溝通 思考思考p.148 p.148 方法方法 擴充擴充 極限開發法極限開發法 ( (極致工藝法極致工藝法) )(eXtreme Programming, XP) (eXtreme Programming, XP)而得的十一個工序而得的十一個工序 叫叫 myAgilemyAgilep.216 p.216 範例範例 用用 myAgile myAgile 開發的開發的 Java Java 例子例子 p.267 p.267
5、附錄附錄 C#C#單元測試碼單元測試碼6 6觀念觀念7 7資訊資訊 與與 軟體軟體資訊資訊 (information)(information)是真實世界中,是真實世界中,物件物件(object) (object) 與物件之間的關係與物件之間的關係 (relationship)(relationship)的一種抽象概念的一種抽象概念 (abstraction)(abstraction),而這些概念可由,而這些概念可由人腦人腦認知認知 及處理及處理 ( (注意注意: :資訊不是電子的資訊不是電子的 0,10,1) )電腦軟體電腦軟體 (computer software) (computer s
6、oftware) 是一種是一種 特別的資訊特別的資訊 (information)(information),用來描述電,用來描述電 腦系統設計與實作的解決方案腦系統設計與實作的解決方案生產生產電腦軟體的產業就叫電腦軟體的產業就叫: : 軟體業軟體業軟體軟體 (software) (software) 是否僅限電腦軟體?是否僅限電腦軟體?NO! NO! 小說、畫作、舞台劇等,亦是軟體小說、畫作、舞台劇等,亦是軟體8 8創新創新 軟體工程軟體工程 方法方法本課程以創新方法,提升軟體業工程實力本課程以創新方法,提升軟體業工程實力強調強調 綿密的綿密的團隊溝通團隊溝通 ( (組織組織心理學心理學*)*
7、)及及專注的專注的個人思考個人思考* (* (認知心理學認知心理學*)*) 並採並採新的新的 測試帶動法測試帶動法 ( (測試驅動開發測試驅動開發) )(Test-driven development,TDD)(Test-driven development,TDD) * * 軟體與心理學軟體與心理學( (如如 cognitive informatics) cognitive informatics)數學數學 ( (如如 modal logic) modal logic) 相相關關 * * 個人思考是陳教授針對國情而補充的,國外文獻無此個人思考是陳教授針對國情而補充的,國外文獻無此9 9軟體業
8、軟體業 文化最重要文化最重要法國研究者法國研究者 Bossavit * Bossavit * 指出指出: :文化文化 藏於內心無重量藏於內心無重量至輕至輕,卻影響至深,卻影響至深, 所以是軟體業無法承受的輕所以是軟體業無法承受的輕例子例子: :鄉間深夜遇紅燈停車鄉間深夜遇紅燈停車乃乃是發自內心的是發自內心的 文化文化( (紀律紀律) )確實等候確實等候才才可可永永保行車安全保行車安全反之反之 若自以為聰明若自以為聰明 取巧通過取巧通過 看到警察才看到警察才 紅燈停車紅燈停車 某次可能因沒停車而釀成車禍某次可能因沒停車而釀成車禍 造成無法承受的傷害造成無法承受的傷害 * * Bossavit,T
9、he Unbearable Bossavit,The Unbearable LightnessLightness of Programming of Programming ,available at: ,available at: 1010軟體業軟體業 文化最重要文化最重要 (Cont.)(Cont.)Bossavit Bossavit 指出某軟體公司的文化是指出某軟體公司的文化是: :熱熱情情 (passion) (passion) 大膽大膽 (daring) (daring) 華麗華麗 (glamour) (glamour) 這不是好這不是好的文化的文化因因熱熱情情, ,大膽大膽 並不
10、等同並不等同 勇氣勇氣 (courage)(courage) 軟體外表軟體外表華麗華麗 也不等同也不等同 程式品質程式品質 如抽象層次如抽象層次 模組程度模組程度 等等1111奠定奠定 新的軟體業文化新的軟體業文化從前,台灣房子蓋好後常會漏水從前,台灣房子蓋好後常會漏水 - - 需需 ”抓漏抓漏” ” 要請技術很好的師傅,用獨門要請技術很好的師傅,用獨門”撇步撇步”修理漏水,一修再修,住戶很不方便修理漏水,一修再修,住戶很不方便 為什麼不在當初,就把每段落磚塊的漏水為什麼不在當初,就把每段落磚塊的漏水測試測試做好做好? ?營造業長年缺乏紀律使然營造業長年缺乏紀律使然! ! 軟體業亦然,軟體業亦
11、然,不良不良工作文化形工作文化形成成 之後,之後, 寫好的軟體寫好的軟體 ”常漏水常漏水”,用戶很不方便,用戶很不方便 為什麼:不在為什麼:不在 當初當初 就建立正確工作文化,就建立正確工作文化,以以 測試來帶動開發測試來帶動開發 呢呢? ? 文化文化紮根愈早愈好,中學即應進行,紮根愈早愈好,中學即應進行,大一已遲了大一已遲了1212文化是產業基礎文化是產業基礎 但不是產業但不是產業* *舉例說舉例說: : 若故宮博物院視辦特展為文創產若故宮博物院視辦特展為文創產 業業 而以高價門票的收入為產值而以高價門票的收入為產值 則這是膚則這是膚 淺短視而不對的淺短視而不對的 相反的相反的 故宮應收藏更
12、佳精品故宮應收藏更佳精品 並低價或免並低價或免 費供民眾觀賞費供民眾觀賞 以提升人民文化水準以提升人民文化水準 日後日後 才可蘊育出高產值的文創產業才可蘊育出高產值的文創產業 * * 漢寶德漢寶德,”,”當心,文化與產業兩失!當心,文化與產業兩失!”中國時報中國時報, 2009.11.29, 2009.11.29. .1313Agile Agile 文化文化軟體業需軟體業需 快捷週密快捷週密 (agile) (agile) 的文化的文化: :1)1)綿密綿密的團隊的團隊溝通溝通團隊成員隨時隨地面對面快速溝通,團隊成員隨時隨地面對面快速溝通,如如: :架構設計會議架構設計會議2) 2) 專注專注
13、的個人的個人思考思考各成員個人思考每分每秒要專注週密,各成員個人思考每分每秒要專注週密, 如如: :演算法演算法設計設計14141) 1) 綿密的團隊溝通綿密的團隊溝通敏捷方法的重點敏捷方法的重點: :透過開發團隊成員透過開發團隊成員綿密綿密的的溝通,溝通,使開發團隊能因應使開發團隊能因應 變動變動 (being able to support change) (being able to support change)這對任何成員都有效,不限資深成員這對任何成員都有效,不限資深成員下面先談各種溝通管道,找出最佳的管道,下面先談各種溝通管道,找出最佳的管道,再依此設計再依此設計 辦公室佈置辦公
14、室佈置 及及 測試帶動的開發方法測試帶動的開發方法1515Communication Channels Communication Channels 溝通管道溝通管道 A. Cockburn, A. Cockburn, Agile Software Development, p.95,Agile Software Development, p.95,Addison-Wesley, Addison-Wesley, 2002.2002.1616Communication Channels Communication Channels 溝通管道溝通管道(Cont.)(Cont.)上圖上方上圖上方細線
15、有三點細線有三點表示三種表示三種可提問可提問 (Question-and-Answer)(Question-and-Answer) 溝通管道溝通管道: :1. 1.二人傳二人傳 E-mailE-mail2.2.二人通電話二人通電話3.3.二人白板二人白板前前面對面溝通面對面溝通 ( (效果最佳效果最佳) ) 下方粗線下方粗線也有三點,但也有三點,但 不可提問不可提問(No Question-Answer) (No Question-Answer): : 1.1.書面文件書面文件( (效果最差效果最差)2.)2.錄音帶錄音帶3.3.錄影帶錄影帶1717人際溝通的人際溝通的感感覺豐富覺豐富度度( (感度感度) )從面對面溝通從面對面溝通( (具備十一種具備十一種感覺感覺,如視覺、聽覺、信任感,如視覺、聽覺、信任感) )n n刪減刪減 實質接近感度後實質接近感度後 例如例如 視訊連線視訊連線 (video link)(video link)n n刪減刪減 視覺感度後視覺感度後 例如例如 電話電話 n n刪減刪減 聲音感度後聲音感度後 例如例如 e-maile-mailn n刪減刪減 提問感度後提問感度後 例如例如 手寫字條手寫字條n n刪減刪減 所有感度後所有感度後 就是就是: :書面文件書面文件 (p