Agile Software Development

Slides:



Advertisements
Similar presentations
迪士尼公主裙衫变化记. 《白雪公主和七个小孩人》 《白雪公主和七个小矮人》,是世界电影史上第一部长动 画片,也是迪士尼的第一部。《白雪公主》不仅为迪斯尼 带来了第一尊奥斯卡小人,更是拯救迪斯尼于水火的贵 人 —— 在经济大萧条的 1937 年的美国,《白雪公主》为迪 斯尼赚到了 850 万美元,这约等于现在的数亿美元!
Advertisements

index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
如何科学认识风水 主讲嘉宾孙百川 揭开神秘的面纱 揭开神秘的面纱 破除迷信的枷锁 破除迷信的枷锁 还易经本来面目 还易经本来面目 学易用易不迷易 学易用易不迷易.
魏晉南北朝的胡漢融和概況. 北朝的漢胡融和 1) 北朝漢胡 融和的概 況 2) 北魏孝文 帝推行的 漢化措施 及影響 北邊民族徙居中原,由 來已久。自曹魏招用胡 兵始,沿邊胡族內徙日 繁。不少胡族君主更傾 心嚮慕漢族文化,大力 促成胡漢的融和。北魏 推行的漢化措施,影響 尤為深遠。
IT 服务与业务发展融合 王维航 北京华胜天成科技股份有限公司 十分钟的悲剧.
蕭文生 中正大學法律系教授兼法學院院長.  壹、前言  貳、司法院釋字第六八四號解釋  參、大學生之受教權  肆、大學自治之範疇  伍、大學生之其他基本權利  陸、救濟管道之改善  柒、結語.
大陸學歷採認相關問題 楊景堯 淡江大學中國大陸研究所. 學歷採認的定義與範圍 廣義的定義 — 承認學歷 狹義的定義 — 具備任職, 任教, 考試資格 範圍 — 高等教育為主 台灣人取得大陸學歷的採認 大陸人取得大陸學歷的採認 外國人取得大陸學歷的採認.
提昇餐廳供餐品質 及服務滿意度 標竿學習主題 標竿學習計劃排定進度 分析客戶對餐廳供餐滿意度偏低原因:
第八課 謝 天. 第八課 謝 天 作者主旨文章作法 民國 陳之藩 謙卑感 恩,功 成不居 以「謝天」的傳統觀念 為中心,經由疑惑、思 索、領悟三個層次的敘 述,賦予新的意義 ★題目含義:表示對很多「人」的感謝。
蔬菜大觀園 V.S 大家來種菜 蔬菜的外觀及分類  蔬菜是我們常吃的食物,蔬菜的外觀形狀不 同,有各種不同的顏色、形狀、氣味等,嚐 起來的味道也不相同。  蔬菜的營養價值不盡相同,可實用的部位也 不同,有的是根、有的是莖、有的是葉、有 的是花、有的是果實,還有的是種子。  依據蔬菜種類和食用部位的不同,可以將蔬.
政府的权力:依法行使. 政府的权力:依法行使 重庆“最牛钉子户”事件 九龙坡区法院一名张院长称,法院已组织6次调解,有时1天就有2次调解。3月28日下午,九龙坡区委书记郑洪还专门接待吴苹3小时。1日,在法院组织下,拆迁双方基本达成口头协议,今天下午,双方签字生效。按协议,吴苹选择了异地实物安置方案,开发商将其在沙坪坝开发的一处门面房,按同样面积交付吴苹,吴同意此方案.
第八課 馮諼客孟嘗君 謀職達人 來也.
蔬菜大觀園V.S大家來種菜 高雄市楠梓區翠屏國中小教師 林珮如
“腸”保安康 現代人的腸胃保健.
那一段「詩聲戀」的日子 孟令今老師.
獨立國家國協 1.地形 2.氣候 3.產業.
綜合活動領域 教學分享.
诚信人生 ---高二(2)班主题班会.
航向未來 飛揚國際 —關於華航與長榮的財務報表 指導老師: 組員:張甄芸 4A 鄭雅華 4A070079
世界史.
微软项目管理 案例分析.
面对苦难 (约翰福音15:18-16:4) 2/22/15 我们不属世界,神从这世界中拣选了我们,却没有为我们另设一处“世外桃源”,乃是让我们住在地上,以他的信实为粮,以他的生命为光。既然在这被罪玷污的世界中,就会有苦难仇恨,然而它们不能打倒我们,因为它们 无目的 无缘故 无胜算 在世上我们虽有苦难,也可以放心,因为耶稣已经胜了世界。
软件测试技术.
《少年小樹之歌》簡介: 凡是讀過這本書的人 一定永遠忘不了他們是在何年何月何地 還有為什麼買下它的 小樹的讀者們將永遠記得
如果你没法阻止战争,那你就把战争的真相告诉世界
102學年度第二學期 208家長座談會 歐陽美慧.
指 导:高歌老师 责任编辑:汤杰林 杜峥 供 稿:课代表 班委会 团长 栏目创编:张廷信 技术编辑:汤杰林 杜峥 常务编辑:杜峥
第六章 中国公务员制度 干部 VS 公务员.
大陸教育基本現況認識 楊景堯 淡江大學中國大陸研究所.
性別平權.
青龙偃月刀 韩少功. 青龙偃月刀 韩少功 走近作者 韩少功,湖南长沙人。1985年倡导“寻根文学”的主将。1996年出版的长篇小说《马桥词典》。比较著名的有《爸爸爸》、《女女女》等。
彰化基督教醫院 健康檢查科 / 家庭醫學科 吳美鳳醫師
經濟系 在學什麼專業? 經濟學是一門研究人類經濟行為的社會科學 為什麼鑽石會比水貴? 為什麼台灣中央銀行不多印一點台幣, 以增加大家的財富?
公文寫作及實務.
厌讼与好讼:明清诉讼文化面面观 廖华生 江西师范大学历史文化与旅游学院.
解读社会保险.
软件质量保证与测试 第2讲 软件测试的基本概念和方法
屏基醫療財團法人屏東基督教醫院 手術室護理長 莊詩蘋
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
第9章 系統建置.
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
台灣廢物物處理機構 邱騰煥 8 號.
校園霸凌事件處理、申復流程暨狀況模擬 林華杉教官 此範本可作為群組設定中簡報訓練教材的起始檔案。 章節
校務研究能量建立與 在校務上的應用 中原大學機械系 許政行 教授 日期:105年8月25日.
講師: 李智樺 職稱: 架構師 Waveface corp. 崴峰科技
珍惜时间 提高效率 初二1班
SOFTWARE DEVELOPMENT LIFE CYCLE MODELS 5/13/2018.
Topic 06 行銷資訊系統的開發方法.
第一章 軟體工程概論.
JiRA 淘宝 2008年5月.
BizTalk Server 2004.
演講者簡介 陳建村(Teddy Chen),泰迪軟體創辦人,從事敏捷開發顧問與教育訓練服務,著有《笑談軟體工程:敏捷開發法的逆襲》(簡體版《笑談軟體工程:烽煙中的敏捷》)與《笑談軟體工程:例外處理設計的逆襲》等書。陳建村畢業於台北科技大學機電科技研究所(資訊組)博士班,有十九年以上的軟體開發經驗。目前為敏捷顧問與敏捷課程講師,並在台北科技大學資工系研究所擔任兼任助理教授。
看板的魅力 京东商城 敏捷教练 杜伟忠.
Chapter 11 The Software Development Process
黄海波 & 陶万山 with contribution by 劳晖
AIS系統發展生命週期 東吳大學會計學系 謝 永 明.
《软件工程》 学习情境一:客户管理 李祥 信息工程学院.
软件开发与软件工程简介 Brief Introduction To Software Development And Software Engineering
第二章 資訊系統開發模式.
如果你的冰箱中有食物,身上有衣服,有陋室一間,有可睡覺的地方….
2011年教學觀摩會 教學心得報告 共同學科軍訓室馬毓君 2011年4月28日.
地質篇 Unit_04_地質年代.
三步实践“验收测试驱动开发” 让团队交付正确的软件 葛锋 测试自动化教练 诺基亚西门子杭州研发中心.
熊博安 嵌入式系統實驗室 國立中正大學資訊工程學系
訓練法 年度計畫表 橄欖球專長 報告者: 競四四B 羅仕俊.
第 4 章 資訊技術 授課教師:__________ 工業工程與管理概論 陳潭,洪堯勳,姚銘忠,黃欽印 著 前程文化出版.
Module_5_Unit_4_ppt Unit4:非线性系统的描述函数法 东北大学《自动控制原理》课程组.
我會看年曆.
第十章 : 系統建置與運轉 1. 前言 讓系統順利運轉之三類工作 : a) 轉換設計文件成為軟體 : 程式撰寫、軟體測試 、系統安裝
Presentation transcript:

