第 1章 為什么需要有計(jì)劃? 1
我們希望始終在做最重要的事情, 能很好地和其他人合作, 并且能快速地對(duì)意外事件作出反應(yīng).
第 2 章 擔(dān)心 7
軟件開發(fā)是有風(fēng)險(xiǎn)的, 有關(guān)人員非常擔(dān)心什么可能會(huì)出錯(cuò). 為了有效地進(jìn)行開發(fā), 我們必須承認(rèn)這一事實(shí)(這些擔(dān)心).
第 3 章 控制軟件開發(fā) 11
我們用開車來比喻開發(fā)軟件. 開車不是簡(jiǎn)單地把車對(duì)準(zhǔn)一個(gè)方向, 然后保持方向不變, 開車需要時(shí)不時(shí)地做些小調(diào)整.
第 4 章 平衡職權(quán) 13
我們的計(jì)劃過程取決于能否明確地把業(yè)務(wù)人員和軟件開發(fā)人員的作用區(qū)分開來. 這樣確保由業(yè)務(wù)人員做出所有的業(yè)務(wù)決策, 由軟件開發(fā)人員做出所有的技術(shù)決策.
第 5 章 概 述 19
XP過程不盡相同, 有的版本需要幾個(gè)月的時(shí)間, 有的需要分為若干個(gè)為期兩周的迭代, 有的需要分為若干個(gè)為期幾天的任務(wù). 計(jì)劃能根據(jù)開發(fā)工作的實(shí)際情況, 把各個(gè)故事(功能集合)分配到不同的版本和迭代中.
第 6 章 任務(wù)太多 23
當(dāng)你超負(fù)荷工作時(shí), 不要想沒有足夠的時(shí)間, 而要想要做的事情太多. 你無法給自己更多時(shí)間, 但是你可以讓自己少做一些, 至少目前如此.
第 7 章 四個(gè)變量 25
我們使用四個(gè)變量來幫助我們考慮如何控制一個(gè)項(xiàng)目:成本. 質(zhì)量. 時(shí)間和范圍. 它們互相聯(lián)系, 但是以奇特的方式彼此影響.
第 8 章 昨天的天氣 33
作為計(jì)劃的基礎(chǔ), 假定你這周要做的工作同上周一樣多.
第 9 章 劃定項(xiàng)目的范圍 37
若要快速知道項(xiàng)目的大小, 請(qǐng)對(duì)計(jì)劃過程進(jìn)行大致的分解.
第 10 章 發(fā)布計(jì)劃 43
在發(fā)布計(jì)劃過程中, 客戶選擇幾個(gè)月的故事, 并且通常集中于公開發(fā)布的那部分.
第 11 章 編寫故事 49
在XP項(xiàng)目中故事是功能的單位, 我們通過交付經(jīng)過測(cè)試并集成的用于實(shí)現(xiàn)故事的代碼來說明進(jìn)度. 故事對(duì)于客戶和開發(fā)人員應(yīng)該是可以理解的. 可測(cè)試的. 對(duì)客戶有價(jià)值的. 并且應(yīng)足夠小以便程序員可以在一次迭代中生成半打故事.
第 12 章 估 算 61
將故事估算建立在已完成的相似故事的基礎(chǔ)之上, 該故事與可比故事花費(fèi)的時(shí)間相同.
第 13 章 對(duì)故事進(jìn)行排序 67
首先執(zhí)行的最重要的故事是那些包含最高商業(yè)價(jià)值的故事, 注意在對(duì)故事進(jìn)行排序時(shí)應(yīng)以技術(shù)依賴關(guān)系為依據(jù). 通常情況下, 依賴關(guān)系的重要性低于價(jià)值的重要性.
第 14 章 發(fā)布計(jì)劃事件 75
各種事情的發(fā)生使得團(tuán)隊(duì)不得不制訂一個(gè)小型的發(fā)布計(jì)劃. 客戶添加和更改故事的優(yōu)先級(jí), 開發(fā)人員對(duì)故事進(jìn)行評(píng)估, 而團(tuán)隊(duì)則應(yīng)注意要做的事情太多還是太少.
第 15 章 第一個(gè)計(jì)劃 79
第一個(gè)計(jì)劃是發(fā)布計(jì)劃中最困難, 精確度最低的部分. 不過好在這樣的計(jì)劃只需制訂一次.
第 16 章 發(fā)布計(jì)劃變化 85
對(duì)發(fā)布計(jì)劃做一些局部的變化就是較短發(fā)行周期. 較長(zhǎng)發(fā)行周期和較短故事.
第 17 章 迭代計(jì)劃 89
每次迭代都是通過將迭代的故事分解為任務(wù)來計(jì)劃的. 任務(wù)是這樣調(diào)度的:讓程序員申請(qǐng)自己想要的任務(wù), 再讓他們?cè)u(píng)估自己的任務(wù), 如有必要, 再重新衡量.
第 18 章 迭代計(jì)劃會(huì)議 93
在迭代開始時(shí), 團(tuán)隊(duì)創(chuàng)建迭代計(jì)劃. 這個(gè)計(jì)劃將迭代分解為幾個(gè)數(shù)天的開發(fā)任務(wù), 每個(gè)任務(wù)都有專門的程序員來負(fù)責(zé).
第 19 章 跟蹤迭代 103
跟蹤者一周檢查兩次迭代的進(jìn)度情況, 看看事情進(jìn)行得如何.
第 20 章 站立會(huì)議 115
每天都開一個(gè)短會(huì), 讓每個(gè)人都知道哪些事情正在進(jìn)行, 哪些還沒有進(jìn)行.
第 21章 可視圖 117
任何人都可以通過查看關(guān)于團(tuán)隊(duì)工作內(nèi)容的一些圖表來了解項(xiàng)目所處的狀態(tài).
第 22 章 處理錯(cuò)誤 123
將錯(cuò)誤修復(fù)安排在故事中, 因此客戶可在修復(fù)錯(cuò)誤和添加更多功能之間進(jìn)行選擇.
第 23章 團(tuán)隊(duì)的變化 127
團(tuán)隊(duì)的改變將如何影響你的計(jì)劃呢?
第 24 章 工 具 131
堅(jiān)持使用簡(jiǎn)單工具, 如鉛筆. 紙和白板. 對(duì)成功而言, 溝通比奇才更重要.
第 25 章 商業(yè)合同 133
如果你準(zhǔn)備用XP來計(jì)劃并執(zhí)行一個(gè)項(xiàng)目, 就要對(duì)傳統(tǒng)的商業(yè)合同稍加調(diào)整.
第 26章 危險(xiǎn)信號(hào) 139
這里有一些我們不只一次見到并希望解決的危險(xiǎn)情況.
第 27 章 你自己的過程 143
不要期望任意兩個(gè)XP會(huì)作完全相同的事, 只要你熟悉了它的基本過程, 就會(huì)使其漸漸變得更加適合你自己的情況.