QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

敏捷经济学:故事点成本

  • 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:003358
用户头像

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

关注

评论

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

[C语言]支持IPv6的地址查询的函数getaddrinfo()——实践类

阿里云AIoT

人工智能 网络协议 C语言

不为人知的网络编程(十五):深入操作系统,一文搞懂Socket到底是什么

JackJiang

一文看懂倚天云实例|科普漫画

云布道师

倚天实例

IoT物联网平台通信用Topic梳理——实践类

阿里云AIoT

物联网

WebUI自动化测试框架搭建之需求整理、详细设计和框架设计

Python 自动化测试 unittest 测试框架 selenium

构建隐私计算三大生态,百度点石为政务数据要素市场护航

百度安全

隐私计算 百度安全

灰度直方图及直方图均衡化

timerring

图像处理 数字图像处理

coreldraw2023新功能新图标功能介绍

茶色酒

CorelDraw2023

Asian Paints 利用 F5 Silverline Web Application Firewall 实现转型

F5 Inc

数字化转型 托管 云端

IoT平台实现RRPC同步调用最佳实战——实践类

阿里云AIoT

物联网 API 应用服务中间件

Serverless 时代开启,云计算进入业务创新主战场

阿里巴巴云原生

阿里云 Serverless 云原生

会声会影软件2023新功能详情介绍

茶色酒

会声会影2023

火山引擎DataLeap:揭秘字节跳动数据血缘架构演进之路

字节跳动数据平台

云服务 数据血缘 企业号 2 月 PK 榜

灵眸大赏第一天议程公布|超30+企业,共话“2023年增长”趋势

Morketing

活动 营销

ChatGPT 不是黑魔法,“替代搜索引擎”言之尚早

Zilliz

搜索引擎 ChatGPT

揭秘可视化图探索工具 NebulaGraph Explore 是如何实现图计算的

NebulaGraph

可视化 图数据库

技术分享| 如何使用Prometheus实现系统监控报警邮件通知

anyRTC开发者

Linux 运维 Prometheus 服务器 系统监控报警邮件通知

IoT场景中查看设备当前运行状况实现方案——实践类

阿里云AIoT

物联网 存储

理论+实战,详解Sharding Sphere-jdbc

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 3 月 PK 榜

2023年中国人工智能产业趋势报告

易观分析

人工智能 科技 ChatGPT

全球律师事务所 Ogletree Deakins 借助 F5 云服务快速实现远程办公

F5 Inc

云计算 远程办公 云服务 律师

我直接就是一个下载推特GIF动图的大动作!巨简单!

frank

twitter

hometown-h5-template 一个开箱即用的前端H5解决方案 🎉

HoMeTown

架构 Vue 前端 vite ts

软件测试/测试开发 | Frida 实现 Hook 功能的强大能力

测试人

软件测试 自动化测试 测试开发

爱立信钱包平台 (Ericsson Wallet Platform) 与 F5 合作推动金融包容性和赋权

F5 Inc

架构 安全 金融 移动支付

设备在线/离线状态的缓存方案——实践类

阿里云AIoT

缓存 物联网 存储 数据格式 测试技术

IoT平台业务通信Topic设计最佳实践(共享场景为例)——实践类

阿里云AIoT

物联网 网络性能优化

NFT艺术品铸造竞拍商城dapp系统开发合约定制

开发微hkkf5566

如何在OpenCV Python中从立体图像创建深度图?

吴脑的键客

OpenCV 计算机视觉

IoT存量设备跨账号迁移,动态切换region节点,公共区到企业实例迁移方案——实践类

阿里云AIoT

物联网 API 应用服务中间件 储存

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