Agile Software Development

前言 速度是企業競爭致勝的關鍵因素,軟體專案的最大挑戰在於 一方面要應付變動中的需求, 一方面要在緊縮的時程內完成專案, 所以軟體團隊除了在技術上必須日益精進,更需要運用有效的開發流程,以確保團隊能夠發揮綜效。這正是 Agile Process (敏捷的軟體開發流程) 於近年來興起的主要原因。

歷史 敏捷軟體開發又稱敏捷開發, 它們的具體名稱、理念、過程、術語都不盡相同,相對於「非敏捷」,更強調 從1990年代開始逐漸引起廣泛關注的一些新型軟體開發方法, 是一種應對快速變化的需求的一種軟體開發能力。 它們的具體名稱、理念、過程、術語都不盡相同,相對於「非敏捷」,更強調 程式設計師團隊與業務專家之間的緊密協作、 面對面的溝通(認為比書面的文檔更有效)、 頻繁交付新的軟體版本、 緊湊而自我組織型的團隊、 能夠很快地適應需求變化的代碼編寫和團隊組織方法,也更注重做為軟體開發中,人的作用。

歷史 2001年初,因觀察到許多的軟體團隊身陷不斷擴大的流程之中的困境,一群業界專家聚集在一起,勾勒出一些能讓軟體團隊迅速工作,以及回應變化的價值觀和原則。他們自稱為Agile Alliance。 之後的七個月裡,他們創造具有價值的聲明,也就是敏捷軟體的開發宣言。

