写点什么

构建产品需要多久?

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

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

关注

评论

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

JAVA中的浮点数与二进制

加百利

Java 后端 二进制 6月日更

揭秘视频千倍压缩背后的技术原理之预测技术

拍乐云Pano

2021年最新阿里、腾讯、华为、京东300+道高级面试题,掌握80%进大厂

Java架构师迁哥

react源码解析10.commit阶段

全栈潇晨

react源码

MTU带来的问题

BUG侦探

网络技术 网络运维 GRE 隧道

👋 Agora Flat 开源教室 Web 版上线啦~

千竹

开源 音视频 在线教育 互动白板 互动课堂

微服务架构中的两款流量防卫兵

悟空聊架构

sentinel 高并发 Hystrix 6月日更 流量防控

北京人工智能产业联盟成立,百度CTO王海峰出任联盟理事长

百度大脑

人工智能

一周信创舆情观察(5.31~6.6)

统小信uos

时代变了,程序员の老冤家IE浏览器离场啦?!

空城机

JavaScript 微软 大前端 IE 6月日更

【FlinkSQL】Flink SQL Query 语法(一)

Alex🐒

flink 翻译 FlinkSQL flink1.13

教你三种jQuery框架实现元素显示及隐藏动画方式

华为云开发者联盟

jquery 动画 元素 JQuery框架 网页

【FlinkSQL】Flink Table & SQL 数据类型

Alex🐒

flink 翻译 FlinkSQL flink1.13

爱奇艺于首届MediaAIAC与首届高新视频创新应用大赛斩获三项权威大奖,技术实践领跑行业创新

爱奇艺技术产品团队

【FlinkSQL】Flink SQL CREATE 语法

Alex🐒

flink 翻译 FlinkSQL flink1.13

每日互动CTO谈数据中台(下):从演进、经验到规划

个推

智慧工厂|全方位监控管理,可视化让生产变的透明

一只数据鲸鱼

数据可视化 工业互联网 智慧农业 智慧工厂 纺织企业

4面拿华为offer的水平,面试阿里居然一面就被吊打?

Java架构师迁哥

面试大厂必备六大核心技能Spring+Nginx+Redis+kafka+JVM+高并发

Java架构师迁哥

从 Alpha 到 Beta,这次是 New mPaaS

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS

预言机 - 区块链的触角

趣链科技

区块链 智能合约 预言机

require() 方法详解

编程三昧

nodejs modules 模块 require

【FlinkSQL】Flink Table & SQL 时间属性

Alex🐒

flink 翻译 FlinkSQL flink1.13

一款超牛的 Linux 终端复用神器(附安装、使用教程)

学神来啦

Linux 学习 运维 安全

【有奖活动】体验全局搜索,和小Mi老师一起机器学习!

Geek_6cdeb6

人工智能 机器学习 深度学习 mindspore

《原则》(十)

Changing Lin

6月日更

签约落地!百度、山东共建人工智能数据标注产业基地

百度大脑

人工智能 百度智能云

阿里最新发布的 Spring Cloud ALiBaBa 全解第三版,一睹庐山真面目!

Java 程序员 架构 微服务

从零开始学习3D可视化之场景层级(1)

ThingJS数字孪生引擎

大前端 物联网 可视化 3D可视化 数字孪生

字节跳动三面拿offer:网络+IO+redis+JVM+GC+红黑树+数据结构

Java架构师迁哥

Python——字符串查找/替换/分割

在即

6月日更

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