如何通过相对规模来估算用户故事?

敏捷开发
• 阅读 48

事实上,如果没有一个好的系统或者工具,我们很难估算用户故事,甚至经常高估或低估了自己要做的工作。而对于那些需要花数周或数月时间制定长期计划的传统公司来说,一旦工作出现中断,必然会偏离最初的估算。

作为一个敏捷团队,可以 通过精准的迭代和看板上的在制品来避免长时间的、不可预测的计划周期。尽管这些敏捷实践更具灵活性与适应性,但用户故事估算在交付过程中的重要性也不能忽视,因为它是与领导沟通工作交付时间的唯一方式。

随着时间的推移,估算能帮助我们了解团队的速度,这样我们就可以更准确地预测工作。而通过引入相对规模,我们可以更好、更快地进行估算。

一、我们要估算什么?

敏捷团队会估算每个用户故事,并将其写在用户故事卡上。

用户故事是对客户所需功能的简短描述,用户故事卡是根据用户故事为敏捷团队显示某一交付单元的卡片。对于敏捷团队来说,他们要估算每一个故事的大小。

为了确保我们不会花费了大把时间做计划,结果因为不能适应这个计划转回到瀑布方式中,我们需要一种更直接的方法来评估用户故事。

如果团队刚开始做用户故事估算,一般会倾向于以小时为单位进行思考。但这其实行不通,因为我们通常在预测时间的时候是不太准确的。这也是比起马拉松式的计划,我们更喜欢短的迭代周期的原因之一。

如果故事的大小不能与小时挂钩,那我们如何估算用户故事呢?这里其实建议大家使用相对规模来估算。

二、什么是相对规模?

我们先来看一下这个术语的两个组成部分:规模和相对。

首先,故事的大小是需要估算的,由三个因素组成:

  • 努力:完成这项任务需要做多少工作?
  • 复杂性:这个任务有多困难或复杂?
  • 不确定性:我们是否确切地知道要完成这项任务必须做什么,或者我们是否需要边做边学? 综合这三种因素考虑出的故事大小就是故事的规模。

其次,故事的大小是相对于团队其他用户故事来说的。

也就是说,我们可以通过多个用户故事的比较来确定哪个用户故事更大或更小,而不是在没有参考的情况下单独给故事规划大小。

三、水果沙拉游戏

对于初用相对规模估算的新手来说,我们可以用一个简单的游戏来介绍这个概念。

现在有一个需求是我们要带一份水果沙拉去参加聚会,且目前手中有几种水果:一个苹果、一串葡萄、一个菠萝等等。那我们现在需要将每一份水果都准备好,这包括清洗、去核、切块、剥皮等等。

那我们每次都只能拿到一种水果,并需要估算处理这个水果的任务的大小,这里的估算要考虑处理这个水果的工作量、复杂性以及不确定性。

首先我们先标记出所有规模: 如何通过相对规模来估算用户故事? 然后我们来处理苹果。因为要花几分钟的时间来给苹果去核、切块,所以我们 可以先将苹果标位中等大小。这个任务并不是很复杂。 如何通过相对规模来估算用户故事? 接下来需要处理葡萄。对于处理苹果来说,可能清洗葡萄会更为容易一些,葡萄只需要清洗一下并去掉它的根茎。 如何通过相对规模来估算用户故事? 接着需要处理樱桃、西瓜、菠萝等,依次确定这些任务的大小。 如何通过相对规模来估算用户故事? 在自己对所有水果的任务有一个大致标准之后,可以在团队之间交流彼此的看法,比如一个团队成员认为处理葡萄的任务复杂程度应该大于处理樱桃的任务,因为葡萄需要一个一个摘下来清洗并去籽。但是另一个团队成员则认为葡萄不需要去籽,因此任务比较轻松。

那在这些不同的观点提出之后, 团队就需要明确一个制作沙拉的标准:葡萄需 不需要去籽?苹果需不需要去皮等等。在统一了标准之后,大家再就任务实现估算的对齐。

在实际的项目中,我们可以运用做沙拉的思维,比如哪一个用户故事可以定位中等规模的用户故事,并以此设定一个标准的用户故事规模。同时将其他用户故事与该用户故事做比较,确定其他用户故事的规模。在了解了如何通过相对规模来估算用户故事之后,不妨在实际的团队中试一试这个方法吧~

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Stella981 Stella981
2年前
Kerberos无约束委派的攻击和防御
 0x00前言简介当ActiveDirectory首次与Windows2000Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身份验证并需要授权用户更新后端数据库服务器上的记录的方案。这通常被称为Kerberosdoublehopissue(双跃点问题),
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
Scrum 工件: 速度图和燃尽图
速度图Velocity用于衡量scrum团队持续提供业务价值的速度,可以采用历史估算的方法,衡量一个又一个sprint的速度。团队通过跟踪完成达到自己团队完成标准的故事点的数量,就可以基于相对点值对未来需要完成的新的用户故事需要花费多长时间有一个比较可靠的预测。!image.png(https://wtbox.worktile
Wesley13 Wesley13
2年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
2年前
Linux应急响应(二):捕捉短连接
0x00前言​短连接(shortconnnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。在系统维护中,一般很难去察觉,需要借助网络安全设备或者抓包分析,才能够去发现。0x01应急场景​
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_