到底什么是故事点(Story Point)?
故事点是一个度量单位,用于表示完成一个产品待办项或者其他任何某项工作所需的所有工作量的估算结果。
当采用故事点估算时,我们为每个待办项分配一个点数。待办项估算结果的原生数据并不重要,我们只关注最后得到的相对估算结果。一个估算值为2的用户故事应该是估算值为1的用户故事的2倍。而它也应该是另一个估算值为3的用户故事的三分之二。
团队不要采用100、200、300,或者1百万、2百万、3百万,而要使用1、2、3。估算结果是比值,而不是绝对值。
故事点包括什么内容
由于故事点数代表了开发用户发故事所需的全部工作量,所以团队的估算必须考虑到影响工作量的所有因素。这可能包括:
- 要开展的工作的数量
- 工作的复杂度
- 要开展的工作中存在的任何风险或不确定性
在用故事点估算时,必须要考虑以上每一个因素。让我们看看每个因素是如何影响故事点的。
要开展的工作数量(The Amount of Work)
如果要开展的工作越多,工作量的估算值当然就会越大。考虑两个网页开发的案例。第一个网页只有一个字段和一个要求输入姓名的标签。第二个网页有100个只需要输入一小段文本的字段。
第二个网页并不比第一个网友更复杂。字段之间是不存在交互的,每个字段只不过是一点文本而已。因此第二个网页并不存在额外的风险。这两网页之间的唯一区别就是第二页有更多的事情要做。
应该给予第二个网页更多的故事点数。但它即使有多了100倍的字段数,可能仍然得不到多100倍的点数。毕竟,由于规模经济效应,第二个网页的工作量可能只是第一个网页的工作量的2或3或10倍。
风险和不确定性(Risk and Uncertainty)
产品待办项的风险和不确定性会影响其故事点估算值。
如果产品待办项的干系人在询问需求事说得不清不楚,那么团队在估算时应当把不确定性也反映在估算结果中。
如果要实现一项功能时需要改动一段缺乏自动化测试的、结构脆弱的老代码,那么估算结果中也应该反映这个风险。
复杂度(Complexity)
在进行故事点估算时,还应该考虑复杂度。回顾一下之前那个有100个琐碎文本字段且字段之间无交互的Web网页开发的例子。
现在考虑另一个也有100个字段的网页。但这些字段中,有些是采用日历控件弹出的日期字段;有些是格式化的文本字段,如电话号码或社会安全号码;另一些字段则需要做信用卡号码的校验和验证。
页面上的字段之间还需要相互交互。如果用户输入一个VISA卡,会显示三位CVV字段。但是如果用户输入美国运通卡,则需要显示四位CVV字段。
尽管这个页面上仍然只有100个字段,但这些字段更难实现。它们更复杂,需要花更多时间才能实现。开发人员出错的可能性更大,因此不得不采取一些预防和纠正措施。
这种额外的复杂度都应该反映在所提供的估算结果中。
要考虑所有因素:工作数量、风险和不确定性,和复杂度
把这三个因素合成一个数字并提供一个估算值,貌似是不可能的。然而其实是可能的,因为可以统一到工作量这个因素。
首先,估算人员要考虑的是:完成产品待办项所描述的那些工作,到底需要多少工作量。
然后,估算人员要考虑的是:在处理产品待办项的风险和不确定性方面需要付出多少工作量。通常可以通过考虑到问题发生的风险以及风险确实发生会造成的影响来做到。因此,例如,一个可能会发生并将消耗时间的风险将会增加估算值,而一个不太可能发生且无关紧要的风险则不会增加估算值。
此外,估算人员还要考虑要开展的工作的复杂度。复杂的工作需要花费更多的心思,可能需要进行更多的试错试验,可能需要与客户进行更多的反复,还可能需要花费更长的时间来验证和改正错误。
所有这三个因素必须都结合考虑。
要考虑“完成的定义”中的要求
故事点估算必须要覆盖直到实现产品待办项待真正完成的所有事项。如果团队的“完成的定义”中包括了创建自动化测试来验证这个故事(并且这是一个好主意)这个事项,那么创建这些测试的工作量也应该包含在故事点估算结果中。
故事点可能是个难以把握的概念。但是花时间去充分理解——故事点数代表着其工作的数量、复杂度及其风险和不确定性——将会是值得的。
作者:Mike Cohn
翻译:李洁(Jerry Li)
原文链接:https://www.mountaingoatsoftware.com/blog/what-are-story-points
SCRUM敏捷实践集
选择分类目录
Mike Cohn专栏
Scrum活动
专家专栏
产品管理
其它
团队与协作
敏捷导入转型
敏捷工具
敏捷技术实践
敏捷文章
敏捷管理实践
敏捷项目管理
新闻
测试与质量
用户体验
用户故事
看板方法
精益开发基础
和我们互动
关注Scrum中文网微信获得微信版估
到底什么是故事点(Story Point)?的更多相关文章
- J.U.C|一文搞懂AQS(转)
提到JAVA加锁,我们通常会想到synchronized关键字或者是Java Concurrent Util(后面简称JCU)包下面的Lock,今天就来扒一扒Lock是如何实现的,比如我们可以先提出一 ...
- ERP 到底是什么? 一则故事搞懂ERP
你知道什么是ERP? ERP是什么? 你知道什么是ERP吗? (通俗易懂版) 一个故事搞懂“ERP” 一天中午,丈夫在外给家里打电话:“亲爱的老婆,晚上我想带几个同事回家吃饭可以吗?”(订货意向) 妻 ...
- 老徐和阿珍的故事:ArrayList和LinkedList的效率到底哪个高?
人物背景: 老徐,男,本名徐福贵,从事Java相关研发工作多年,职场老油条,摸鱼小能手,虽然岁数不大但长的比较着急,人称老徐.据说之前炒某币败光了所有家产,甚至现在还有欠债. 阿珍,女,本名陈家珍,刚 ...
- 背后的故事之 - 快乐的Lambda表达式(一)
快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜.它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能 ...
- 前端少侠的ps故事
前端少侠的ps故事 正所谓,码在江湖,身不由己.自21世纪前后端分离,代码分工细化以来,前端与设计的合作也变得越来越重要.有人说,如果前端懂设计的话,工作会更快一点.倘若说我入前端半年能算半个前端少侠 ...
- 初识WEB:输入URL之后的故事
1. 概述2. HTTP请求过程3. 相关性能检测及优化手段4. 浏览器的呈现过程5. 浏览器的呈现引擎6. 引用及延伸阅读 概述 为什么输入www.cnblogs.com之后敲一个回车,浏览器就会显 ...
- CSS深入研究:display的恐怖故事解密(2) - table-cell
上集<CSS深入研究:display的恐怖故事解密(1) - display-inline>已经把display的属性列表拉出来溜了,发现在这个属性恐怖面貌其实都是脆弱的伪装.除了部分常用 ...
- printf背后的故事
printf背后的故事 说起编程语言,C语言大家再熟悉不过.说起最简单的代码,Helloworld更是众所周知.一条简单的printf语句便可以完成这个简单的功能,可是printf背后到底做了什么事情 ...
- 一个故事讲清楚NIO
转载请引用:一个故事讲清楚NIO 假设某银行只有10个职员.该银行的业务流程分为以下4个步骤: 1) 顾客填申请表(5分钟): 2) 职员审核(1分钟): 3) 职员叫保安去金库取钱(3分钟): 4) ...
随机推荐
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- js里的Document对象介绍
activeElement 返回代表文档中dangqianhuodejiaodianyuansudeduixaing body 返回代表文档中body元素 ...
- ProcessBuilder waitFor 调用外部应用
小程序项目最初使用ffmpeg转换微信录音文件为wav格式,再交给阿里云asr识别成文字.视频音频转换最常用是ffmpeg. 1 ffmpeg -i a.mp3 b.wav 相关文章: 小程序实现语音 ...
- spring 的权限控制:security
下面我们将实现关于Spring Security3的一系列教程. 最终的目标是整合Spring Security + Spring3MVC 完成类似于SpringSide3中mini-web的功能. ...
- Appium+python自动化(二十七)-让你在手机找到溜冰一样的感觉666,溜得飞起来 - 低级滑动(超详解)
简介 随着现在智能手机的普及和应用,小到五六岁或者更小的娃娃,老至七八十岁老头老太太都是智能手机的用户,基本上达到每个人都在用,每次在地铁或者公交上,就看看到这样的场面,手指不停地在手机屏幕上来来回回 ...
- 使用 OpenSSL 为 Nginx 创建自签名证书 并开启客户端身份验证
本文章默认读者了解Openssl,CA,网站证书相关知识,直接实战!配置完成后,浏览器会显示"安全的HTTPS"连接.不会像其他文章那样,是红色警告的证书提示. 准备环境 笔者使用 ...
- 初试kafka消息队列中间件二(采用java代码收发消息)
初试kafka消息队列中间件二(采用java代码收发消息) 上一篇 初试kafka消息队列中间件一 今天的案例主要是将采用命令行收发信息改成使用java代码实现,根据上一篇的接着写: 先启动Zooke ...
- vscode c 语言 win10
在看 CSAPP 一些课程,一些c 语言的小程序的例子,想跑起来试试,用一个DEV c++ 简单上手,但这是一个上古的IDE, 前端开发中的代码不全,语法高亮,都不太好,就想着为什么不折腾一下 V ...
- 【原创实践】U大师启动安装windows XP
1:使用U大师3.0版制作启动U盘,拷贝windows xp或者win7的原版安装iso(zh-hans_windows_xp_professional_with_service_pack_3_x86 ...
- 深入理解 linux磁盘顺序写、随机写
一.前言 ● 随机写会导致磁头不停地换道,造成效率的极大降低:顺序写磁头几乎不用换道,或者换道的时间很短 ● 本文来讨论一下两者具体的差别以及相应的内核调用 二.环境准备 组件 版本 OS Ubunt ...