为什么你的需求估算老是翻车?看看这个故事就明白了......
创始人
2025-03-17 20:40:50
0次

为什么软件开发的实际工作量通常比估计的高几倍? 我们来看一个故事就明白了:

我们决定沿着旧金山到洛杉矶的海岸线来一次远足旅行, 走到纽波特沙滩去看望朋友们。路线如下图:

 

旅程一共400英里,按照每天行走10小时,时速4英里估算,10天就可以了!

软件项目的计划一开始很完美。

于是我们告知朋友们下个星期天的晚上备好晚餐。亲爱的朋友们已经迫不及待地想见到我们。

第二天我们早早就爬起来,兴奋地准备开始这趟冒险之旅。

翻开地图,我们才发现不对劲, 海岸线没有那么直!有“数百万”个弯弯曲曲之处。

 

一天走40英里的话只能跨过半月湾,到不了洛杉矶。

软件一开始就遇到了实际困难,估算不准确。

这趟旅程至少有500英里,而不是一开始估计的400英里。我们想还是现实一点好,于是打电话给朋友们,把晚餐推迟到了周二。朋友们略感失望,但也表示理解。

只好把交付时间推迟!

终于动身。两个小时之后,我们仅仅走到动物园。这到底是怎么回事?

[[276110]] 

不做不知道,这可不是田园牧歌。沙子,水,台阶,小溪,还有发怒的海狮!我们每小时最多走2英里,仅仅是估计值的一半。

我们要么每天行走20个小时,要么把拜访推迟到另一个星期。

我们决定折中处理,每天走12个小时,同时把拜访推迟到之后的周末。我的朋友们知道后,有点小不爽,但还是同意了。

交付时间再次推迟,客户开始不爽。

12个小时的艰难行进以后,我们准备在莫斯沙滩扎帐篷过夜。但是你不知道,在狂风中安扎帐篷有多难!到了半夜我们才终于搞定。但还是安慰自己,没关系,明天我们会加快步伐。

悲剧的是,我们十点钟才醒,而且浑身痛得要死。今天无论如何都走不到12个小时了,没关系,今天就走10个小时,明天花14个小时补回来。

又走了一段,我发现同伴一瘸一拐的。可怕的水泡出现了。因为我们是那种把困难扼杀在摇篮里的精英团队,所以现在就要治好他的脚!

我慢跑45分钟到了Pescadero,带回一些邦迪来拯救我的队友。回来的时候,太阳已经落山,精疲力竭的我决定结束今天的行军。虽然只前进了6英里,但有了新鲜的补给,我们坚信明天可以赶上落后的进度。

出现了没有预料到的外部和内部困难,但团队还是信心十足

第二天醒来,我们用邦迪包好了脚,继续前进。可是转弯之后,前面是一道深沟,完全没路走。

[[276111]] 

地图上面根本就没有标识!我们得往内陆走3英里才可以绕过它。我们还在一些用围栏圈起的联邦保护区里迷路了两次,到中午才重新回到了海岸线。花了大半天时间就走了一英里。但我们不想再次推迟约会时间。为了赶上进度,我们走到了半夜才停下来。

遇到了严重的技术障碍,加班!

在大雾中睡了一觉醒来,我的同伴发起了烧,还伴随着剧烈的头痛。

我问他:“还能继续走吗?”

我的同伴不温柔地回应了我:“你以为呢?傻X!我在冻得要死的雾里连续走了三天了!”

好吧,今天看来是失败了,但是没有关系,我们会休息好,明天行走14个小时,会赶上进度的。

程序员疲惫不堪,士气受到严重打击,PM还想通过加班来赶上进度

第二天,我迷迷糊糊地睡醒,打开地图。

我的老天鹅,花了5天时间,却连湾区都没有走出去!太可笑了!还是实际一点,打电话给我已经不爽的朋友们说明情况吧。

 

我的同伴说:“四天走了40英里,旅途一共600英里,所以需要60天时间,或许会要70天。”

我喷回去:“TMD不可能。虽然我没有这样走过,但我清楚,从旧金山走到洛杉矶不可能要70天!

我接着犟下去,“如果每天走16个小时,我们就可以赶上进度!即使艰难,但这是我们的至暗时刻,绝不放弃!”

同伴终于爆发:“一开始说星期天就会到的仁兄不是我!真的要被你搞死了!”

严峻的形势,巨大的压力, 团队内部出现争斗

我们都沉默了。正好电话打不通。我决定等他明天气消了再打电话给朋友。

又是新的一天。可是在10点以前,我们都只能呆在帐篷里躲避外面的暴雨。按摩酸痛的肌肉,避开新长的水泡。没有人提到昨晚的争执,但悲剧的是,我的二百五同伴把水瓶忘在了营地,又得花30分钟回去找。

新的困难,低落的士气,频频犯错的成员

我记得我们已经没有卫生纸了,需要在下一个镇子采购补给。转过一道弯,又是一道湍急河流挡在面前。这时候我觉得我的肚子也开始湍急起来...

最后一根稻草,软件项目彻底崩溃了......

注:红色批注为码农翻身老刘所加,原文地址:https://www.quora.com/Why-are-software-development-task-estimations-regularly-off-by-a-factor-of-2-3

【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】 

戳这里,看该作者更多好文

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...