敏捷方法苗圃.ppt
《敏捷方法苗圃.ppt》由会员分享,可在线阅读,更多相关《敏捷方法苗圃.ppt(311页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、敏捷方法苗圃敏捷方法苗圃驚濤駭浪!台灣軟體業的險境 台灣工廠外移,國力所繫的代工產業台灣工廠外移,國力所繫的代工產業 危在旦夕,舉國寄望軟體業勃然興起,危在旦夕,舉國寄望軟體業勃然興起,但但真相是:真相是:軟體業軟體業乩童乩童乩童乩童*亂舞、神壇遍佈,亂舞、神壇遍佈,導致產業不振!導致產業不振!*乩童乩童乩童乩童 指軟體工程師指軟體工程師不做設計不做設計(切割切割),自然無法做,自然無法做單元測單元測試試,則工作不夠精準,則工作不夠精準(BUG(BUG未除未除;不易閱讀維修不易閱讀維修)軟體品質不軟體品質不良;但他能很快做完軟體並良;但他能很快做完軟體並demodemo,善男信女頂禮膜拜!,善
2、男信女頂禮膜拜!(其主管當年也是乩童,當然不知要糾正此事其主管當年也是乩童,當然不知要糾正此事)*乩童愈多、愈努力,則產生愈多垃圾乩童愈多、愈努力,則產生愈多垃圾乩童愈多、愈努力,則產生愈多垃圾乩童愈多、愈努力,則產生愈多垃圾(指無設計、無法指無設計、無法指無設計、無法指無設計、無法維修的軟體維修的軟體維修的軟體維修的軟體);軟體公司如神壇,當然產業就烏煙瘴氣了;軟體公司如神壇,當然產業就烏煙瘴氣了2 23 3敏捷方法苗圃 座落於:www.AgileMethod.csie.ncu.edu.tw有敏捷方法研討會投影片、上課教材(內有最新資料)、實習教材、國外論文、產業體檢問卷、經驗心得,請鑑賞!
3、4 4軟體行銷 vs.軟體工程軟體行銷軟體行銷軟體行銷軟體行銷 -找出利基產品、客戶,經營品牌,找出利基產品、客戶,經營品牌,是軟體業最重要的事,是軟體業最重要的事,老闆老闆老闆老闆們靈活地全球找商機們靈活地全球找商機 -紅海紅海(既存市場既存市場)或藍海或藍海(全新市場全新市場)行銷行銷之後,開發團隊之後,開發團隊工程師工程師工程師工程師們快速完成高品質產品,們快速完成高品質產品,這是這是軟體工程軟體工程軟體工程軟體工程,才是本課程範圍,才是本課程範圍有人疾呼有人疾呼:應行銷某軟體,軟體業就有錢賺應行銷某軟體,軟體業就有錢賺-混淆議題了!須深沈反省混淆議題了!須深沈反省 工程缺失工程缺失工程
4、缺失工程缺失5 5教材結構p.7 觀念 談 軟體 文化 溝通 思考p.177 方法 擴充 極限開發法(極致工藝法)(eXtreme Programming,XP)而得的十一個工序,叫 myAgilep.266 範例 用 myAgile 開發的 Java 例子p.301 附錄 C#單元測試工具安裝6 6 觀念7 7資訊 與 軟體 資訊(information)是真實世界中,物件(object)與物件之間的關係(relationship)的一種抽象概念(abstraction),而這些概念可由人腦認知及處理(注意:資訊不是電子的 0,1)電腦軟體(computer software)是一種特別的資
5、訊(information),用來描述電腦系統設計與實作的解決方案 生產電腦軟體的產業就叫:軟體業 軟體(software)是否僅限電腦軟體?NO!小說、畫作、舞台劇等,亦是軟體8 8創新 軟體工程 方法本課程以創新方法,提升軟體業工程實力 強調 綿密的團隊溝通 (組織組織心理學心理學*)*)及及專注的個人思考*(*(認知心理學認知心理學*)*)並採新的 測試帶動法測試帶動法 (測試驅動開發測試驅動開發)(Test-driven development,TDD)*軟體與心理學軟體與心理學(如如 cognitive informatics)cognitive informatics)數學數學 (
6、如如 modal logic)modal logic)相相關關*個人思考是陳教授針對國情而補充的,國外文獻無此個人思考是陳教授針對國情而補充的,國外文獻無此 9 9軟體業 文化最重要法國研究者 Bossavit*指出:文化 藏於內心無重量至輕,卻影響至深,所以是軟體業無法承受的輕 例子:鄉間深夜遇紅燈停車乃是發自內心的文化(紀律紀律)確實等候確實等候才可永保行車安全 反之 若自以為聰明 取巧通過取巧通過 看到警察才紅燈停車 某次可能因沒停車而釀成車禍 造成無法承受的傷害*Bossavit,The Unbearable Bossavit,The Unbearable LightnessLight
7、nessLightnessLightness of Programming of Programming,available at:,available at:1010軟體業 文化最重要(Cont.)Bossavit 指出某軟體公司的文化是:熱情(passion)大膽(daring)華麗(glamour)這不是好的文化因熱情,大膽 並不等同 勇氣(courage)軟體外表華麗 也不等同 程式品質 如抽象層次 模組程度 等1111奠定新的軟體業文化從前,台灣房子蓋好後常會漏水從前,台灣房子蓋好後常會漏水 -需需 ”抓漏抓漏”要請技術很好的師傅,用獨門要請技術很好的師傅,用獨門”撇步撇步”修理漏水
8、,一修再修,住戶很不方便修理漏水,一修再修,住戶很不方便為什麼不在當初,就把漏水為什麼不在當初,就把漏水測試測試測試測試做好做好?營造業長年營造業長年缺乏紀律使然缺乏紀律使然!工人訓練不佳工人訓練不佳,工頭監工不嚴工頭監工不嚴軟體業亦然,軟體業亦然,不良不良不良不良工作文化工作文化工作文化工作文化(粗糙粗糙粗糙粗糙,不細膩不細膩不細膩不細膩,精準精準精準精準),造成軟體造成軟體 ”常漏水常漏水”,用戶很不方便,用戶很不方便為什麼:不在為什麼:不在 當初當初當初當初 就建立正確工作文化,就建立正確工作文化,以以 測試來帶動開發測試來帶動開發測試來帶動開發測試來帶動開發 呢呢?文化文化紮根愈早愈好
9、,中學即應進行,紮根愈早愈好,中學即應進行,大一已遲了大一已遲了1212奠定新的軟體業文化(Cont.)陳教授遇過三級木工工班:A級:IKEA工班 有零件工序圖示文件,技術熟練,且會不斷檢查品質,並與在場客戶確認B級:本土年輕工班 技術熟練,但無文件C級:本土年老工班 拼命認真,但品質不行,且工時完全無法預估台灣軟體工班大多屬C級,年輕人應以敏捷工法(可達A級水準)來創業,滿足社會需求 1313文化是產業基礎 但不是產業*舉例說:若故宮博物院視辦特展為文化創意(文創)產業,而以高價門票的收入為產業產值,則這是膚淺短視而不對的 相反的,故宮應低價或免費供民眾觀賞精品,以提升人民文化水準,日後人民
10、才可蘊育出高產值的文創產業*漢寶德漢寶德,”,”當心,文化與產業兩失!當心,文化與產業兩失!”中國時報中國時報,2009.11.29,2009.11.29.1414軟工是軟體業基礎 但不是產業軟體工程(軟工)是任何軟體業都需的工作文化,是軟體業基礎,但軟工本身不是產業 例子:電信軟體是電信領域的軟體業的產品,當某開發團隊做某電信軟體專案時,該團隊的工作方式,特別是溝通方式,就是該專案的軟工1515Agile 文化 軟體業需軟體業需 快捷週密快捷週密 (agile)(agile)的文化的文化:1)綿密的團隊的團隊溝通 團隊成員隨時隨地面對面快速溝通,團隊成員隨時隨地面對面快速溝通,如如:架構設計
11、會議架構設計會議架構設計會議架構設計會議 2)專注的個人的個人思考 各成員個人思考每分每秒要專注週密,各成員個人思考每分每秒要專注週密,如如:演算法演算法演算法演算法設計設計設計設計 16161)綿密的團隊溝通 敏捷方法的重點敏捷方法的重點:透過開發團隊成員透過開發團隊成員綿密的溝通,溝通,使開發團隊能因應使開發團隊能因應 變動變動 (being able to support change)(being able to support change)這對任何成員都有效,不限資深成員這對任何成員都有效,不限資深成員 下面先談各種溝通管道,找出最佳的管道,下面先談各種溝通管道,找出最佳的管道,依
12、此設計依此設計 軟體公司佈置軟體公司佈置軟體公司佈置軟體公司佈置 及及測試帶動的開發方法測試帶動的開發方法測試帶動的開發方法測試帶動的開發方法1717Communication Channels 溝通管道A.Cockburn,A.Cockburn,Agile Software Development,p.95,Agile Software Development,p.95,Addison-Wesley,2002.Addison-Wesley,2002.1818Communication Channels 溝通管道(Cont.)上圖上方細線有三點細線有三點表示三種可提問(Question-and
13、-Answer)溝通管道:1.二人傳 E-mail 2.二人通電話 3.二人白板前面對面溝通面對面溝通(效果最佳)下方粗線下方粗線也有三點,但 不可提問 (No Question-Answer):1.書面文件(效果最差)2.錄音帶3.錄影帶1919人際溝通的感覺豐富度(感度)從面對面溝通從面對面溝通(具備十一種具備十一種感覺感覺,如視覺、聽覺、信任感,如視覺、聽覺、信任感)n n刪減刪減 實質接近感度後實質接近感度後 例如例如 視訊連線視訊連線 (video link)(video link)n n刪減刪減 視覺感度後視覺感度後 例如例如 電話電話 n n刪減刪減 聲音感度後聲音感度後 例如例
14、如 e-maile-mailn n刪減刪減 提問感度後提問感度後 例如例如 手寫字條手寫字條n n刪減刪減 所有感度後所有感度後 就是就是:書面文件書面文件書面文件書面文件 (paper or document)(paper or document)(paper or document)(paper or document)Document communicationDocument communication 文件文件文件文件溝通溝通溝通溝通 效果最差效果最差效果最差效果最差 (傳統軟工用傳統軟工用的方式的方式)Face to face communicationFace to face c
15、ommunication 面對面溝通面對面溝通面對面溝通面對面溝通 效果最佳效果最佳效果最佳效果最佳 (本課程本課程用用的方式的方式)2020Document CommunicationFace to Face Communication軟體工程的大進步2121Document Communication真相是:有軟體公司寫很多文件(甚至有不通順英文文件,無人看懂)-但乏人閱讀,且讀後是否了解,達成溝通效果-存疑!應設計 command file 用於電子檔文件 自動統計 1)文件閱讀時間 2)讀者了解程度 等當然 完整文件可用於新手訓練 但,典型而簡單的一個專案文件就夠了2222Docume
16、nt Communication(Cont.)例子:台灣某知名軟體公司高層得意的說:員工素質高,所以皆寫英文文件 但是,這些英文文件的溝通力(有無讀者?若有,是否易讀,是否能精準了解)頗令人存疑,更不用說維修力(是否易於修改延伸)了 這些文件恐淪為乩童做秀道具!陳教授因而倡導英詞中句的文件,詳後敘2323何以敏捷方法叫敏捷?因 face to face communication 遠比 document communication(如CMMI*)快速精準 故稱之敏捷 (agile)若用乩童式開發方法 不做設計切割 單元測試 這樣固然可快速 demo 軟體 但常有bugs 品質很差 這不是敏捷*
17、Capability maturity model integrated(CMMI)Capability maturity model integrated(CMMI)是美國是美國 CMU CMU 評鑑軟評鑑軟體公司能力的分級制度體公司能力的分級制度 2424 知道 溝通管道溝通管道 (communication channel)後 談一下 溝通目的溝通目的 (communication purpose)2525溝通目的 依 A.Cockburn,溝通具有三個目的:n n1)inform(告知)告知對方不知想法n n2)remind(提示)提示對方已知想法n n3)inspire(激發)激發彼
18、此不知想法2626溝通的三個例子n n1)寫小說作家常年得各方 inspire 溝通:累積想法作家會記下小扎或拍照(聽說九把刀隨身帶相機)remind 自己想法某夜作家文思泉湧振筆疾書(軟體創作)書成!小說送出版商:inform 出版商小說內容出版商校稿:inform 作家錯字筆誤 2727溝通的三個例子(Cont.)n n2)攀岩 這是Cockburn喜歡舉的例子 攀岩要有體能條件,技術訓練,各式裝備等不是每個人皆可勝任 同理-不是每個人皆可勝任軟體工程師攀岩時不可單飛(類似pair programming)要等同伴的安全信號,才可向上攀,否則粉身碎骨,這需生死與共高度信任感及精準溝通282
19、8溝通的三個例子(Cont.)n n3)編排舞台劇 編劇寫出劇本(是書面文件)導演閱讀後,深受感動,思潮澎湃 (inform&inspire 溝通)經無數次與音樂 佈景 演員 開會及彩排(是面對面溝通,其中不乏拍桌咆哮的溝通)整個流程中,電話 Email不斷(remind 溝通)終於,舞台劇推出,撼動觀眾人心!(軟體成功)2929溝通目的 影響文件依溝通目的的不同,文件須做調整讀者經驗豐富:是remind溝通,文件要精簡讀者經驗不足:是inform溝通,文件要詳細因此,為適應多種讀者,文件應有精簡版 並用 hyperlink 閱讀詳細版又,YouTube 影片是inspire 溝通 可能激發團
20、隊創意3030CMMI and 敏捷方法CMMI Level 2(project management)有助敏捷方法 須實現之CMMI Levels 3,4,5(engineering and process management)則與 敏捷方法 觀點不同*不應進行之*Sison and Yang,Use of Agile Methods and Practices in the*Sison and Yang,Use of Agile Methods and Practices in the Philippines,Asian Pacific Software Eng.Conf.(APSEC)
21、,Philippines,Asian Pacific Software Eng.Conf.(APSEC),Nagoya,Japan,2007.Nagoya,Japan,2007.3131CMMI and 敏捷方法(Cont.)有CMMI level 5 公司指出*:可保有 CMMI levels 2&3 的 goal and practice,但用 agile implementation of the practices.例如:用check list 以面對面溝通來 validate goals,可減量文件.這是很可行的.*Jacobsen et.al.,Mature Agile with
22、a Twist of CMMI,*Jacobsen et.al.,Mature Agile with a Twist of CMMI,Agile 2008.Agile 2008.本苗圃本苗圃”論文選讀論文選讀”有收錄本文有收錄本文3232CMMI and 敏捷方法(Cont.)XP 2010 業界最佳報告(Best Experience Report*)中,一家 Norway 軟體公司指出:敏捷方法要轉為以文件(work item)工作流(work flow)為主;而非以 time-boxed iteration(以時程框架的回合)及各人工作為主.這是CMMI與敏捷方法的磨合:鐘擺略為擺回CM
23、MI了,巧合的是:陳教授myAgile 倡導增設計草圖,虛擬碼兩文件*J.O.Birkeland,“Moving to Flow-based*J.O.Birkeland,“Moving to Flow-based Software Development,Software Development,XP 2010,Norway.XP 2010,Norway.3333敏捷方法 減少文件n n傳統軟工CMMI採工廠思維:視軟體工程師為被動的工人,故訂出很多考核評量辦法n n台灣學生從小應付考試,很被動的n n相反的,敏捷方法則:提升為主動負責的人(改造的生命 changed human life),
24、所以辦法(及相關文件)就消失了n n例子:如要考核 pair programming,則 工程師每天要寫報告,秘書每週做報表,經理每週審閱報表3434敏捷方法 減少文件(Cont.)n nCMMI 與 極限開發法(Extreme Programming,XP)可謂連續光譜兩端點的極端 而光譜中間是二者相混合的 n n隨著人員面對面溝通能力逐漸提升 文件活化簡化了 文件量逐漸減少(決非強制消去文件)專案逐漸由一端 CMMI 轉為另一端 XP 這中間的任何點都算是敏捷方法 3535敏捷方法 減少文件(Cont.)n n這兒有一點要深思:如果大家只在同一房間不斷溝通 但各人內心無深入思考 則仍不可能
25、產出優良產品的3636Agile Method vs.Agile ProcessMethod 指的是軟工使用的符號 如 Object-oriented(O-O)Method Process 則是執行 method 的方式 如 面對面方式 所以,嚴格說 Agile Process*才對 但大家習慣稱 Agile Method 本教材也依此*歐洲知名的歐洲知名的 XP 200X conference XP 200X conference 就叫就叫 Agile Processes in Agile Processes in Software Engineering and eXtreme Progr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 敏捷 方法 苗圃
限制150内