敏捷开发06:用户故事估算方法介绍

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

估算介绍

在以前开发 IT 软件时,使用较多的衡量软件开发工作量的单位是:小时、人天 或 人月。它是预估开发时间。比如:这个功能张三一个人开发需要 3 天时间完成。

这种 “人天” 估算只是 “理想人天” 的估算,有时与实际开发完成所需天数有很大差别。因为每个人完成同样复杂度工作所需的时间是不同的。

那在敏捷 Scrum 框架中,用户故事的开发工作量,如何估算一个用户故事开发工作量?估算开发任务工作量是一件很困难的事情,它需要考虑的因素有很多,包括:

  • 用户故事的规模大小
  • 业务复杂度、难度
  • 业务规则复杂度
  • 开发人员能力大小、个体差异
  • 团队成员休假、有事请假等突发因素

等等各种因素。

虽然很困难,但是智慧的人们还是给出了一些估算的方法,帮助 Scrum 团队对开发任务进行估算。下面介绍几种估算的方法。

估算在 Scrum 的哪个环节呢?

一般在 Sprint 计划会议上。
当产品负责人和 Scrum 团队人员选择好了 Sprint backlog 里的待开项,也对大的开发项进行了拆分。对不理解的一些开发项,相关负责人也进行了解释,团队成员理解也达成了一致。这时就可以进行开发任务工作量的估算了。

故事点Story Point

故事点介绍

什么是故事点 Story Point?

故事点是一个度量单位,完成某项开发任务所有工作量的估算结果。被估算的不是花费的时间长短,而是工作量多少。

故事点一般用来衡量用户故事或任务的工作量、复杂度和不确定性,它不是传统的估算方法:小时 或 人天。它不依赖具体的开发人员或开发速度,更多强调团队内部讨论,协商一致性和相对估算。

不同于预估完成任务所需时间长短,故事点关注的重点是复杂度和不确定性。

它是一个相对度量单位,一般是相对于基准故事。

在做故事点度量估算时,会选择一个基准故事(一个已知大小和复杂度的故事)作为基准点来参考,其它故事相对这个基准故事来做度量,对故事工作量进行估算。
然后额外考虑故事的复杂度因素、风险因素、不确定性因素,并且为这些额外的因素加上点数,这样估算出来的故事点数相对来说正确性就提高了许多。

故事点估算单位介绍

故事点数 = 完成故事所需工作量 + 复杂度因素点数 + 风险因素点数 + 不确定性因素点数

注意:

  • 1、 这里的点不代表任何时间长度。它只是一个工作量多少的度量单位。

估算数值选取

通常采用斐波那契数列,如 0、1/2、1、2、3、5、8、13,20,40,100;有时也采用自然数来替代,如 1,2,3,4,5,6。
具体情况要看故事之间的大小差别,怎样的数字间隔更加适合团队估算的情况。

斐波那契数列称为黄金分割数列,随着数字间距的扩大,对于颗粒度较大的需求更加便于我们判断选择哪个数字。

估算故事点简单流程

1、选择基准故事

团队先选择一个已知的用户故事作为“基准故事”,这个基准故事的任务复杂度和工作量是团队成员已知且易于理解的任务,然后给这个基准故事打一个故事点值(比如 3)。其它故事就和这个基准故事进行比较。

2、讨论和理解故事

在估算其它用户故事或开发任务时,要确保团队成员对任务的需求、复杂度、潜在风险的理解相一致。大家一起提问、讨论问题,产品负责人进行解释回答。

3、选择估算值

讨论完成后,团队成员各自独立选择,选择认为合适的故事点数值(如 3,5,8)。每个人的估算都应该是基于对任务相对复杂度、风险因素的理解上,而非实际工作时长。

4、展示估算结果

团队每个成员独自选择估算值完成后,所有人同步一起展示选择的数值。如果估算结果一致,则记录下该数值;如果估算结果值差异较大(比如一个是 3 ,一个是 13 ),则需进一步讨论。

5、 讨论估值差异后达成共识

当出现较大估值差异时,团队成员需要解释为什么选择该值。在讨论中,通过进一步澄清需求细节、拆解任务等方式,帮助团队成员更好地理解任务的复杂度,从而达成共识。
达成共识后,记录下最终讨论的估值数。然后进行下一个故事估算的讨论。