敏捷開發的價值觀 雪鳥會議中共同起草了敏捷軟體開發宣言。 其中最重要的部分就是對一些與會者一致同意的軟體開發價值觀的表述: 個人及互動勝於流程與工具。 可用的軟體勝於詳盡的文件。 與客戶合作勝於合同談判。 隨時應對變化重於墨守計畫。

敏捷開發的12個原則 1.經由及早與持續的交付有價值軟體以滿足客戶需求是我們最優先順序。 2.竭誠歡迎改變需求,甚至以處於開發後期亦然。敏捷流程掌控變更,以維護客戶的競爭優勢。 3.經常交付可用的軟體,頻率可以是數週到數個月,以較短時間間隔為佳。 4.業務人員與開發者必須在專案全程中天天一起工作。

敏捷開發的12個原則 5.用動機強的人來建構專案,給予他們適當的環境,充分的資源,並相信他們可完成工作。 6.開發團隊之內與團隊之間,效率最高效果最佳傳達資訊的方法是面對面的溝通。 7.可用的軟體是最主要的進度量測方法。 8.敏捷開發提倡能持續的開發步調。贊助者、開發人員以及使用者應當能維持一個可以穩定而恆久的步調。

敏捷開發的12個原則 9.持續追求優越的技術與優良的設計,以強化敏捷性。 10.簡單化—如何擴大不需處理之工作的技巧—是不可或缺的。 11.最佳的架構、需求與設計皆源自於自身組織良好的開發團隊。 12.再規律的時間區隔中,開發團隊因應如何變得更有效率,然後據之適當地調整與修整自己的行為。

