欢迎光临本店     登录 注册   加入收藏
  •   
欢迎光临清华大学出版社第三事业部!

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

当前位置: 首页 > 外版图书 > 软件工程 > 敏捷软件开发:用户故事实战

浏览历史

敏捷软件开发:用户故事实战

敏捷软件开发:用户故事实战

prev next

  • 商品货号:20190118003
  • 商品重量:0克
    作者:[美] 迈克·科恩(Mike Cohn)著;王凌宇译
    出版社:清华大学出版社
    图书书号/ISBN:978-7-302-51108-3
    出版日期:20190101
    开本:16开
    图书页数:244
    图书装订:平装
    版次:1-1
    印张:15.25
    字数:285000
    所属分类:TP311.52
  • 上架时间:2019-01-18
    商品点击数:1012
  • 定价:¥69.80元
    本店售价:¥69.80元
    注册用户:¥69.80元
    vip:¥66.31元
    黄金等级:¥62.82元
    用户评价: comment rank 5
  • 商品总价:
  • 购买数量:

内容简介:

商品附加资源

 

 内容简介

作为敏捷社区的经典名作,《敏捷软件开发:用户故事实战》不负众望,为软件行业提供了一种高效的需求过程,通过用户故事来节省时间、消除重复工作和开发更优秀的软件。要想构建可以满足用户需求的软件,最好的方法是从“用户故事”开始,用简明扼要的语言清楚明确地描述对实际用户有价值的功能。在本书中,敏捷实干家提供了一个详尽的蓝图来指导读者如何编写用户故事,如何在软件开发生命周期中实际运用用户故事。

《敏捷软件开发:用户故事实战》共5部分21章,介绍了如何写出理想的用户故事,造成用户故事不理想的因素有哪些,如何在无法直接接触到用户的情况下有效搜集用户故事,如何对写好的用户故事进行整理、排优先级并在此基础上进行计划、管理和测试。

《敏捷软件开发:用户故事实战》适合采用XP、Scrum甚至其他自主敏捷方法的所有开发、测试、分析师和项目负责人阅读和参考,可以帮助他们以更少的人手在更短的时间内开发出更符合用户需求的产品或服务。

 

前    言

在20世纪90年代中期的大部分时间里,我都感到愧疚。我当时正在为一家公司工作,这家公司每年都会收购一家新公司。每次收购一家新公司,我都会被分派去负责打理他们的软件开发团队。收购的每个开发团队都带来了辉煌、美观、冗长的需求文档。我不可避免地感到愧疚,因为我自己的团队从来没有写出过如此优美的需求规格说明。但是,我的团队在生产软件方面一直比我们收购的团队成功得多。

我清楚我们成功的方法。然而,我总有一种难以名状的感觉,如果我们能写出大而冗长的需求文档,我们可能会更加成功。毕竟,那正是我当时正在阅读的书籍和文章中所描述的做法。如果成功的软件开发团队都在编写华丽的需求文档,那么看起来我们也应该这样做。但是,我们从来没有时间做。我们的项目总是太重要,需要我们尽快启动,以至于我们从一开始就没有时间来写文档。

因为我们从来没有时间写美观而冗长的需求文档,所以我们决定采用一种工作方式来与用户沟通。我们不是把需求写下来,让它们来回传递,并在时间不够用的时候还在谈判,而是和客户交谈。我们会在纸上绘制界面样例,有时候会创建原型,通常我们会写一些代码,然后向预期用户展示我们编写的内容。至少每月一次,我们会邀请一组具有代表性的用户,并向他们演示我们开发的功能。通过贴近用户并向他们演示小的增量进展,我们找到了一种方法来帮助我们在没有美观需求文档的情况下取得成功。

尽管如此,肯特•贝克(Kent Beck)仍然感到愧疚,认为我们没有按照我们应该的方式去做事。

1999年,肯特•贝克的革命性小册子《解析极限编程》出版发行。一夜之间,我所有的愧疚荡然无存。终于有人提出了开发人员和客户之间用讨论取代“写文档-商谈-再写文档”的模式。肯特阐明了很多事情,并带给我很多新的工作方法。但是,最重要的是,他证明了我从自己的实践中领悟到的是正确的。

大量的前期需求收集和文档可能在多方面导致项目失败。最常见的一种情况是需求文档本身成为软件开发的目标。需求文档只有在能够帮助实现交付某些软件的真正目标时才应该编写。