计划扑克估算

计划扑克估算,和上面的故事点估算,做法大同小异,它把故事点估算通过游戏化的方式来进行,改进了估算方式体验。
计划扑克是通过游戏化方式来进行估算,带有一点娱乐性质,体验效果可能会更好。

计划扑克介绍

在敏捷框架下,Scrum 团队是一个自组织团队,团队决策多数是集体协商,共同承诺。计划扑克就是一种集体估算的工具,通过游戏化的方式来进行估算,鼓励团队成员充分表达意见。

计划扑克是一种基于团队共识的估算方法。团队成员每人会拿到一套特制的卡片(扑克牌),卡片上标有数字,这些数字通常是斐波那契数列(如 0、1/2、1、2、3、5、8、13,20,40,?,∞ 等),卡片上数字大小表示对任务估算的估值数。

  • “∞” 卡用来表示估算者不认为这项任务能够完成
  • “?” 卡用来表示估算者无法进行估算

有的还有一张 咖啡 卡牌 ,表示估算久了,需要休息片刻。

有的团队也用自然数排列的牌,也可以,根据被估算的故事差异大小而定。

image

参与人数

一般是 4 - 8 人,参与人数太多,会拉长估算的时间,降低估算效率;人数太少,会导致估算结果偏差大。

计划扑克游戏过程

1、讲解用户故事

产品负责人从 Backlog 中选择一个待开发项(用户故事或任务),然后为大家进行简要的介绍。

2、讨论故事需求

团队成员针对该开发故事进行讨论,提出问题,产品负责人负责解答所有问题。

这一步是团队成员和产品负责人进行交互讨论:理解需求、实现细节、潜在风险等等,帮助团队成员和产品负责人对开发的需求理解是一致性。
这时,产品负责人可以根据大家的反馈,及时修改并完善开发项(需求)。

3、选择估算值

3.1、选择基准故事

估算时,常用的是相对估算值,不是绝对估算值。跟上面的故事点估算一样,会选择一个大家易于理解的故事作为一个基准故事,比如这个基准故事故事点值为 3,然后其它故事和这个基准故事比较,得出估算的相对点数值。

3.2、进行估算

团队成员已经对该开发故事有充分了解,没有问题后,大家就根据自己的理解和经验,各自独立选出一张代表自己估算值的卡牌,卡牌面朝下放置,不明牌。

这一步团队成员之间不可相互讨论估算值。

团队成员估值都完成后,大家同时亮牌,展示各自估算结果。

4、讨论估值差异

若每个成员对用户故事的估值差距不大,则记录下估值;
若每个成员对用户故事的估值差距较大,说明大家对该用户故事的理解、价值没有达成共识,大家需要解释为什么这样估值?然后对估值结果进行讨论。

例如第一轮估值亮牌结果为:3,3,8,13。这 4 个估值数明显 1 个偏大(与平均值对比),2 个偏小,大和小差距过大。平均值为 6.75,四舍五入为 7。
两个估值数 3 过小(偏离平均值)的成员需要解释为什么这样估值?估值数 13 过大的成员也需要解释为什么?然后大家对给出的解释一起讨论,对需求开发不同认知点、怀疑的点进行讨论。

讨论注意点:

  • a、敏捷教练要维护活动秩序,避免不必要的争吵和跑题。
  • b、无需深入代码细节,这是开发人员最爱跑题项之一。
  • c、鼓励大家都发言,不能总是某几个人发言讨论。

大家讨论完成后,再进行估值。重复上面的第 3 、4 步骤。一般经过 2 到 3 轮就可以得到一个相差比较近的估值。

如果第 3 轮估算结束后,大家还没有得到一个相近的估值,那就取一个大家认可的平均值作为估算结果。

差距大时,估值讨论不能无尽循环下去,这样会浪费大家本可以做其它工作的时间。这也是扑克估算的缺点,有时会耗时

估值的目的,第一,大家都了解故事开发的复杂度和工作量;第二,大家了解所做的详细工作有哪些;第三,大家对做的工作能有一个共识。

团队成员需要在尽可能短时间内,达成一个一致的估值结果。

其它估算方法介绍

