9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

敏捷经济学:故事点成本

  • 2010-11-10
  • 本文字数:1689 字

    阅读完需:约 6 分钟

为谁而写?

本文的目标读者主要是那些负责软件开发项目 / 团队的预算和管理的人。当然,其他诸如开发人员,质量保证人员,产品经理或者 CEO,CIO 们也可能对本文感兴趣。

为什么我们需要估算故事点成本

故事点是用来估算工作的。投资必然期望有所回报。如果期望经济上的回报,那么理解工作本身的成本对于获得很好的投资回报率(ROI)是很关键的。即使没有 ROI 的要求,比如潜在的好处只是为了符合法规,那么公司管理层通常也希望搞明白,在公司有限的资金中,到底花费了多少钱来完成这些特定的功能,迭代或者发布。

我们又该怎么做呢?

我们在这里讨论的是一种基于历史参数的方法。这种方法基于先前项目的历史数据。所以在得出一套可靠的模型之前,我们必须有些历史数据的积累 。

RC = 产品某一次发布的总成本(美金)

RSP = 该发布包含的总的故事点

RSPC = 发布的每个故事点的成本

RSPC = RC/RSP

一旦你有了一次发布的数据,你就应该开始对所有历史发布进行计算。接下来一步就是算个平均值:

产品的平均 RSPC = ∑ RSPC?;, RSPC?;………RSPC? / N

如果你想计算所有产品的故事点成本,那么就全部加起来再平均一次就行了。当热,对于大多数计划而言,针对每个产品线做计划是很有用的,而像这样拔高到高层面的成本计算就有点水份了。

  1. 增加功能 X、Y 或者 Z 的成本是多少?
  2. 交付版本 2.1.0 的成本是多少?
  3. 迭代的平均成本是多少?
  4. 我们能在剩余预算之内完成所有的故事点吗?

多久需要更新一次呢?

你将敏锐地发现我们正在使用的是历史数据,然而历史数据只有在没有发生变化的情况下才准确。为了减少整个过程中由于团队规模、能力以及工作复杂度的变化和不同而带来的误差,我们需要定期重新计算。多久重新计算一次呢?那就仁者见仁,智者见智了。我每个月计算一次,因为我在一个快速成长的团队工作,新的产品不断涌现。我需要经常重新评价我的成本。

一个更加稳定的团队和产品可能只需要每 6 个月计算一次。还是那个观点,要力保数据准确。

例子

现在就让我用我最近带领的一个项目做为例子来更好地阐述一下这个观点。这个项目叫做 Patient Kiosk,该项目的主要目的是构建一个集成化的软硬件平台,通过这个平台可以来指导病人,病人也可以通过一个按在臂膀上的临床装置参与到医疗保健活动中去。你可以想象这项工程需要花费很多时间,而且并不是所有部分都跟软件有关。但这个项目还是使用了敏捷技术和故事点来做估算。

我们使用 Jira 来追踪用户故事和故事点,但是 Jira 厂商似乎严格地把他们的产品跟开发人员挂钩,Jira 里面并没有基于故事点成本的财务和预算机制。所以我就通过使用 excel 来追踪故事点成本了。

首先,我给每一个月份都做了一张工作表单:

  • 每个发布的故事点
  • 每个发布的总开销
  • 每个发布的实际用时

通过这 3 个数据,我就可以计算出每个月的成本以及平均值。表 1 展示了这个例子。

表 1

接下来,我把每个月的平均成本加起来,计算出每个月的平均值,从而来追踪一段时间内的变化情况。同时我也画了一些基本的图表来显示趋势。当然你可以准备更多数据或者图表,但这取决于你的需要。表 2、表 3 给我们展示了这个例子。当产品管理层想要知道构建某些功能需要多少成本的时候,我就用表中红色数字乘以团队估算出来的故事点数就可以了。

表 2

故事点成本 - Patient Kiosk

每个故事点所花的小时数 – Patient Kiosk

混合平均

平均值(每小时) $ 45.39

中值(每小时) $ 46.25

表 3

你可能会问:“如果故事点是你的成本动因以及估算工具,你又为什么去追踪小时数呢?”我和我的团队对于故事点以及速率这些概念都很熟悉,但公司的其他人则不了。把速率这一概念转换成小时数,对帮助那些熟悉了传统估算方法的利益关系人理解我们的做法是很重要的。