大量的前期需求收集和文档可能在多方面导致项目失败的第二种情况是书面语言的不准确性。我记得很多年前听到过一个小孩洗澡的故事。小孩的父亲已经在浴缸中放满了水,正准备帮助他的小孩进入水中。这个小孩大概两三岁,先把脚趾头伸入水中蘸了一下,然后迅速将脚趾移开,并告诉她的父亲“让它暖和一些”(make it warmer.)。父亲把手伸入水中,惊讶地发现水不是太冷,已经比他女儿习惯的温度更热了。

父亲思索了一下孩子的请求,意识到他们的沟通出现了问题,用相同的词语来表示不同的意思。孩子“让它暖和一些”的请求被任何成年人都解释为“调高水温”(increase the temperature)。然而,对于孩子来说,“让它变暖”意味着“让它接近我认为暖和的程度”。

文字,尤其是白纸黑字那样的,通过它来表达软件这样复杂东西的需求,是比较简单有限的载体。由于它们可能被误解,所以我们需要用开发人员、客户和用户之间频繁的对话来取代书面文字。用户故事为我们提供了这种方法,让我们写下来足够多我们不会遗忘的内容,并且我们可以估算和计划,同时还鼓励及时沟通。

读完本书的第I部分时,你将准备开始改变总是严格写下每一个需求最后细节的工作方式。读完本书的时候,你会知道在具体环境中实施故事驱动过程所有的必要信息。本书分为四个部分和两个附录。

第I部分“开始”,描述开始编写故事需要了解的一切。用户故事的目标之一是让人们说话而不是写作。第I部分的目标是尽快让你交谈。第1章概述了什么是用户故事以及如何使用故事。接下来的章节提供了编写用户故事,通过用户角色建模收集故事,在无法访问实际最终用户时编写故事以及测试用户故事的更多细节。第I部分的结尾部分提供了一些指导方针,可以用来改进用户故事。

第II部分“估算和计划”,有了一系列用户故事后,我们经常需要回答的第一件事是“需要花费多长时间来开发?”。第II部分介绍了如何使用故事点来估算故事,如何在3~6个月的时间范围内计划发布,如何更详细地计划随后的迭代,最后如何度量进度并评估项目是否按照既定的意愿进行。

第III部分“经常讨论的话题”,首先描述故事与用例,软件需求说明和交互设计场景等需求方案的不同之处。随后探讨用户故事的独特优点,如何判断出现问题的时间,如何调整敏捷过程Scrum以使用故事。最后一章着眼于各种小问题,例如是否在纸质卡片或者软件系统中编写故事以及如何处理非功能性需求。

第IV部分“一个完整的项目案例”,一个扩展的例子,旨在帮助归纳用户故事的所有内容。如果说开发人员可以通过故事更好地理解用户的需求,那么本部分的完整示例是非常重要的,这个示例将展示用户故事的各个方面及其结合方式。

第V部分“附录”,用户故事源于极限编程。阅读本书之前不需要熟悉极限编程。附录A提供了极限编程的简要介绍。附录B包含对各章结尾思考练习题的解答。

目    录