亲和估算(Affinity Estimating)

亲和估算首先需要在一个白板或者墙上划分出不同的区域,每个区域代表一个工作量范围(同样可以用故事点来衡量),例如分为 “小(1 - 3 个故事点)”、“中(4 - 8 个故事点)”、“大(9 - 13 个故事点)” 等区域。

然后将所有的用户故事写在卡片上,团队成员一起把这些卡片按照自己对用户故事工作量的判断,放置到相应的区域中。在放置过程中,团队成员可以对每个用户故事进行简单讨论,确定其所属的工作量范围。

优点: 相对来说估算比较快速,能够在短时间内对大量用户故事进行初步估算。帮团队成员整体上把握用户故事的规模。

缺点: 它的估算精度相对较低,因为只是将用户故事划分到大概的工作量范围,没有像计划扑克那样精确到具体的数字。还有团队成员对工作量理解不一致,导致用户故事放置混乱,需要花时间重新讨论和调整。

功能点数估算

功能点估算方法是从用户的功能需求角度出发,通过计算用户故事中的功能点数来估算工作量。
比如后台用户管理功能,可能有增加、删除、修改、搜索、查看用户详情等功能。

优点: 以功能需求点为基础,比较客观,能一定程度上避免团队成员主观因素导致的估算偏差。它适用有详细需求文档的情况下,可以较准确估算工作量。

缺点: 功能点估算方法需要对系统的功能有详细的分析和定义。计算功能点数需要一定的专业知识和经验,而且不同的人对功能点的计算标准可能会有差异。此外,它没有考虑到非功能因素(如性能要求、安全要求等)对工作量的影响,可能会导致估算结果不够全面

敏捷开发中为什么要用用户故事点数 (User Story Points) 来评估工作量? 敏捷开发中推荐使用用户故事点数来评估工作量。这个给人的第一感觉是工作量难道不应该是时间吗?为什么要用用户故事点数呢?在回答这个问题之前,我们需要回答下面的几个问题。 为什么要评估工作量? 这个问题可能问的很奇怪,但是确实需要回答,因为我看到有些团队会一直开发下去,团队不清楚应该什么时候会完成项目。 评估工作量的目的第一是让投资方知道项目的资金和时间成本。这样投资方才能知道是否应该启动项目。第二是让团队知道项目的里程碑,进而形成共同努力的目标。 #mermaid-svg-XVe7kPmaAtGmE2QF .l 阅读详情

相关推荐

CEH Practical 实战考试真题与答案

CEH Practical 是 EC-Council 推出的Certified Ethical Hacker(CEH)认证项目中的一项高级动手实践考试。它不同于传统的理论考试,侧重于在真实环境中检验考生的实操能力。

sgafdgdagd的博客 944

Scrum的简介和使用体验

目录主要思想核心内容参与人员主要图表重要活动Story Point 的概念和估算方法经验之谈小结 主要思想 介绍Scrum之前,我们先说说敏捷开发。近十年里,大大小小的互联网公司为了快速占据市场,各种互联网产品喷薄式出现。如果项目开发还是走传统的瀑布模型,市场就很容易被其他公司瓜分。快,就成为一个项目成功的新指标,于是大家纷纷投向敏捷开发的怀抱。 敏捷开发用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、

Godlike_M的博客 783

IAR9.4报错之编码方式

IAR9.40编码方式错误导致的报错

qq_36081075的博客 2582

亲和估算

亲和估算是一种被团队成员用来估算大规模用户故事的技术。 1)亲和估算的优势: • 快速简单; • 决策制定过程透明可见; • 它创造了一种积极合作的体验而非对抗性。 2)亲和估算的步骤 • 沉默的相对尺码 • 产品负责人提供产品待办事项 • 故事水平排列在墙上 • 团队成员考虑执行中的努力,对比墙上物品对每样物品进行规模定义 • 团队安静地执行以上步骤,不讨论技术或者特性问题 3)编辑墙 • 故事...

weixin_37123068的博客 5699

Scrumstory point的预估

一、什么是story pointStory point,翻译成中文即为故事点。 故事点是Scrum团队使用的一种随机度量方式,用来度量实现一个故事需要付出的工作量”,还可能是“故事点数的估算混合了对于开发特性所要付出的努力、开发复杂度、个中风险以及类似东西。 我们也可以理解为可以用story point来衡量一个issue的难度或工作量。二、story point的预估估计story point

