[XA]轉:軟體開發方法–XP(eXtreme Programming)編程講義一

來源:互聯網
上載者:User
本文主要討論的主題:

什麼是XP方法? 發展沿革 主要思想 項目應用案例?

 

什麼是XP方法?eXtreme Programming XP 是以開發符合變化的客戶需求的軟體為目標而產生的一種方法, 它的成功得益於它對客戶滿意度的特彆強調,XP 使開發人員能夠更有效響應客戶的需求變化,哪怕在軟體生命週期的後期。 是一種經曆過很多實踐考驗的軟體開發方法. 已經被成功的應用在許多大型的公司,如:Bayeris che Landesbank , Credit Swis s Life,DaimlerChrysler, First Union National Bank, Ford Motor Company and UBS.
發展1990s,Kent Beck and Ward Cunningham together had experienced an approach to software development that made every thing seem simple and more efficient. March, 1996,  Kent started a project at DaimlerChrysler using new concepts in software development. The result was the Extreme Programming (XP) methodology.
 What Kent came to realize is that there are four dimensions along which one can improve any software project, which are Communication, Simplicity, Feedback, and Courage. These are the four values sought out by XP programmers.
The Rules and Practices Planning Designing Coding Testing

PlanningUser stories are written.  Release planning creates the  schedule.  Make frequent small releases.  The Project Velocity is measured.  The project is divided into iterations.  Iteration planning starts each iteration.  Move people around.  A stand-up meeting starts each day.  Fix XP when it breaks.
User stories類似於use cases但不一樣 用於估計release planning meeting的時間 替代詳細的使用者需求規格說明書 由使用者書寫,類似於使用者“情境”,但不局限於介面的描述 沒有技術術語 能夠成為驗收測試的依據
Release planning通過召開 release planning meeting 來制訂一份發布計劃 發布計劃詳細描述使用者所要求的各版本要求,這為後面的反覆項目計劃打基礎
small releases
經常向客戶發布系統的迭代版本 在release planning meeting上確定哪些功能單元對使用者業務有重要影響並可在早期加入到系統中 越晚向使用者介紹系統的重要特徵,開發隊伍所獲得的“搞定”系統的時間就越短。
Project Velocity
項目周轉時間是衡量項目工作進度速度的值。 “負載因子”近期被引進用於項目周期的測量

Iterations

迭代式開發增加了開發過程的敏捷性 將總體進度劃分為一系列長度為1-3周的小的迭代過程. 迭代周期固定且一致,成為項目的“心跳” 。
Iteration planning
在每個迭代的開始召集反覆項目計劃會議,明確本次迭代任務 每次迭代1-3周長 由使用者在 User stories中確定最有價值的特徵作為本次迭代的目標 上次迭代時沒通過驗收測試的特徵應當加入本次迭代
Move people around
讓所有人多掌握技能,避免知識孤島和開發瓶頸 交叉培訓,“結對程式設計” 並非一個人掌握所有的代碼,而是要每個人掌握大多數的代碼,所需要的人員可以隨時被指派到最需要的地方,實現人員的“Server Load Balancer” 每次迭代每個人試圖做系統新的部分,Pair programming 能夠保證這種形式
stand-up meeting
目標:在整個開發組(而非個別開發人員)中進行溝通 每天早上一次站立會議,主要溝通問題、方案,以集中小組注意力 避免了策劃會議的時間 daily stand up meeting 不同於一般浪費時間的會議

Fix XP
一旦破壞了XP流程,就馬上更正! 可根據具體項目制定XP規則,一旦制定就必須執行,直到規則變更 所有人員都明確知曉規則
Designing
Simplicity.  Choose a system metaphor.  Use CRC cards for design sessions.  Create spike solutions to reduce risk.  No functionality is added early.  Refactor whenever and wherever possible.
Simplicity is the Key決不增加沒有列入到進度中的功能 “簡單化”其實並不簡單
system metaphor
為系統選擇一種metaphor使得開發小組能夠為類及方法進行統一的命名. 命名方式易理解.

CRC cards
Class, Responsibilities, and Collaboration (CRC) CRC cards的最大價值在於引導開發人員擺脫過程模型,精確掌握OO技術 CRC Cards 允許所有的人蔘與設計,參與的人越多,就會有更多的好的主意引入
spike solution
s建立關鍵問題解決方案,解決關鍵的技術和設計問題 大多數 spikes可能都不足以得到保持,有可能被丟棄. 但製作SPIKE的目標降低技術風險; 一旦技術困難對系統的開發造成了威脅,立即派一對開發人員關注於該問題一至兩周,以降低潛在的風險

No functionality is
added early切記不要實施你認為日後可能有用的額外特徵 只有10% 的額外特徵會有用 只關注目前進度中所要求的內容
Refactor
whenever and wherever possible隨時隨地可以對已做過的事重新考慮 毫不留情地將設計、編碼簡單化,簡單得足夠容易理解、修改和擴充 所有的事只表達一次 修飾得太好的系統往往到後期趕不上進度要求 CodingThe customer is always available.  Code must be written to agreed standards.  Code the unit test first.  All production code is pair programmed.  Only one pair integrates code at a time.  Integrate often.  Use collective code ownership.  Leave optimization till last.  No overtime.
The customer is
always available隨時能聯絡客戶是XP方法的基本要求之一 XP的所有階段都要求客戶的強參與 最好有客戶派員直接參与開發組 把客戶“吊住”,並將客戶由新手培養成為專家,開發組需要專家
Code must be written to agreed
standards所有代碼必須採用統一標準以便理解 Smalltalk projects : Smalltalk Best Practice Patterns
Code the
unit test first建立單元測試能夠協助開發人員清醒地意識到什麼是真正需要的 需求是由測試活動明確下來的
All production code is
pair programmed所有發布的代碼都由兩個程式員在一台機器上共同開發完成。 結對程式設計的最好方式是兩人共同坐在顯示器前,將鍵盤和滑鼠在兩人之間“滑動”,一人考慮所建立的方法(Method),而另一人同時考慮該方法如何在類中得到更好的體現。 適應結對程式設計需要時間,必須度過開始面臨的尷尬境況
Sequential Integration
每次加入一個模組做整合
Integrate often
開發人員應不斷地將代碼整合到程式碼程式庫中,幾小時一次,絕不超過1天 每個人需要在最後的版本上工作 持續整合能夠在早期避免或發現一些相容性問題。“現在付錢還是以後付更多的錢?”
Use
collective code ownership“集體擁有代碼”鼓勵每個人對項目的所有部分提出新想法 任何開發人員都可改變任何代碼以增加功能、修改錯誤 沒有人會成為變更的瓶頸
Leave
optimization till last在項目快結束之前不要去最佳化 永遠不要試圖猜測系統的瓶頸在哪裡,去度量它、讓系統動起來、修正系統、去讓系統變的更快!

未完請看下文:[XA]轉:軟體開發方法--XP(eXtreme Programming)編程講義二
原文:http://www.sawin.cn/doc/SoftMethod/XP/xp-ppt.htm
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.