写点什么

构建产品需要多久?

  • 2011-09-26
  • 本文字数:1221 字

    阅读完需:约 4 分钟

交付产品大概需要多少时间,这是客户常常提出的问题,也是让敏捷团队感到不爽的问题。一方面,在没有开始动手前就估算整个产品功能的工作量,等于无头苍蝇到处乱撞。然而,很多情况下,这是一个很现实的问题,团队不能将其抛在脑后。

Jarrod Roberson 提到:不应该估算一整个项目,因为这与敏捷哲学完全是背道而驰。团队最多能够做到的,是根据成本和其他约束条件设定一个日期,产品负责人应该判断到这个日期截止要完成哪些功能。Pascal Thivent 补充道:任何前期的估算都会导致固定的产品范围,这正是敏捷反对的。更极端的建议是:敏捷团队永远不要介入需要前期估算的项目中。

但是,这么做在现实世界中可行吗?

敏捷团队常常遇到这样的情况,客户需要一个大概的估算,以辅助多方面的决策。 Hugo Palma 认为

我认为,对于实现给定的功能,所有的客户都想了解大致估算,想知道要花多少钱。有人说:如果用敏捷,就不能这么做;我不同意。现实世界中的客户希望知道在一个项目上大概要花多少钱,至少有个粗略的概念,敏捷是可以调整、适应的。

Mike Cohn 提到:他常常被问及,交付一个产品大概要多少个小时。他推荐的第一种方式,是推迟分析,直到有足够的历史数据,或者在 sprint 规划会议上能够得到一些承诺,再做分析。不过,有时候是需要粗略估算。对于这样的情况,Mike 建议使用 backlog 取样技术,找出不同规模用户故事的平均小时数。

如果我们把 1 个点的故事平均一下,也许可以发现大概每个点数需要 3.2 个小时,2 个点的故事要拆分成任务,每个点数大概 4.3 个小时,3 个点的故事平均每个点 4.1 个小时,如此类推。 然后就可以把平均小时数与产品 backlog 中对应规模的故事数乘起来,再加总。

Mike 提醒大家注意:这种技术会把任务识别和估算步骤中引入的不足全部包括进去。Rob Bowley 的评论是: backlog 取样技术没有效果,因为软件开发无法预测,而且像这样的技术估算出来的工作量会低于实际要完成的工作量。

尝试这么做,是没有道理可言的。它必将大大低估所需的工作量。考虑到软件开发需要投入的资金,结果就是对组织造成财务上的伤害,或是毁掉某些人的事业。

Matteo Vaccari 提到:尽管使用 backlog 采样估算也许有助于得到一些数字,但还是会不断出现新的未知数,比如团队成熟度、一起工作的历史数据、完成的定义,等等;这些都将使得估算失去作用。

这种情形下的另一种选择,是采取Martin Fowler 提议的“柔软范围(Scope Limbering)”方法,其用意是:从固定范围合同开始,然后逐步教育客户敏捷的优点,帮助他们克服“固定范围的海市蜃楼(FixedScopeMirage)”。Rob Thomsett 提议的“翻番再加一点(double and add some)”游戏,也与Martin 的方法类似。

因此,在真正意义上,看起来没有哪个方法是完备的。它们都有某种程度的主观性,因此有自己的问题。不过,如果在需要粗略估算的场景中使用这些技术,也许能帮助利益相关者做出更成熟的决策。

查看英文原文: InfoQ: How Long Would it Take to Build the Product?

2011-09-26 21:292065
用户头像

发布了 479 篇内容, 共 159.3 次阅读, 收获喜欢 50 次。

关注

评论

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

HDC2022 携手共创鸿蒙生态 增长解决方案焕新升级构筑商业增长闭环

叶落便知秋

数据湖(十八):Flink与Iceberg整合SQL API操作

Lansonli

数据湖 11月月更

【C语言】char 关键字

謓泽

11月月更

计算机网络:差错控制

timerring

计算机网络 11月月更

【C 语言】const 关键字

謓泽

11月月更

我没想到,做IT还有感动众生的机会

明道云

永续合约交易所的开发有哪些特征?

W13902449729

合约交易所开发 区块链交易所开发

一款设计和模拟数字逻辑电路的LogiSim工具

芯动大师

集成电路 Verilog 11月月更 logisim 模电与书店

HDC 2022 Day2精彩速递:开发者齐聚松山湖,深度体验鸿蒙开发套件

最新动态

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.1版已发布

JackJiang

即时通讯 MobileIMSDK im开发 开源im

云栖探馆!云小宝首秀遇上老司机小龙,猜猜谁赢了?

OpenAnolis小助手

龙蜥社区 2022云栖大会 小龙 云小宝 开源活动

华为开发者大会2022:HMS Core 3D建模服务再升级,万物皆可驱动

HarmonyOS SDK

hdc HMS Core

Sonatype Nexus 如何把多仓库合并在一起

HoneyMoose

2022HDC|华为阅读:探索阅读体验新变革 助力阅读生态创新发展

最新动态

HDC2022 携手共创鸿蒙生态 增长解决方案焕新升级构筑商业增长闭环

最新动态

既要技术制胜,也要体验为王:今天我们需要怎样的WLAN?

脑极体

2022-11-05:给定一个逆波兰式,转化成正确的中序表达式。要求只有必要加括号的地方才加括号。

福大大架构师每日一题

算法 rust 福大大

2022华为开发者大会:华为阅读人-车-家一键流转,实现全场景数字阅读新增长

最新动态

Go语言开发小技巧&易错点100例(二)

闫同学

go语言 11月月更 go开发

星闪:咫尺之间,联接智能世界

脑极体

python小知识-并发编程(1)

AIWeker

Python 人工智能 python小知识 11月月更

数据库审计的四种类型

阿泽🧸

数据库审计 11月月更

峰会实录 | 基于StarRocks和腾讯云EMR构建云上Lakehouse

StarRocks

数据库

数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表

Lansonli

数据湖 11月月更

架构实战营模块4作业

冷夫冲

架构实战营

一次遍历导致的崩溃

小小怪下士

Java 程序员

Fastjson最想版本RCE漏洞【漏洞分析】

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

业务监控设计主要关注点

穿过生命散发芬芳

业务监控 11月月更

数据湖(十七):Flink与Iceberg整合DataStream API操作

Lansonli

数据湖 11月月更

Mac部署spark2.4.4

程序员欣宸

大数据 spark 11月月更

计算机网络:流量控制与可靠传输机制

timerring

计算机网络 流量控制 11月月更 可靠传输

构建产品需要多久?_研发效能_Vikas Hazrati_InfoQ精选文章