HanpengChen的博客 1万+

如何估算故事

预估团队速率是Scrum或者敏捷里面十分重要的一步,倒不是说预估的值需要非常准确,以我本人的经验来说,这个值往往比较粗糙,但是是大家认可的。在估算的时候,不同的值也能激起大家对待办事项的讨论,也能减少各个待办事项的分歧,一般都是会让最高和最低的成员陈述他们的理由,也会营造出大家敢于发言的氛围,是十分符合敏捷的价值观的。因此,作为Scrum Master,一定要善于解决冲突,带着团队在估算时的思路是往正确的解决问题上。

sinat_41904713的博客 773

ACP敏捷9.敏捷应用场景

十大场景概述: ●场景一:敏捷价值观和原则(如敏捷理念与传统理念的不同) ●场景二:敏捷优先级技术(如MoSCoW等) ●场景三:敏捷估算技术(如斐波那契数列应用等) ●场景四:敏捷团队沟通(如分布式团队等) ●场景五:敏捷领导力(如仆人式领导等) ●场景六:敏捷度量指标(如速度、时间、WIP等) ●场景七:敏捷计划(如版本计划、迭代计划) ●场景八:敏捷持续改进(如回顾会议) ●场景九:敏捷工程技术(如持续集成、完成定义等) ●场景十:敏捷风险管理(如风险燃尽图).....................

助力开发者进阶为高效技术管理者,记录沉淀打造可复用的工程方法论体系 1878

敏捷开发用户故事系列之九 用户故事早期估算

敏捷开发用户故事系列之九 用户故事早期估算

hdfyhf的博客 351

敏捷开发用户故事系列之九:用户故事早期估算

这是敏捷开发用户故事系列的第九篇。(栏目目录)本文适合听过MPD上《敏捷开发需求管理用户故事分类、颗粒度及组织结构》,或参加过《火星人敏捷开发培训》听过第一天下午课程的读者。若您阅读过程中感觉缺少铺垫的信息,请先阅读:敏捷开发绩效管理之六:敏捷开发生产率(中)(功能点分析,FPA,简化的功能点)敏捷开发绩效管理之七:敏捷开发生产率(下)(简化功能点分析,NESMA,两级简化)若需要更详细情况,请

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 1万+

敏捷开发精准估算

估算并非易事。对软件开发人员来说,估算堪称是最难的工作之一。估算必须考虑所有能帮助产品负责人做出影响整个团队和业务决策的因素。因此,从开发到高管都为它焦头烂额也不足为奇,但这种做法是错误的。敏捷估算并不是什么性命攸关的大事,就只是估算而已,事实就这么简单。 我们不用要求团队周末加班加点来弥补一项被低估的工作。换句话说,与其事后补救,不如事前看一看有什么方法可以让敏捷估算尽可能变得更精准。 与产品负责人(PO)合作 敏捷开发中,产品负责人 要负责确定backlog的优先级次序——即一个按优先级排好序的工作

Xiaohong0716的博客 577

【在线研讨-现场文字】《敏捷开发用户故事分类与组织结构(一期-3)》2012-06-26