Agile Process - 敏捷的開發流程 客戶與開發人員形成密切合作的團隊,因為客戶無法於初期定義完整的規格,而開發人員於開發過程中也常常無法知悉外在環境或業務的變動,所以需要兩者密切合作方能開發適用的軟體。 專案最終的目標是可執行的程式,因此所有的中間產品必須經過審慎評估,確認有助於最終目標,才需要製作中間產品。 採用 Iterative 與 Incremental 方式分階段進行,密集 review 是否符合需求。 流程可以簡單,但規劃與執行必須嚴謹。 強調團隊合作,賦予高度的責任,團隊有自主權得以因應變化做調整。

Agile VS. Iterative development 大部分敏捷的方法是共用遞迴開發所強調的方法:在短時間內建置出可釋出的軟體。 敏捷的方法不同於遞迴的方法,軟體被量測的時間是在數週內,而不是數個月內。 有高度密切的合作夥伴。

Agile VS. Waterfall’s model 固定的、沒有彈性的。 很困難去達到互動。 假如說需求沒有完全的被了解,或是可能需要完全地改變專案的需求,瀑布式的model是比較不適合的。 Agile 完整地開發,每少數幾週或是少數幾個月裡可以測試功能。 強調在獲得最簡短的可執行功能的部分,能夠及早給予企業價值。 在整個專案的生命週期裡,可以持續的改善、增加未來的功能。

Agile VS. Cowboy coding Cowboy coding Agile 團隊成員做他們覺得對的事。 常會再評估專案計畫 強調面對面的溝通 使用較少的文件 這會引起使用cowboy coding的人覺得困擾

敏捷的方法 有一些我們已知的敏捷軟體開發方法 Extreme Programming (XP) 極限編程 Scrum Agile Modeling 敏捷建模 Adaptive Software Development (ASD)自適應軟體開發 Crystal Clear and Other Crystal Methodologies 水晶方法 Dynamic Systems Development Method (DSDM)動態系統開發方法 Feature Driven Development (FDD)特性驅動開發 Lean software development 精益軟體開發 Agile Unified Process (AUP)

敏捷的方法 其它的方法 Agile Documentation ICONIX Process Microsoft Solutions Framework (MSF) Agile Data Method Database refactoring 在非軟體活動中,使用敏捷原則的例子 Lean manufacturing

eXtreme Programming XP我們一般稱為極限編程,是最輕量級的開發流程。 最主要的精神是 它強調客戶所要的是 『在客戶有系統需求時,給予及時滿意的可執行程式』,所以最適合需求快速變動的專案。 它強調客戶所要的是 workable 的執行碼,所以把與撰寫程式無關的工作降至最低,並要求客戶與開發人員最好以 side-by-side 的方式一起工作。

XP 開發流程的基本步驟 1. 開發人員隨時可以和客戶進行有效溝通,撰寫 user stories 以確認需求。 2. 簡易快速的系統設計,撰寫獨立的驗證程式以解決特殊困難的問題,找出演算法即可丟棄驗證程式。 3. 規劃多次小型階段的專案計劃,以最快速度完成每一階段的程式交付客戶,客戶負責 Acceptance tests; 4. Coding 前必須完成 Unit Test 與 Acceptance tests 程序,所有模組整合前都須經過 Unit Tests; 5. 開發人員必須快速回應 Bug 與需求變更; 6. 要求二人一組使用一台電腦設計程式,當一人 coding 時,另一人負責思考與設計; 7. 程式必須符合程式規範,並常做程式的重構(Refactoring)。

XP 開發流程的基本步驟 XP 屬於較精簡的流程,於導入應注意幾件事情 1. 最好有顧問給予協助; 2. 持續的 Review; 3. 可適當調整流程,但不可失去其基本精神。

SCRUM 開發流程 SCRUM 開發流程是 Agile Process 的一種,以英式橄欖球爭球隊形 (Scrum) 為名。 基本假設是 『開發軟體就像開發新產品,無法一開始就能定義 Final Product 的規程,過程中需要研發、創意、嘗試錯誤,所以沒有一種固定的流程可以保證專案成功』

