敏捷估计与规划

敏捷估计与规划
作 者: 柯恩 宋锐
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 软件工程/开发项目管理
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Mike Cohn是专门进行过程和项目管理咨询与培训的Mountain Goat Software公司的创始人。Mike拥有超过20年的行业经验,担任过从刚起步的新公司到财富40强企业的技术负责人,还是敏捷联盟的发起成员之一。他经常在业界相关杂志上发表文章并出席有关会议,也是User Stories Applied(Addison-wesley公司2004年出版)一书的作者。

内容简介

“您的项目进行得怎么样?遇到了令人沮丧的变化?不确定性?还是产品错过了标志点和最终期限?MikeCohn清晰明了地展示了如何有效地开发具有高商业价值的软件。通过敏捷估计与规划,即使环境发生了变化,您仍可以将精力专注于真正需要的地方。”——Rick Mugridge,Rimu Research有限公司,Fit for Developing Software的第一作者“我们是本书所述的敏捷方法的忠实信徒,并通过实现和继续采用这些方法获得了许多极其重要的积极影响。我向所有希望使自己的软件开发过程更为实际和有效的人极力推荐此书。”——Mark M.Gutrich,Fast 401k公司总裁兼首席执行官为什么传统的指令性规划会失败而敏捷规划会成功;如何使用故事点或理想日来估计功能的规模,以及它们分别适用于哪种情况;如何以及何时进行重估;如何同时采用经济和非经济手段确定功能的优先级;如何将大的功能分解成更小的更易管理的功能;如何规划迭代周期并对开发小组的初始进度率进行预测;如何安排具有高不确定性或者进度易受影响的项目的进度;如何对由多个开发小组合作开发的项目进行评估。《敏捷估计与规划》一书为对敏捷项目进行估计与规划提供了权威实际的指导方针。在本书中,敏捷联盟的共同创始人Mike Cohn讨论了敏捷估计与规划的思想,并使用现实的例子与案例分析向您详细地展示了如何完成工作。本书清晰地阐述了有关的概念,并引导读者逐步认识到下列一些问题的答案:我们要构建什么?它的规模有多大?需要在什么时候完成?到那个时候我们到底能完成多少?通过这本书,您首先会认识到优秀的计划由哪些东西组成,接着会了解到如何才能使计划成为敏捷的。

图书目录

第1章 规划的目的 3

1.1 作规划的原因 4

1.1.1 减少风险 5

1.1.2 降低不确定性 6

1.1.3 提供更好的决策支持 6

1.1.4 建立信任 7

1.1.5 传递信息 7

1.2 优秀计划的组成部分 8

1.3 敏捷规划过程的特点 8

1.4 小结 9

1.5 讨论题 10

第2章 规划失败的原因 11

2.1 基于活动而不是基于功能进行规划 11

2.1.1 活动不会提前完成 12

2.1.2 延误沿着进度表向下传递 13

2.1.3 活动不是独立的 14

2.2 多任务处理导致更多的延迟 14

2.3 不按优先级开发功能 16

2.4 忽视了不确定性 17

2.5 把估计当作承诺 17

2.6 小结 18

2.7 讨论题 18

第3章 敏捷方法 19

3.1 项目的敏捷开发方法 21

3.1.1 敏捷小组作为一个整体工作 21

3.1.2 敏捷小组按短迭代周期工作 22

3.1.3 敏捷小组每次迭代交付一些成果 22

3.1.4 敏捷小组关注业务优先级 23

3.1.5 敏捷小组进行检查和调整 24

3.2 敏捷规划方法 25

3.2.1 规划的不同层次 25

3.2.2 满意条件 27

3.3 小结 29

3.4 讨论题 30

第II部分 规 模 估 计

第4章 使用故事点估计规模 33

4.1 故事点是相对的 34

4.2 速度 36

4.3 小结 38

4.4 讨论题 39

第5章 使用理想日进行估计 41

5.1 理想时间和软件开发 42

5.2 以理想日作为对规模的度量 43

5.3 给出一个而不是多个估计值 44

5.4 小结 45

5.5 讨论题 45

第6章 估计方法 47

