`
love~ruby+rails
  • 浏览: 857556 次
  • 性别: Icon_minigender_1
  • 来自: lanzhou
社区版块
存档分类
最新评论

Sprint规划:故事点数 vs. 小时数

阅读更多

长久以来,对于sprint规划中应该使用故事点数还是小时数,一直有着不分胜负的争论。双方阵营似乎都有一系列理由,支持人们采纳自己的方式而不是对方的做法。Mike Cohn坚决支持将用户故事拆散成任务,然后再用小时数估算。而Jeff Sutherland提出:有些跟他一起工作过的、非常出色的团队一直在使用故事点数,并用其绘制燃尽图。很多敏捷资深人士都表达了自己的观点,说明自己喜欢哪种方式及其原因。

在Mike看来,他不喜欢在spring规划中使用故事点数,因为故事点数更适合用作长期度量,对于短时间规划没有帮助。他觉得:

假设有一支棒球队已经进入赛季中段。他们在已经进行过的41场比赛中,场均得分98分。他们可以说:“我们在剩下的赛季里大概每场平均也能得到98分。”但是他们不会在某场比赛前这样说:“我们之前的平均得分是98分,所以今晚我们会得到98分。”

这就是为什么我说速度可以用作长期预测,而不适合进行短期规划。

Tara Lee Whitaker不同意故事点数可以用作短期度量。在她看来:

如果每个故事都足够小,并因此可以“准确”估算,而且可测试性足够好,人们可以据之创建用以确认验收的测试,那么把故事拆成更小的部分,或是重新以小时数估算之,这样做也就没多大好处了。

对于以小时数估算故事这样的方式,她非常担忧:

当我们开始讨论将故事拆分成小时任务时,我主要担心的是:我们无法从这样做得到的早期警告信号中获益,并且当我们发现完成一个故事所需时间超过预期时,那已经太晚了。

Jim Schiel提出:也许有可能以故事点数和小时数两种方式来做sprint规划。然而,用小时估算的回报也许会让这种做法看起来不值得这么做。他认为:

现在咱们来看这样一个Scrum团队,他们承诺要完成10个2点的产品Backlog条目。如果他们能够全部完成,他们在这个sprint中的速度就会达到20个故事点数。下一个sprint,他们大概会尝试再次完成20个故事点数。此后的sprint的速度多少都会受上个sprint的影响。这种关系会一个一个sprint传下去,团队会得到一个大概的速度,在18与22之间。

你能用小时数来达到同样的效果么?可以,但是要想做好就得付出非常多的成本。你到底想为什么买单?是完整的、可用的软件,还是非常准确的估算?

Jack Milunsky进一步阐述了故事点数的意义,他提到了下列优势:

  • 通用度量——故事点数是整个团队中通用的度量方式,不会因为经验、个人技术水平或团队某个人而受到影响。
  • 稳定状态——等到第三个或第四个sprint过后,团队的产出就会达到稳定状态,产品负责人也更易于把稳定的故事点数填写到backlog列表中。不会多,也不会少。
  • 鼓舞士气——一旦团队达到稳定状态,业务人员就能相信技术团队的能力,这能让团队士气高昂、充满自信。

Tomas Björkholm提到选择故事点数方式的下列原因:

  • 原因之一:估算是为了描述故事的大小,而不是要知道实现这个故事需要多久。
  • 原因之二:理想化的人日作为度量标准,它会随时间推移根据团队的表现发生变化。故事点数相对稳定。
  • 原因之三:已经证明,相对估算要比绝对而且理想化的人日正确性更高;同时,由于人日是时间度量单位,尽管可以用其做出相对估算,但还是很容易偏向绝对的使用方式。

Tomas补充道:

Staffan Nöteberg在关于Pomodoro技术的演讲中提到:大多数人对于按实际时间估算都感到不舒服。由此我想到:不舒服的人,工作效率都不高;因此,按照天估算就会导致工作效率不高。

Mike Cohn提及:在故事点数和工作小时之间没有线性的对应关系。在他看来,每个故事的大小都会基于标准差有个分布范围。

一个点数等同于一个分布范围,等同于x和某个标准差的结果。同样的,2点的故事也可以依此类推……

因此,人们不能告诉项目干系人:按照以故事点数方式计算的速度,团队能在某个确定的时间完成任务。一定是个时间范围:

这个范围可是是日期范围,比如“我们可以完成你的产品backlog中所有的条目,但是完成时间大概在5月或者6月。”或者可以是功能范围,“我们可以在5月20号完成,你也是这么要求的,不过我们到时会完成120个到140个点数,也就是在这两个产品backlog条目之间。”

Mike Cohn还提供另一种方式,它可能符合精益原则,名为“承诺驱动的sprint规划 ”。使用这种方法,团队不会讨论故事点数或是速度。他们就是从backlog中取出优先级高的条目,根据各自的能力,把任务分配下去,按小时估算,并实现自己的承诺。

因此,这两种用作sprint规划的技巧各有优劣。到最后,可能还要看团队更习惯哪一种做法。您喜欢哪一种呢?原因何在?

查看英文原文:Sprint Planning: Story Points Versus Hours

分享到:
评论

相关推荐

    关于springboot我出过的那些错误.docx

    Spring Boot 中的常见错误和解决方法 在使用 Spring Boot 框架进行开发时,经常会遇到各种错误和问题。这些错误可能是由于配置不正确、编码错误或其他原因引起的。在这里,我们将记录一些常见的 Spring Boot 错误和...

    Jboss-Spring

    这两个核心文件`jboss-as-sprint-int-5.0.0.GA.jar`和`jboss-spring-int-vfs.jar`是实现这一集成的关键组件。 1. **Spring框架**:Spring是一个开源的应用框架,它提供了全面的企业级应用开发解决方案,包括依赖...

    附件3:集团标准工期.zip

    例如,敏捷开发中的每个冲刺(Sprint)通常设定为2-4周,而瀑布模型则更侧重于每个阶段的连续性,如需求收集、设计、实现、测试和维护等。 3. **系统集成**:在大型IT项目中,系统集成阶段的标准工期涉及不同组件或...

    jar文件Could not find the main class解决办法

    NULL 博文链接:https://yintech.iteye.com/blog/374842

    使用EclipseME开发J2ME程序(含测试源码)

    使用EclipseME开发J2ME程序(含测试源码) <br>SUN...//developer.sonyericsson.com/site/global/home/p_home.jsp<br><br>Sprint PCS Java无线工具包 http://developer.sprint.com/site/global/home/p_home.jsp<br>

    cryengine控制台命令

    6. pl_movement.power_sprint_targetFOV:视野,而功率冲刺 7. sys_MaxFps:最大FPS设置默认是0 8. r_FullscreenWindow:窗口最大化 9. r_FullscreenPreemption:默认值:0 10. r_overrideDXGIOutput:默认值:0 11....

    Springboot+clickhouse 集成demo

    **SpringBoot + ClickHouse 集成详解** 在现代大数据处理和实时分析的场景中,ClickHouse作为一个高性能的列式数据库管理系统(Column-Oriented DBMS),被广泛应用于数据分析领域。而SpringBoot作为Java开发中的...

    Spring Boot多线程demo

    Spring Boot 多线程 Demo Spring Boot 中使用多线程的方式有很多种,最简单的方式就是使用 @Async 注解来实现。下面我们将详细介绍如何使用 @Async 注解来实现多线程编程。 多线程前言 在 Java 中,多线程编程是...

    使用org.eclipse.paho.client.mqttv3实现mqtt 消息队列

    MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息协议,常用于物联网(IoT)设备之间的通信。它具有低开销、低带宽占用、高可靠性以及支持断线重连和消息持久化等特性,非常适合资源有限...

    jboss-as-sprint-int-5.0.0.GA.jar

    jboss-as-sprint-int-5.0.0.GA

    传感网应用开发:电池电量监测.pptx

    电压采集与显示函数使用 HAL_ADC_Start() 函数和 HAL_ADC_PollForConversion() 函数来采集电压值,然后使用 sprint() 函数将电压值转换为字符串,最后使用 printf() 函数将字符串打印出来。HAL_Delay() 函数用来延迟...

    Kemulator 手机游戏模拟器

    j2me开发中少不了每天跟各种各样的模拟器打交道,什么sun的wtk模拟器,nokia的模拟器,sonyericsson的模拟器……所有这些模拟器都有...Sprint pcs M3G 1.1(JSR184) WMA1.0(JSR120) Bluetooth(JSR82) PDA PIM(JSR75)

    Maven+Sprint MVC简单入门例子

    ** Maven + Spring MVC 简单入门例子 ** 在软件开发中,Maven 和 Spring MVC 是两个非常重要的工具。Maven 是一个项目管理和综合工具,它帮助开发者管理依赖、构建项目,而 Spring MVC 是 Spring 框架的一部分,...

    抄板软件Sprint-Layout 6.0 完整版.zip

    [Windows] 搞电子的福音,抄板软件Sprint-Layout 软件简介】  Sprint-Layout 是一种PCB画板/抄板DIY软件,比AD和protel简单易用。  软件由 tplin 根据 Sprint-Layout 6.0 德文20140310注册版汉化修改,绿色版...

    design-sprint, 产品设计 sprint 材料.zip

    design-sprint, 产品设计 sprint 材料 产品设计 sprint这里 repo 是用来帮助指导设计 sprint的文档集合。 它包含不应严格遵循的准则。 每个 sprint 都应该针对单个项目进行定制。 它是由thoughtbot团队编写的。上一...

    User Stories Applied - For Agile Software Development (pdf REPOST)

    - **迭代计划**: 每个迭代周期开始时,团队会从产品待办事项列表中选取一定数量的用户故事进行实现,这些用户故事构成了迭代待办事项列表(Sprint Backlog)。 - **验收标准**: 对于每个用户故事,需要定义清晰的验收...

    DOM库Sprint.js.zip

    Sprint.js 是浏览器中一个高性能、轻量级 DOM 库。尤其适用于带宽和资源受限的设备(如:手机和平板电脑)。 标签:Sprint 分享 window._bd_share_...

    jboss-as-sprint-int-5.0.0.GA.jar jboss-spring-int-vfs.jar

    "jboss-as-sprint-int-5.0.0.GA.jar" 和 "jboss-spring-int-vfs.jar" 是与JBoss应用服务器相关的两个关键组件,主要用于Spring框架与JBoss服务器的集成以及虚拟文件系统(Virtual File System,VFS)的支持。...

    Sprint-Layout 6.0 绿色汉化版(20180709更新)

    《Sprint-Layout 6.0:高效便捷的电路板设计工具》 Sprint-Layout 6.0 是一款备受赞誉的电路板设计软件,专为电子工程师和爱好者提供高效且直观的抄板服务。这款2018年7月9日更新的绿色汉化版,不仅保留了原版的...

    【基于vscode开发vue项目,连接postgresql数据库 3 】对应资源

    博客对应资源:其中包括vue项目、sprintboot项目、postgresql数据库部分。 本资源是其中的vue项目和sprintboot项目。 详情可看这篇博客...

Global site tag (gtag.js) - Google Analytics