本书赞誉
译者序
前言
第1章 解决正确的问题 1
1.1 从解决方案中甄别需求 4
1.2 识别不确定性的影响 4
1.3 处理不确定性 7
1.4 小结 8
1.5 参考资料 9
第2章 依赖坚实的基础 10
2.1 界定不可更改的边界 11
2.2 组建一个健康的团队 11
2.3 要求所有干系人参与 13
2.4 明确一个可以共享的愿景 14
2.5 识别出一个有意义的共同目标 17
2.6 识别出一系列高级别的特征 18
2.7 验证“可能存在”的假设 19
2.8 小结 20
2.9 参考资料 20
第3章 使用短周期反馈环探索干系人的“愿求” 21
3.1 运用试错法 21
3.2 应用短周期反馈环 25
3.3 根据预期收益设定反馈目标 27
3.4 关注干系人的“愿求” 27
3.5 小结 30
3.6 参考资料 30
第4章 使用用户故事表达“愿求” 31
4.1 使用用户故事描述愿求 31
4.2 通过研究角色及其利益探索“愿求” 34
4.3 建立一种通用语言 37
4.4 使用待办事项列表记录“愿求” 37
4.5 小结 40
4.6 参考资料 41
第5章 优化产品待办事项列表提炼用户故事 42
5.1 管理产品待办事项列表 42
5.2 通过合作优化产品待办事项列表 45
5.3 采用圆点投票法对用户故事进行排序 46
5.4 采用故事板的方式阐明用户故事的需求 49
5.5 通过比较的方式估算用户故事规模 53
5.6 按照业务价值拆分用户故事 57
5.7 使用协作白板追踪用户故事 59
5.8 交付一组功能连贯的用户故事 65
5.9 使用用户故事计划工作 67
5.10 小结 68
5.11 参考资料 69
第6章 使用场景确认用户故事 70
6.1 使用场景创建用户故事脚本 71
6.1.1 用标准形式表达场景 73
6.1.2 使用FIT表格化格式编写场景脚本 74
6.1.3 使用已知–当…时–那么句型结构编写场景脚本 75
6.1.4 选择FIT表格化格式或者已知–当…时–那么的句型结构 78
6.1.5 规范化通用语言 78
6.2 将场景拆分成指令和查询 81
6.3 两步法流程协同确认 82
6.4 从场景里剔除技术考量 87
6.5 在Sprint过程中演进场景 89
6.5.1 按照特征(feature)组织场景 89
6.5.2 通过特征编写场景文档 91
6.5.3 避免重复和合并冲突 92
6.6 小结 92
6.7 参考资料 94
第7章 使用验收测试自动确认需求 95
7.1 在验收测试中引入场景 96
7.2 使用红–绿–重构循环自动化场景 99
7.3 将场景转换成验收测试 102
7.3.1 使用内部DSL进行调换 102
7.3.2 创建一个测试 105
7.3.3 将DSL代码写进新创建的测试中 106
7.4 将新创建的测试与接口连接起来 108
7.4.1 接口设计练习 109
7.4.2 场景步骤间的背景链 111
7.4.3 使测试失败 112
7.5 实现接口 113
7.5.1 用需求说明–情景测试替换单元测试 114
7.5.2 让测试通过 115
7.6 演进验收测试 115
7.7 使用持续集成并同时运行验收测试 116
7.8 通过测试结果来增强场景 117
7.9 小结 119
7.10 参考资料 120
第8章 处理非功能性需求 121
8.1 使用约束改善外部质量 123
8.1.1 将非功能性需求转换成约束条件 125
8.1.2 将功能性需求范围降低至一个简单场景 127
8.1.3 设置可度量的质量目标 129
8.1.4 使用行之有效的实践来测试约束 133
8.2 使用正确的工程实践确保内部质量 135
8.3 通过协作构建掌握实践 138
8.4 小结 139
8.5 参考资料 140
第9章 结论篇 141
9.1 本书概要重述 142
9.2 流程总结 144
9.3 提请注意各种角色 146
词汇表 148
展开