Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 3 Agile Development (敏捷開發團隊的關鍵特徵 (Competence : 具有軟體開發經驗, Common…
Chapter 3 Agile Development
何謂敏捷 (Agility)
定義
Effective(rapid and adaptive) response to change
Effective communication among all
stakeholders
:star: (管理者、顧客、使用者)
吸引客戶加入團隊
組織團隊,以整控工作
=> 快速、漸進地交付軟體
Agile Process
說明
由使用者需求描述(場景)所驅動
理解到計畫是短暫的
Delivers multiple
software increments
Adapts as changes occur
特點
Adaptable
: 可以適應轉體開發過程中,各種不可預期的改變
Responsive
: 非常依賴顧客對於prototype的回饋
Incremental
: 重點在於相對短時間內的software increments
敏捷開發團隊的關鍵特徵
Competence : 具有軟體開發經驗
Common focus : 及時交付working software increment
Collaboration : 比傳統方法更加強調團隊溝通
Decision-making ability : 被充分授權決策權力
Fuzzy problem-solving ability : 有辦法即時做出調整
Mutual trust and respect : 強調互相信任
Self-organization : In control of the work it performs
Agile Process Models
:star:Extreme Programming (XP)
Adaptive Software Development (ASD)
Dynamic Systems Development Method (DSDM)
:star:Scrum
Crystal
Feature Driven Development (FDD)
Agile Modeling (AM)
極限編程
(Extreme Programming; XP)
說明
與傳統項目在起始階段就定義好所有需求,再控制變化的方法相比,XP希望有能力在任何階段去適應變化
agile process當中最常用的一種
XP
Planning
建立、評估、重組user stories
評估story、分配
cost
story重組 ->
deliverable increment
建立
user stories
訂下交貨日期的
commitment
first increment後,
project velocity
(第一版所完成的story數目)可協助定義後續的交付日期
XP
Design
遵循
KIS (keep it simple)
原則
鼓勵使用
CRC(Class-Responsibility Collaborator) cards
對於困難的問題,建議建立
spike solutions
— 設計原型
鼓勵
refactoring
(重構) — 內部程序的迭代改進
口訣 : KCSR (
K
IS、
C
RC、
S
pike solutions、
R
efactoring)
XP
Coding
建議在開始cosding前,
建立單元測試
鼓勵
pair programming
:star:(兩個programmer一起替一個story進行coding)
XP
Testing
所有的單元測試應該使用enabling automation的
framewoark
鼓勵
Regression test
(回歸測試) e.g 每天執行
Acceptance tests
(接受測試) : 由顧客定義,執行以評估客戶可見的功能
Scrum
特點
開發工作被切割成
packets
產品在construct的同時,
testing及documentation也on-going
Work occurs in
sprints
(衝刺) 、derived from a 需求的
backlog
(積壓)
meeting時間非常的短,且有時候沒椅子坐
在一個開發時程完成的差不多後,就demo給客戶看
口訣 : 切ㄤ衝短爹
敏捷開發的定義
:star:
以人為核心、迭代、循序漸進的開發方式。
在敏捷開發中,會將一個大項目分為多個可互相聯繫,但也可獨立運行的小項目,並分別完成,在此過程中軟體一直處於可使用狀態
專案的成果,包含計畫與各種需求,都會隨著專案的進行而漸漸完成,而非在一開始就擬定
DSDM
(Dynamic Systems Development Method; 動態系統開發方法)
說明
主要以反覆與漸增的方式進行,並強調使用者在開發過程中的參與
在開發過程中,開發方法會隨需求改變而反覆調整,目的在於準時且於預算內將軟體開發完成