故事点成本把一个相当抽象的、以开发人员为中心的概念和现实商业世界联系起来了。这是很有必要的。如果我们试图在我们的开发领域中使用故事点,那么它们必须要跟商业部门使用的表单、帐目一脉相承。

查看英文原文: Agile Finance: Story Point Cost


感谢石永超对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2010-11-10 00:003665
用户头像

发布了 114 篇内容, 共 37.7 次阅读, 收获喜欢 2 次。

关注

评论

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

10-6-华为云OBS大数据存算分离方案,助力企业顺利实现数字化转型!

科技之光

前端监控系列4 | SDK 体积与性能优化实践

字节跳动终端技术

性能优化 前端监控 sdk 体积优化

Spring Boot「16」自定义错误页面

Samson

Java spring 学习笔记 spring-boot 10月月更

2022云原生峰会开启报名 | 一年一度云原生技术风向标就看这里!

阿里巴巴云原生

阿里云 云原生峰会

微信小程序部署流程

codingyt

10月月更

华为云CDN,是怎样满足各行业全场景加速需求

IT科技苏辞

聊一聊作为高并发系统基石之一的缓存

Java全栈架构师

Java 缓存 后端 高并发 架构师

华为云对象存储OBS,为不同企业提供云存储方案,助力企业更好经营

科技之光

【DS】二叉树大总结!

安苒

数据结构 二叉树

华为云CDN加速服务,如何让你的网速“飞”起来!

秃头也爱科技

【融云出海白皮书免费看】出海洞察之沙特的「土豪行为」盘点

融云 RongCloud

白皮书 出海

超高性价比的云服务器-华为云耀云服务器

科技之光

Spring Boot「15」统一异常处理

Samson

Java spring 学习笔记 spring-boot 10月月更

精细化边缘安全防护:如何防止CDN域名被恶意刷量?

阿里云CloudImagine

CDN 边缘安全

华为云CDN,如何赋能企业数字化发展?

IT科技苏辞

华为云虚拟专用网络VPN,专为解决现代企业云链路痛点而生

科技怪授

网络 网络VPN

聚焦云计算、大数据、人工智能等开源技术,这场开源开发者的盛会不容错过!

OpenAnolis小助手

人工智能 云计算 大数据 COSCon'22 开源盛会

03 详细架构设计

神奇的叶叔叔

ript刷LeetCode拿offer-树的遍历

js2030code

JavaScript LeetCode

JavaScript刷LeetCode拿offer-栈相关题目

js2030code

JavaScript LeetCode

NFTScan 与 Cobo 达成合作,双方将共同推动 NFT 资管安全市场的发展

NFT Research

区块链 NFT 数据基础设施

华为云弹性公网IP,如何解决现代企业的网络IP烦恼

科技怪授

弹性公网IP

华为云虚拟专用网络VPN,为现代企业打造优质的混合云计算环境

科技怪授

网络VPN

Wallys/DR7915-wifi6-MT7915-MT7975-2T2R-support-OpenWRT-802.11AX-supporting-MiniPCIe-Module//QCA9882/QCA9880

wallys-wifi6

QCA9882 MT7915

“程”风破浪的开发者|总结巧用CSS实现各种效果的「百计千谋」

叶一一

CSS 学习方法 前端 “程”风破浪的开发者

JavaScript刷LeetCode模板技巧篇(二)

Geek_07a724

JavaScript LeetCode

JavaScript刷LeetCode-字符串类解题技巧

Geek_07a724

JavaScript LeetCode

华为云对象存储OBS,安全可靠的云存储服务,让企业轻松上云

科技之光

华为云虚拟专用网络VPN,助力现代企业云上业务创新发展

科技怪授

网络 网络VPN

这几款音乐人必备的软件,你了解吗?

懒得勤快

全嘉宾阵容官宣 | 2022 云原生峰会即将启动,实战派企业向你发出邀请

阿里巴巴云原生

阿里云 云原生 峰会

敏捷经济学:故事点成本_研发效能_Christopher R. Goldsbury_InfoQ精选文章