6.1 共同估计 49

6.2 估计的尺度 50

6.3 得到估计值的方法 52

6.3.1 专家意见 52

6.3.2 类比 52

6.3.3 裂解 53

6.4 规划扑克 53

6.4.1 更小的会议 55

6.4.2 何时打规划扑克 55

6.5 为什么规划扑克会有效 56

6.6 小结 56

6.7 讨论题 57

第7章 重估 59

7.1 SwimStats Web站点 59

7.2 不进行重估的情况 60

7.3 需要重估的情况 62

7.3.1 场景1:不进行重估 62

7.3.2 场景2:重估完成的故事 63

7.3.3 场景3:相对规模改变时进行重估 63

7.4 重估部分完成的故事 63

7.5 重估的目的 64

7.6 小结 65

7.7 讨论题 65

第8章 在故事点和理想日之间进行选择 67

8.1 有利于故事点的考虑因素 67

8.1.1 故事点有助于驱动跨功能的行为 68

8.1.2 故事点估计不会过期 68

8.1.3 故事点是对规模的纯粹度量 69

8.1.4 故事点估计通常更快 69

8.1.5 我的理想日不等于您的理想日 70

8.2 有利于理想日的考虑因素 70

8.2.1 理想日在小组以外更容易解释 70

8.2.2 理想日估计更容易开始 71

8.3 建议 71

8.4 小结 72

8.5 讨论题 73

第III部分 为价值作规划

第9章 确定主题的优先级 77

9.1 确定优先级时的因素 78

9.1.1 价值 78

9.1.2 成本 79

9.1.3 新知识 79

9.1.4 风险 81

9.2 综合4个因素 83

9.3 一些例子 84

9.3.1 基础结构 84

9.3.2 用户界面设计 85

9.4 小结 85

9.5 讨论题 86

第10章 确定经济优先级 87

10.1 收入的来源 89

10.1.1 新收入 89

10.1.2 增量收入 89

10.1.3 留存收入 90

10.1.4 操作效率 90

10.2 例子:WebPayRoll 91

10.2.1 计算新收入 91

10.2.2 计算增量收入 92

10.2.3 计算留存收入 93

10.2.4 计算操作效率 94

10.2.5 估计开发成本 94

10.2.6 整合 96

10.3 经济指标 96

10.3.1 金钱的时间价值 96

10.3.2 净现值 97

10.3.3 内部收益率 98

10.3.4 回收期 100

10.3.5 贴现回收期 101

10.4 对利润的比较 102

10.5 小结 103

10.6 讨论题 104

第11章 确定合意性优先级 105

11.1 客户满意度的Kano模型 106

11.1.1 用Kano模型评估主题 108

11.1.2 将答案分类 109

11.2 相对权重:另一种方法 111

11.3 小结 112

11.4 讨论题 113

第12章 分割用户故事 115

12.1 何时分割用户故事 115

12.2 按照数据边界分割 116

12.3 按照操作边界分割 118

12.4 去除横切考虑 119

12.5 不用满足性能限制 120

12.6 分割具有混合优先级的用户故事 120

12.7 不要把故事分割成任务 121

12.8 避免相关变化的诱惑 121

12.9 组合用户故事 121

12.10 小结 122

12.11 讨论题 123

第IV部分 进 度 安 排

第13章 发布规划基础 127

13.1 发布计划 128

13.1.1 确定满意条件 129

13.1.2 估计用户故事的规模 129

13.1.3 选择迭代周期长度 130

13.1.4 估计速度 130

13.1.5 确定用户故事优先级 130

13.1.6 选择用户故事和发布日期 130

13.2 更新发布计划 132

13.3 例子 132

13.3.1 确定满意条件 133

13.3.2 估计规模 133

13.3.3 选择迭代周期长度 134

13.3.4 估计速度 134

13.3.5 确定用户故事优先级 134

13.3.6 选择用户故事 134

13.4 小结 136

13.5 讨论题 136

第14章 迭代规划 137

14.1 迭代规划时不分配任务 139

14.2 迭代规划和发布规划的区别 140

14.3 速度驱动的迭代规划 141

