2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Story points vs. Working hours

  • 2008-04-13
  • 本文字数:1477 字

    阅读完需:约 5 分钟

在 Agile 中, Story point 和 Working hours 都是用于评估完成每个 Story 所要付出劳动,只不过前者使用相对尺寸来估计,后者则使用绝对时间。那么,在实际工作中,Story point 和 Working hours 是否需要联系到一起?

最近,徐毅在 AgileChina 讨论组提出有关“究竟有没有必要或者有没有意义将 Story point 与 Working hours 牵连到一起?”的疑问。之所以有这么一问,是由于他注意到,貌似上层管理者用这些数据来进行人力资源规划。

即部门有多少人头,按照历史的 story point 消耗速率,和汇报的相关人员的 capacity 总和(working hours)来个除法,得到个系数,用这个系数来评估当前的资源状况等,如是否有足够的人力来完成项目。

同时,他认为 story point 更多的是讲求相对大小,而用 working hours 进行估算后,很容易在开发时被直接度量,有“客观标准”之嫌,想了解讨论组中其他人对这个问题的看法。 而 ifire zhang 则认为,这种联系没有太大必要,并以其所在项目的做法为例。

一般把 sprint backlog 分解为 1 天的粒度就 OK 了。然后,如果这个 sprint 里 backlog 过多,则去掉一些,少了则增加一些。

Wang Lijie 也认为,二者任选其一足矣,并指出:

出于更好的计算工作量,我们直接使用的就是 Working Hour, one task no more than 12 hours(2 days)。 个人觉得,使用 Story Point 就不应该再用 working hours, 二者还是有冲突的。

blackanger 所在的团队的做法与上述观点相反。

我们现在是把 story point 和 working hour 挂钩的。也就是说,一个 story point 代表 1 hour, 然后根据实际花费 hours 来评估团队生产力的值。 这样在一个迭代以后,可以评估团队的生产力。帮助计算团队不断的进化的程度。

Anchuan Qian 则指出,脱离特定的团队或项目泛泛地谈这两个东西没什么意义,并给出了自己的观点。

既然是估算,我有两个问题:
1、估算的目的是什么?
2、估算的标准和单位是什么? 1、不可能每个人的目的都一样。我们的目的是更清楚的了解自己的开发能力和工作进度,然后科学的做下一步的计划,更好的控制项目。

2、既然是这样,那么估算就一定要客观和一致。而且毫无疑问,前提是在目前的团队和项目中进行(或者同等的团队和项目)。否则去比较这些数据就没有任何意义了。下面是我用过的两种方式:

一、功能点数。比如说:1、2、5、8、16,这是按照一个功能的复杂度(一般是一张卡片,即 User Story)的大小给值。最重要的就是要保持一致,后面的评估,都是参照前面的相似或类似的功能。

难点就是 Story 的粒度,和评估时候保持一致。

二、真实天数。我们现在就用这个,并且用 Mingle 管理项目,很科学。在做计划的时候,开发者会评估每张 Story 的大小(真实天);然后开发者在开发之前,会再评估一下 Story 的大小;然后 Mingle 也会记录一个开发者完成这张 Story 花费的真实时间(可以根据这些数据自动生成你需要的报表)。而且,真正开发时间特别有价值,它不仅是最好的参考,还可以用来推算其它方面的成本。

针对具体项目,使用 Story point 或 Working hours 都行,只要由团队来决定就行。而且,正如 Anchuan Qian 所说,记录这些历史数据非常有意义。但有些公司倾向于使用它来衡量个体的绩效(当把这种项目管理方式上升到组织级管理时,难免会有这样的需求,这不仅仅是 Agile 遇到的问题,CMMI 也有同样的问题),结果可能势得其反,看上去得到了质量良好的数据,实际意义却并不大。

您是否应用 Agile 方法?如果是的话,您如何看待 Stroy point 和 Working hours 的联系?如果您使用了其它方法,又是如何做项目估算的呢?作为 InfoQ 的热心读者,发表一下您的意见吧。

2008-04-13 19:252071
用户头像

发布了 100 篇内容, 共 25.8 次阅读, 收获喜欢 5 次。

关注

评论

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

读《Software Engineering at Google》(10)

术子米德

架构师成长笔记

基于云效Codeup一键恢复删库保护数据资源,程序员删库跑路不复存在

阿里云云效

云计算 阿里云 程序员 代码安全 删库保护

Nocalhost - 让云原生时代的开发更高效

沃趣科技

云原生 Nocalhost 应用开发

在线CSV转Plaintext(txt)工具

入门小站

工具

[Day19]-[动态规划]分割等和子集

方勇(gopher)

LeetCode 动态规划 数据结构和算法

另一视角看元宇宙:元宇宙文化正悄然改变世界

CECBC

Web3.0 时代,我们的生活将产生什么变化?

CECBC

区块链如何助推著原创保护

CECBC

读《Software Engineering at Google》(08)

术子米德

架构师成长笔记

Go 入门很简单:Writer和Reader接口

宇宙之一粟

接口 Go 语言 4月月更

什么是知识库管理系统?如何搭建企业知识库系统?

小炮

企业知识管理 企业知识管理工具 知识管理系统

安全之花如何盛开在华为云空间的每个角落?

脑极体

linux之rpm命令

入门小站

Linux

老旧项目二次开发指南

阿毛

重构 项目架构 二次开发

Docker 实战教程之从入门到提高 (七)

汪子熙

Docker 容器 docker image 容器镜像 4月月更

企业管理理念之人本善还是本恶

秋去冬来春未远

企业管理 人性本善 人性本恶 一念之差

利用 Dio 完成数据删除操作

岛上码农

ios 跨平台 移动端开发 flutter开发 安卓开发

读《Software Engineering at Google》(09)

术子米德

架构师成长笔记

API对接之模板方法

Rubble

4月日更 4月月更

论利润中心内部核算和集团核算

秋去冬来春未远

阿米巴 利润中心 集团成本

Linux驱动开发-外部中断的注册使用(按键为例)

DS小龙哥

4月月更

spring-cloud-kubernetes的服务发现和轮询实战(含熔断)

程序员欣宸

java 4月月更

TASKCTL C/S客户端两种不同的登陆模式

敏捷调度TASKCTL

分布式 ETL 批量操作 自动化运维 调度任务

在线YAML转CSV工具

入门小站

工具

upnp.exe进程

Sher10ck

日积月累

高效压缩位图在推荐系统中的应用

vivo互联网技术

redis 推荐 存储

java培训JVM内存模型和GC机制的解析

@零度

Java JVM GC

一文读懂在OpenHarmony轻量设备开发应用

OpenHarmony开发者

OpenHarmony OpenHarmony应用开发 轻量设备

关于数字货币的几点问题及回应

CECBC

一文论述元宇宙、NFT及不可回避的Web3 时代

CECBC

Story points vs. Working hours_研发效能_乔梁_InfoQ精选文章