本文為敏捷軟件開發(fā) - 原則、模式與實踐系列的一部分。
本文對應原書第1章和第2章。
敏捷軟件開發(fā)宣言
個體和交互 勝過 過程和工具
可以工作的軟件 勝過 面面俱到的文檔
客戶合作 勝過 合同談判
響應變化 勝過 遵循規(guī)則
敏捷開發(fā)原則
- 我們最優(yōu)先要做的是通過盡早的、持續(xù)的交付有價值的軟件來使客戶滿意
- 即使到了開發(fā)的后期,也歡迎改變需求。敏捷過程利用變化來為客戶創(chuàng)造競爭優(yōu)勢
- 經(jīng)常性的交付可以工作的軟件,交付的間隔可以從幾周到幾個月,交付的時間間隔越短越好。
- 在整個項目開發(fā)期間,業(yè)務人員和開發(fā)人員必須天天都在一起工作
- 圍繞被激勵起來的個人來構建項目。給他們提供所需要的環(huán)境和支持,并且信任他們能夠完成工作
- 在團隊內(nèi)部,最具有效果并且富有效率的傳遞信息的方法,就是面對面的交流
- 工作的軟件是首要的進度度量標準
- 敏捷過程提倡可持續(xù)的開發(fā)速度。責任人、開發(fā)者和用戶應該能夠保持一個長期的、恒定的開發(fā)速度
- 不斷地關注優(yōu)秀的技能和好的設計會增強敏捷能力
- 簡單 - 使未完成的工作最大化的藝術 - 是根本的
- 最好的架構、需求和設計出自于自組織的團體
- 每隔一定時間,團隊會在如何才能更有效地工作方面進行反省,然后相應地對自己的行為進行調整
極限編程實踐
- 客戶作為團隊成員??蛻羰嵌x產(chǎn)品特性并排列特性優(yōu)先級的人。
- 用戶用例。
- 短交付周期。迭代計劃,兩周一個迭代。發(fā)布計劃,6個迭代一個發(fā)布。
- 驗收測試。自動化驗收測試。
- 結對編程。
- 測試驅動開發(fā)。先編寫單元測試,再實現(xiàn)代碼,結果代碼和完整的單元測試集共同形成。有利于重構。
- 集體所有權。
- 持續(xù)集成。
- 可持續(xù)的開發(fā)速度。
- 開發(fā)的工作空間。
- 計劃游戲。開發(fā)提供功能特性工作量列表,客戶按照優(yōu)先級指定本次迭代或發(fā)布的功能特性。
- 簡單設計。
a. 考慮能夠工作的最簡單的設計
b. 你將不需要它
c. 允許犯錯,但只有一次。對于不好的代碼,發(fā)現(xiàn)立刻消除它們。例如重復代碼。 - 重構。重構就是在不改變代碼行為的前提下,對其進行一系列小的改動,旨在改進系統(tǒng)結構的實踐活動。重構是持續(xù)進行的。
- 隱喻。它是將整個系統(tǒng)聯(lián)系在一起的全局視圖。通??梢詺w結為一個名字系統(tǒng),這些名字提供了一個系統(tǒng)組成元素的詞匯表,并且有助于定義它們之間的關系。
完整內(nèi)容請查看敏捷軟件開發(fā) - 原則、模式與實踐系列