SCRUM 開發流程 Scrum 將軟體開發團隊比擬成橄欖球隊, 因此 SCRUM 非常適用於產品開發專案。 有明確的最高目標, 熟悉開發流程中所需具備的最佳典範與技術, 具有高度自主權, 緊密地溝通合作, 以高度彈性解決各種挑戰, 確保每天、每個階段都朝向目標有明確的推進, 因此 SCRUM 非常適用於產品開發專案。

SCRUM 開發流程 以 30 天為一個階段,由客戶提供新產品的需求規格開始,開發團隊與客戶於每一個階段開始時挑選該完成的規格部份,開發團隊必須盡力於 30 天後交付成果,團隊每天用 15 分鐘開會檢視每個成員的進度與計畫,了解所遭遇的困難並設法排除。 SCRUM 與傳統開發流程及專案管理差異較大,於導入時最好有顧問協助。

Scrum構成要素 Product Backlog Sprint 整套專案依照各項 feature、需求的優先性,被切成一個個獨立的工作(Task)。 Sprint 執行Scrum的單位時程,通常是一個月。 Sprint Backlog and Sprint Planning Meeting Sprint 規劃會議裡團隊依照優先性,從Product Backlog裡挑出下個Sprint的Sprint Backlog,還要確認完成這些工作所需的前置作業。 討論重點放在優先性最高的工作上, 並擬出大約的—主要的目標。 Brief Daily Meeting( Daily Scrum) 在Sprint期間,團隊每日的簡短會議(建議不超過15分鐘),主要讓全部成員了解前一日的工作情況及今日的工作。

Scrum構成要素 Sprint Review Meeting Iteration 在Daily Scrum Meeting裡,每個人必須回答三個問題: 昨天做了什麼事? 今天要做什麼事? 工作上是否遇到任何的阻礙或問題 主持者必須快速解決成員所遇到的困難。 Sprint Review Meeting 一個Sprint結束,Review Meeting 通常是對作新功能的demo,會議裡可能有其他部門、主管或是Client參與。但無須把Review Meeting 開得太長或過於正式,只要demo目的達到即可。主持者和參與者可以先檢視整個Sprint是否達成Sprint Goal,整體而言,達成Sprint Goal會比完成Sprint Backlog上每個工作來得意義深遠。 Iteration 重覆以上幾個步驟。

Scrum流程圖

Crystal 具有以下共同特徵的一系列方法學: Crystal 的這些特徵包括: 注重頻繁交付 密切溝通 深思熟慮的改進 經濟合作遊戲模型 所選的優先順序 屬性 原則 示例技術 項目示例

動態系統開發方法(DSDM) 提供了一個用於構建和維護系統的控制項框架,該框架滿足緊急時間限制的要求,而且是成功進行可重複快速應用程式開發 (RAD) 的一劑藥方。 下面列出了 DSDM 的控制原則: 活動用戶必須參與。 必須授權 DSDM 團隊進行決策。 注重頻繁交付產品。 判斷產品是否可接受的一個基本標準是要符合業務目的。 對準確的業務解決方案需要採用迴圈和增量開發。 開發期間的所有更改都是可逆的。 基本要求是高層次的並區分優先順序(以在低優先順序的項目上獲得一定的靈活性)。 在整個生命週期集成測試。 在所有參與者之間採用協作和合作方法是一項基本要求。

自適應軟體開發 ASD強調開發方法的適應性,這一思想來源於複雜系統的混沌理論。 ASD不象其他方法那樣有很多具體的實踐做法,它更側重為ASD的重要性提供最根本的基礎,並從更高的組織和管理層次來闡述開發方法為什麼要具備適應性。

敏捷性的量測 Agility Index Measurements 去幫專案做評分,依據一些敏捷的特徵是否有達成敏捷的特性的總數。 Agility Measurements Index相對於軟體專案的五個維度去做評分。 時間、風險、新穎、效用、交互作用。

敏捷性的評論 包含 缺乏結構與必須的文件 只能採用較資深的開發者來工作 整合不足的開發 要求太多的改變以致於不能被採用,可能會導致更困難的合約談判

結論 Agile Software Development是軟體開發所強調的一個精神,而不是一個方法。 遵循Agile Alliance所提的四個價值觀與12個原則。 最常見的開發方式 XP SCRUM

XP 流程圖