写点什么

关于“敏捷计划与估计的方法”的讨论

  • 2009-10-15
  • 本文字数:1544 字

    阅读完需:约 5 分钟

在做 Scrum 的迭代计划时,不同的团队有很多不同的做法。在敏捷中国讨论组中,对敏捷计划与估计的方法进行了激烈的讨论( Scrum sprint plan 中规模估算的做法调查关于 story point 的单位)。

克强罗列出有四种敏捷计划估计的方法:

  1. 假设 1 个 usre story point 需 1 个理想人天,Velocity 为理想人天 / 实际人天数
  2. 选择最小工作单元为 1 个 User story point,velocity 为 user story point 数量 / 理想人天数
  3. 选择最小的工作单元为 1 个 User story point,velocity 为 user story point 数量 / 实际人天数
  4. 使用 use case point 作为规模,velocity 为 use case point 数量 / 实际天数

首先讨论的焦点集中于对用于“故事点”的理解上。大家对“‘故事点’是没有单位的”形成共识。Xu Yi 首先指出:

user story 用于评估 user story 的相对大小(bigness),它并无一个可用于度量的单位值。一定程度上可以说 story point 最终会达到具有一定的单位效用。当某产品开发大团队(包括若干 scrum 团队)保持团队稳定,以及开发足够长时间后达到 velocity 稳定时,可以­借由建立一定程度上 story point 向“成本”、“时间”等度量的映射,使其成为“虚单位”。

Daniel Teng 也在博客中分析了在敏捷迭代计划中为什么使用“故事点”,以及为什么“故事点”是没有单位的(巧妙使用“故事点”进行敏捷估计)。使用“故事点”的好处包括:

  1. 使用相对估计
  2. 关注规模
  3. 忽略个人能力的不同
  4. 可以相加。

至于“故事点”的原因在于:

  1. “故事点”是一个相对量
  2. 不同团队的单位“故事点”是不同的,也很难统一。

接下来讨论集中于具体使用“理想人天”和“故事点”做迭代计划的具体方法上。姜志辉的团队的做法是:

我们采用的是 bob 的 dx 迭代 +Joel 的任务分配法。 应该说,原则来自于 bob,方法来自于 joel。

Andy 的做法是:

  1. 记录前面几个 sprint 的实际的可以利用的资源(以人天为单位) 和 实现功能的 IMD(Ideal Man Day),计算 资源利用率:实际完成功能的 IMD / 实际可利用的资源。 源利用率可以取多个 sprint 的平均值,也可取上个 sprint 的单点值。
  2. 即将开始的 Sprint 内可以利用的资源是可以首先计算的,乘以资源利用率 ,得到 本 sprint 的 IMD
  3. 按功能的优先级,本次 Sprint 要达到的目标,选择优先级最高的功能,分解为实现任务,并评估如何实现,不断评审优先级最高的一些功能,直至 Team 不能承诺成为止,也即是所选功能的累积 IMD 达到了 本 sprint 的 IMD。

而 Xu Yi 团队的做法是:

sprint planning 第一部分,团队选择有哪些 user story 是可以做掉的,过去的平均 velocity 只是作为参考而已。 sprint planning 第二部分,团队将选取的 user story 详细分割为 task,以小时为单位进行估计,而且和自己的 capacity 不断地进行对比,当 capacity 耗尽时停止。

接下来话题一转,大家集中到怎样计算每个迭代的速率 (Velocity) 上。Xu Yi 团队的做法很简单直接:

根据过去的 sprint 来统计,平均下来每个 sprint 完成的 story point 就是 velocity。比如前 5 个 sprint 分别完成 9、12、5、16、10,那么 team 的 velocity 就是(9+12+5+16+10)­/5=10.4。

很多人有不同的观点,Vincent Lee 认为:

而我说的算法是“用完成的任务点数除以实际投入的人日数”,假设前 5 个 sprint 分别完成 9、12、5、16、10 个 story point,实际投入的人日数分别为 20、20、25、25、20,(9+12+5+16+10)/(20+20+25+25+20)=0.47,利用这个数值­以及下一个 sprint 的可用资源(比如是 25),就可以算出下一个 sprint 可以完成的工作量:0.47*25=11.75 进一步的,由于可以乐观的认为团队熟练程度在提高,可以调高速度为 0.5,于是预计可以完成 0.5*25=12.5 的工作量。

看来不同团队对敏捷计划与估计的理解不尽相同,做法也各异。您的团队在迭代计划使用哪一种方法呢?

2009-10-15 02:021997

评论

发布
暂无评论
发现更多内容

行云管家免费吗?安全吗?好用吗?

行云管家

安全 行云管家 行云管家堡垒机

js函数式编程讲解

hellocoder2029

JavaScript 前端

EasyRecovery2023手机版数据恢复软件下载

茶色酒

EasyRecovery Photo16

在 CPU 上起舞:聊一聊Linux调度和Go的Runtime调度

黑客不够黑

golang goroutine 协程原理 Linux调度 go 信号异步抢占

前端二面经典面试题指南

hellocoder2029

JavaScript 前端

webpack配置优化,让你的构建速度飞起

Geek_02d948

美团前端面试题集锦

coder2028

JavaScript 前端

2023秋招前端面试必会的面试题

coder2028

JavaScript 前端

PGLBox 超大规模 GPU 端对端图学习训练框架正式发布

百度Geek说

百度飞桨 框架学习 企业号 2 月 PK 榜

字节前端经典面试题(附答案)

hellocoder2029

JavaScript 前端

【立哥】【每日一个小知识】铁扇公主和太上老君到底是什么关系?

Lee Chen

全新CorelDRAW2023矢量图软件更新内容介绍

茶色酒

CorelDraw2023

webpack热更新原理(面试大概率会问)

Geek_02d948

JavaScript 前端

堡垒机采购注意事项说明-行云管家

行云管家

网络安全 数据安全 堡垒机

koa实战

coder2028

JavaScript 前端

ATC:一个能将主流开源框架模型转换为昇腾模型的神奇工具

华为云开发者联盟

人工智能 华为云 昇腾 企业号 2 月 PK 榜 华为云开发者联盟

如何整理自己的前端面试题库

Geek_02d948

JavaScript 前端

js作用域、作用域链和它的一些优化

hellocoder2029

JavaScript 前端

使用JAVA读取和写入EXCEL文件

石臻臻的杂货铺

Java

物联网平台华南1(深圳) 实例化开发实战——实践类

阿里云AIoT

监控 物联网 开发工具 智能硬件 消息中间件

利用规则引擎的M2M实现设备之间联动——实践类

阿里云AIoT

小程序 物联网 智能硬件 网络性能优化

NGINX Ingress Controller 在动态 Kubernetes 云环境中的性能测试

NGINX开源社区

nginx NGINX Ingress Controller 企业号 2 月 PK 榜

MatrixOne 0.7.0: 更稳定,性能更优

MatrixOrigin

数据库 分布式 MatrixOrigin MatrixOne

EasyRecovery16绿色版免费数据恢复软件下载

茶色酒

EasyRecovery16

Memblaze 联合 OpenCloudOS 完成技术兼容互认证

OpenCloudOS

Linux SSD

中创中间件:基于鲲鹏DevKit开发统一监管平台,性能提升55%

Geek_2d6073

Nodejs:ESModule和commonjs,傻傻分不清

coder2028

JavaScript 前端

PingCAP 唐刘:一个咨询顾问对 TiDB Chat2Query Demo 提出的脑洞

PingCAP

TiDB

大咖说·图书分享|云存储:释放数据无限价值

大咖说

云存储

CDR2023安装下载教程及CorelDRAW功能介绍

茶色酒

CorelDraw2023

即时通讯技术文集(第9期):Java NIO和Netty入门系列 [共19篇]

JackJiang

网络编程 IM 即时通信

关于“敏捷计划与估计的方法”的讨论_研发效能_滕振宇_InfoQ精选文章