4. 2009/11/03
eXtreme Programming
Introduction
敏捷軟體開發流程
XP 是敏捷軟體開發流程 (Agile Process) 的其中一種:
“Agile development uses feedback to make constant
adjustments in a highly collaborative environment.”
(敏捷開發是一個在高度合作的環境中不斷根據回應來
做修正的開發方式) – 《實戰敏捷開發》
「敏捷是一門社會科學。它關注的是如何讓大家像一個
團隊般工作、如何激勵成員、如何相互合作等等。」 -
Ivar Jacobson
實戰敏捷開發 Practices of an Agile Developer (1) 專業態度篇
http://ihower.idv.tw/blog/archives/1750
6. 2009/11/03
eXtreme Programming
Introduction
敏捷開發宣言
2001 年 2 月,在美國猶他州的一個滑雪場,17位軟體開
發方法論的專家,共同發布了「敏捷開發宣言(The
Manifesto for Agile Software Development)」:
個人及互動勝於流程與工具(Individuals and interactions
over processes and tools)
可用的軟體勝於詳盡的文件(Working software over
comprehensive documentation)
與客戶合作勝於合約談判(Customer collaboration over
contract negotiation)
回應變化勝於墨守計畫(Responding to change over following
a plan)
23. 2009/11/03
eXtreme Programming
Introduction
使用者故事 (User Story)
從委託人的觀點出發,描述系統行為的簡短敘述
委託人和程式設計師溝通的媒介
希望由委託人撰寫,而不只是簽名,委託人需要思考他到
底要甚麼
當實作一個使用者故事時,開發者將拜訪委託人面對面討
論詳細的需求描述
委託人定義, 程式設計師建構
可讓焦點放在委託人的需求與利益,而不是技術上的細節
在1~2週內完成
Use cases - User Stories: so precious but not the same ! :
http://www.agile-ux.com/2009/01/23/use-cases-user-stories-so-precious-
but-not-the-same/
35. 2009/11/03
eXtreme Programming
Introduction
XP 12 項實務
程式設計師的福祉 (Programmer welfare)
可持續的步調 (Sustainable pace)
寫程式 (Coding)
委託人要隨時可以聯絡到 (The customer is always available)
先寫單元測試 (Code the Unit test first)
一次只有一組搭檔整合程式碼 (Only one pair integrates code at a time)
直到最後才作最佳化 (Leave Optimization till last)
決不加班 (No Overtime)
測試 (Testing)
所有程式碼必須要有單元測試 (All code must have Unit tests)
所有程式碼必須在發行之前通過單元測試 (All code must pass all Unit tests
before it can be released)
一找到瑕疵就建立測試 (When a Bug is found tests are created before the bug is
addressed (a bug is not an error in logic, it is a test you forgot to write))
經常執行驗收測試並公布結果 (Acceptance tests are run often and the results are
published)