14.3.1 调整优先级 142

14.3.2 确定目标速度 143

14.3.3 确定迭代目标 143

14.3.4 选择用户故事 143

14.3.5 把用户故事分解成任务 144

14.3.6 对任务进行估计 147

14.4 承诺驱动的迭代规划 149

14.5 我的建议 153

14.6 任务估计值和故事点的联系 154

14.7 小结 156

14.8 讨论题 156

第15章 选择迭代长度 157

15.1 选择迭代长度时考虑的因素 157

15.1.1 发布的总时间长度 158

15.1.2 不确定性的多少 158

15.1.3 获得反馈的难易程度 159

15.1.4 优先级可以保持多久不变 159

15.1.5 不用外部反馈自行工作的意愿 160

15.1.6 迭代的系统开销 160

15.1.7 紧迫感的产生有多快 160

15.2 做出决策 161

15.3 两个案例分析 162

15.3.1 Napa项目 163

15.3.2 Goodman项目 163

15.4 小结 165

15.5 讨论题 165

第16章 估计速度 167

16.1 使用历史值 168

16.2 进行一次迭代 169

16.3 做出预测 171

16.3.1 估计可用小时数 171

16.3.2 估计一次迭代中可用的时间 172

16.3.3 扩展故事并寻找适当的技能集 173

16.3.4 在点值周围设置一个范围 174

16.3.5 某些小组的变通方法 174

16.4 选择合适的方法 175

16.5 小结 176

16.6 讨论题 176

第17章 为不确定性缓冲计划 177

17.1 功能缓冲区 178

17.2 进度缓冲区 179

17.2.1 在估计值中反映不确定性 180

17.2.2 调整项目缓冲区大小 180

17.2.3 更简单的缓冲区计算方法 186

17.2.4 缓冲区准则 186

17.3 结合多个缓冲区 187

17.4 进度缓冲区不是填料 188

17.5 一些警告 188

17.6 小结 189

17.7 讨论题 190

第18章 规划多小组的项目 191

18.1 为估计建立共同基准 192

18.2 更早给用户故事添加细节 193

18.3 前瞻规划 193

18.4 在计划中加入馈送缓冲区 195

18.4.1 缓冲的对象 196

18.4.2 确定馈送缓冲区的大小 196

18.5 工作量会很大 197

18.6 小结 197

18.7 讨论题 198

第V部分 跟踪与交流

第19章 监督发布计划的执行 201

19.1 对发布进行跟踪 202

19.2 发布耗散图 204

19.3 停车场图 209

19.4 小结 210

19.5 讨论题 211

第20章 监督迭代计划的执行 213

20.1 任务板 213

20.2 迭代耗散图 216

20.3 跟踪已完成的工作量 217

20.4 个人速度 217

20.5 小结 218

20.6 讨论题 218

第21章 与计划有关的沟通 219

21.1 就计划进行沟通 220

21.2 就进度进行交流 222

21.3 迭代结束小结 224

21.4 小结 227

21.5 讨论题 228

第VI部分 敏捷规划有效的原因

第22章 敏捷规划有效的原因 231

22.1 经常进行重规划 231

22.2 对规模和持续时间的估计是独立的 232

22.3 在不同层次上制定计划 233

22.4 基于功能而不是基于任务制定计划 233

22.5 小故事保持工作流畅 234

22.6 每次迭代都要消除处理中的工作 234

22.7 在小组层次跟踪 235

22.8 承认不确定性并为之做计划 235

22.9 敏捷估计和规划的12条指导原则 236

22.10 小结 238

22.11 讨论题 238

第VII部分 案 例 分 析

第23章 案例分析:Bomb Shelter Studio 241

23.1 第一天—— 星期一早上 242

23.2 估计用户故事 250

23.3 准备产品调查 260

23.4 迭代和发布规划,第1轮 262

23.4.1 规划第一次迭代 263

23.4.2 发布规划 270

23.5 2周后 278

23.6 规划第二次迭代 280

23.7 2周后 281

23.8 修改发布计划 282

23.9 向Phil介绍修改后的计划 285

23.10 18周后 288