第I部分  开    始
第1章  概述 3
什么是用户故事? 4
细节在哪里? 5
“需要在多长时间内完成?” 7
客户团队 7
使用故事的过程是什么样的? 8
计划发布和迭代 9
什么是验收测试? 11
为什么要改变? 12
小结 13
思考练习题 13
第2章  编写故事 15
独立的 15
可协商的 16
对用户或客户有价值的 18
可估算的 19
小的 20
拆分故事 20
合并故事 22
可测试的 23
小结 24
开发人员的责任 24
客户的责任 24
思考练习题 24
第3章  用户角色建模 27
用户角色 27
角色建模步骤 29
通过头脑风暴,创建初始的用户角色集合 29
整理初始的角色集合 30
聚合角色 31
细化角色 32
两个额外的技术 33
用户画像 33
极端人物 34
如果有现场用户呢? 34
小结 35
开发人员的责任 35
客户的责任 35
思考练习题 36
第4章  收集故事 37
引出和捕捉需求是不适用的 37
一点儿就够用了,不是吗? 38
方法 39
用户访谈 39
问卷调查 41
观察 41
故事编写工作坊 42
小结 44
开发人员的责任 45
客户的责任 45
思考练习题 45
第5章  与用户代理合作 47
用户的经理 47
开发经理 48
销售人员 49
领域专家 50
营销团队 50
前用户 50
客户 51
培训师和技术支持 52
业务分析师或系统分析师 52
如何与用户代理合作? 52
当用户存在但访问受限时 52
当真的找不到用户时 53
你能自己做吗? 54
建立客户团队 54
小结 54
开发人员的责任 55
客户的责任 55
思考练习题 55
第6章  用户故事验收测试 57
在编码之前编写测试 58
客户定义测试 59
测试是过程的一部分 59
多少测试才算多? 59
集成测试框架 60
测试的类型 61
小结 62
开发人员的责任 62
客户的责任 62
思考练习题 62
第7章  好故事编写指南 63
从目标故事开始 63
纵切蛋糕 64
编写封闭的故事 64
约束卡片 65
根据实现时间来确定故事规模 66
不要过早涉及用户界面 66
需求不止故事 67
故事中包括用户角色 67
为一个用户编写故事 68
用主动语态 68
客户编写 68
不要给故事卡编号 68
不要忘记目的 69
小结 69
思考练习题 69
第II部分  估算和计划
第8章  估算用户故事 73
故事点 73
团队估算 74
估算 74
三角测量 76
使用故事点 77
如果用结对编程呢? 78
“敲黑板” 79
小结 79
开发人员的责任 79
客户的责任 79
思考练习题 80
第9章  发布计划 81
我们希望什么时候发布? 82
希望在发布中包含哪些特性? 82
故事优先级排序 83
混合优先级排序 84
风险故事 84
优先考虑基础设施需求 85
选择迭代长度 86
从故事点到预期工期 86
初始速率 86
猜测速率 87
创建发布计划 87
小结 88
开发人员的责任 88
客户的责任 89
思考练习题 89
第10章  迭代计划 91
迭代计划概述 91
讨论故事 92
分解任务 92
认领责任 94
估算及确认 94
小结 95
开发人员的责任 96
客户的责任 96
思考练习题 96
第11章  度量和监测速率 97
度量速率 97
计划速率和实际速率 99
发布燃尽图 100
迭代燃尽图 102
小结 104
开发人员的责任 104
客户的责任 105
思考练习题 105
第III部分  经常讨论的话题
第12章  用户故事不是什么 109
用户故事不是IEEE 830 109
用户故事不是用例 112
用户故事不是场景 115
小结 117
思考练习题 117
第13章  用户故事的优点 119
口头沟通 119
用户故事容易理解 121
用户故事的大小适合于计划 122
用户故事适合迭代开发 123
故事鼓励推迟细节 124
故事支持随机应变的开发 124
用户故事鼓励参与式设计 125
故事增强隐性知识 125
用户故事的不足 126
小结 126
开发人员的责任 127
客户的责任 127
思考练习题 127
第14章  用户故事的不良“气味” 129
故事太小 129
故事相互依赖 130
镀金 130
细节过多 131
过早包含用户界面细节 131
想得太远 132
故事拆分太频繁 132
客户很难对故事排列优先级 132
客户不愿意写故事并对故事进行优先级排序 133
小结 134
开发人员的责任 134
客户的责任 134
思考练习题 134
第15章  在Scrum项目中使用用户故事 135
Scrum是迭代式和增量式的 135
Scrum基础 136
Scrum团队 137
产品待办列表 137
Sprint计划会议 138
Sprint评审会议 140
每日Scrum站会 140
在Scrum项目中加入用户故事 142
用户故事和产品待办列表 142
Sprint计划会议中使用用户故事 142
Sprint评审会议中使用用户故事 143
用户故事和每日Scrum站会 143
案例学习 143
小结 144
思考练习题 145
第16章  其他主题 147
处理非功能性需求 147
纸质还是软件? 148
用户故事和用户界面 150
保留故事 152
用户故事描述bug 153
小结 154
开发人员的责任 154
客户的责任 154
思考练习题 155
第IV部分  一个完整的项目案例
第17章  用户角色 159
项目 159
识别客户 159
识别一些初始角色 160
聚类与细化 161
角色建模 163
增加用户画像 164
第18章  故事 165
Teresa的故事 165
Ron船长的故事 168
初级海员的故事 168
非海员礼品购买者的故事 169
报表查看者的故事 169
一些管理员的故事 170
结束 171
第19章  估算故事 173
第一个故事 174
高级搜索 176
评分和评价 177
账号 177
完成估算 178
所有的估算 179
第20章  计划发布 181
估算速率 181
对故事进行优先级排序 182
完成的发布计划 183
第21章  验收测试 185
搜索的测试 185
购物车的测试 186
购买书籍 187
用户账号 188
管理 188
测试约束 189
最后一个故事 190
第V部分  附    录
附录A  极限编程概述 193
附录B  各章思考练习题参考答案 203
参考文献 217
 

商品标签

购买记录(近期成交数量0)

还没有人购买过此商品
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页

用户评论(共0条评论)

  • 暂时还没有任何用户评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
用户名: 匿名用户
E-mail:
评价等级:
评论内容:
验证码: captcha