一期:活动描述,之一,之二,之三,之四,之五二期:活动描述,之一,之二,之三,之四,之五,之六三期:活动描述,之一,之二,之三,之四,之五 利用功能点数据对业务数据和业务操作进行早期快速估算陈勇-创业-北京(**9107533) 13:25:06好,暂停一下,看大家有没有什么问题?中惠 李-GZ(**215419) 13:26:17你所描述的业务数据,可能需要加以区分陈勇-创业-北京(**9107

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 7518

Scrum Gathering开放分享:敏捷开发早期估算by火星人陈勇,北京,6.30!

本人受邀参加Scrum Gathering的北京站,并在Open Space分享本届大会最富争议话题,欢迎现场参与:敏捷开发早期估算(开放分享)7讲师:陈 勇 | 06月30日 13:00~06月30日 14:00 北京紫光国际大厦-主会场                 所属专题:开放空间会议 序:By 专题制作人:李忠利“响应变化胜过遵循计划”,所以敏捷开发中的估算过程主要指在每个迭代计划会中

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 4564

用户故事敏捷方法》阅读笔记06

              第八章 估算用户故事   故事点有一个很好的特性是团队可以定义自己认为合适的故事点,一个团队可能定义一个故事点为一个理想日的工作,也可能定义为一个理想周的工作。故事点有很多意义,所以故事点代表时间的模糊单位。  故事估算应该由整个团队集体来完成。故事估算属于团队集体有两个原因,第一个,还不确定团队中谁负责完成这个故事,第二个,团队决定的估算可能比个人估算更有用。在估算时...

weixin_30412013的博客 70

【在线研讨-现场文字】《敏捷开发用户故事分类与组织结构(一期-5)》2012-06-26

一期:活动描述,之一,之二,之三,之四,之五二期:活动描述,之一,之二,之三,之四,之五,之六三期:活动描述,之一,之二,之三,之四,之五 总结,大量“主干故事”的组织方式预览(详情在下期)(最后有下期内容预告) 好了,总结一下说了这么多,到底这个分类法有什么好处:1. 文件+操作,简单地勾勒出产品的结构,清晰描述了产品的对外功能2. 文件和操作的数量,可以直接表征产品的规模,并能在甚早期就可以科

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 9346

用户故事敏捷方法》阅读笔记06(完)

第17章 – 第21章 一个完整的实例   这一部分是一个南海岸航海用品(South Coast Nautial Supplies)完整的例子。让我们通过实际的案例来总结我们已经学习过的内容,巩固我们的知识。   用户角色:     从公司人员那里我们获知到项目背景,公司使用产品目录来销售航海用品,但是官网上只有一个简单的网页。公司老板决定要在网上销售商品,并要求在30天内上线。 ...

angel774444的博客 154

用户故事敏捷开发方法笔记06

用户故事得到这么多人的肯定,是因为它自身的优势有很多:1、用户故事强调口头沟通,因为传统的通过各种文档进行表达,每个人对于文字的含义的理解都不同,所以在阅读文档的过程中可能会因为理解的不同对项目的完成造成影响;2、人人都可以理解用户故事,并且用户故事可以增强人们对各种事件的记忆;3、用户故事的大小适合做发布规划以及进行编程和测试;4、用户故事适合于迭代开发,项目过程中可以写出一部分故事然...

weixin_34223655的博客 115

敏捷估计:故事点和衰变

我正在重新阅读Mike Cohn的《 敏捷评估和规划》 。 这是我找到的最好的书,值得一读,即使他有时变得太刻薄,即使您不同意他说的话。 我不知道 例如,我不同意他的观点,“故事点”比“理想日子”更适合估算。 在进行估算时,我们使用的是理想日,因为用这种方式思考更自然,更有用,并且这些估算对团队内部和外部的人都更有意义。 理想天数衰减的估计 科恩推荐“故事点”的原...

danpu1174的博客 151

最佳实践:敏捷需求管理——如何写好用户故事丨IDCF

用户故事是一种简单且非正式的描述,用于捕捉产品需求,从用户的角度出发,明确用户希望实现的功能或解决的问题。通常,一个用户故事格式如下:作为[用户角色],我希望[实现某个目标],以便[达到某个目的]。

m0_69584846的博客 1606

敏捷开发一千零一问系列之十三:故事点好还是人天好?

这是敏捷开发一千零一问系列的第十三篇。(之一,之二,之三,问题总目录)问题这是课堂上提的一个问题,这是一家外企,PO在国外,研发在国内;PO希望大家用故事估算,而团队习惯用人天估算,问用哪个好,或者两个都用好?分析先分析,后出方案。这个是一个典型的有关无我、无住的问题。所谓无我,就是先弄清楚为什么不同的人想要不同的东西,然后本着到底“谁应该要,应该优先满足谁”而非“我应该要,应该优先满...

weixin_30593443的博客 75
上一篇: 敏捷开发05:Sprint Planning 冲刺计划会议详细介绍和用户故事拆分、开发任务细分
下一篇: 敏捷开发07:敏捷项目可视化管理-ScrumBoard(Scrum板)使用介绍
九卷沉思录
博客等级 码龄14年 741粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值