赶知识网

为什么软件开发周期总是预估的2~3倍

2013-07-17 / 2758次点击 轻松一刻
提问:为什么软件开发的周期总是预估的2~3倍?这是开发者的错?还是管理的问题?技术粗糙,或者其他原因?或者这只是程序猿世界的自然法则?

回答:Micheal Wolfe 创业者 (7444票)

来,让我们从旧金山出发,沿着西海岸徒步旅行,到洛杉矶的纽波特沙滩面基吧!<( ̄︶ ̄)/

看看地图,然后计划一下路线!

Quora精选:为什么软件开发周期总是预估的2~3倍
路线全图

嗯嗯,这趟红色之旅长约400英里(643.7公里);汉子们一天睡8小时,吃2小时,逗猫2小时,还能能走个10小时,这样每天走40英里(64.3公里)妥妥的吧!

所以,10天后的晚上六点,我们就能威武滚到洛杉矶,和好基友饭醉啦!♂( ̄▽ ̄)/

赶紧让洛杉基友订好这周末的饭局,想想都胸奋不已啊!(っ`▽`)っ


第二天,大家一早集合,背好行囊、摊开地图,规划第一天的路程……嗯?=_="

Quora精选:为什么软件开发周期总是预估的2~3倍
第一天大图

看上去前方道路多曲折啊。走40英里路只能到「月亮湾」的一半。这么一看,整趟路途不是原来的400英里,而是500英里!(×_×)

赶紧打电话给洛杉基友,推迟一下饭醉时间,必须现实一点。基友有虽然点小失望,但还是热切期待着我们的到来。

再说10天变12天,好像也没什么大不了的嘛~~ ^_^;;;

带着第一天的小挫败,我们总算出发了。2个小时以后,我们总算走过了家附近的动物园,然后俯瞰这条小路:

Quora精选:为什么软件开发周期总是预估的2~3倍
小路

兄贵们……这玩的是蜗牛模式啊!沙子地、漫水路、陡阶梯、乱地裂、愤怒的海狮…… Σ( ° △ °)

我们的速度最多也就2英里每小时,只有计划速度的一半喂!

我们一天走20个钟头!ヽ(#`Д?)?

或者,还是让基友再把饭醉日期推后吧…… = =#

这样!我们来个敏捷策略,双管齐下:路上我们不逗猫了,一天走12个小时,然后再让基友把饭醉日期推后到下个周末。

洛杉基友有点毛,但还是办妥了。( ▔___▔)y-~

走了12小时以后,我们打算在摩斯的海滩埋锅造饭搭帐篷。

靠!这么大风里永远支不起个像样的帐篷啊! ヽ(#`Д?)?

最后闹到半夜才躺下,没什么大不了的,我们都是维斯特洛的铁民,明天走快点就行了。


我们睡过头了,滚来滚去磨蹭到10点才起来。〒▽〒

次噢!这个样子怎么可能一天走12个小时!= =#

算了,今天就走10小时吧,明天再加把力走14个小时。

狠拼了几个小时以后,我发现队友一瘸一拐地跟不上了。哦~香蕉你个臭粑粑,脚上好大一个水泡啊!

必须现在处理……把问题扼杀在摇篮里,我们是一个团队!

我跑了45分钟,3英里路,买来了邦迪给我队友,我累坏了,而且太阳也快下山了。这一天基本也报销了,我们只走了6英里。但是我买来了新的补给,情况还行,明天一定会更好!


起床以后,我们绑上绷带继续上路。前方豁然开朗……次噢次噢次噢次噢,这是啥么啊!

Quora精选:为什么软件开发周期总是预估的2~3倍
悬崖

坑爹地图上根本没画这鬼地方啊!尼玛一座悬崖让我们飞过去啊!(╬☉д⊙)

我们只好绕道内陆,走了3英里,迷路两次,中午才回到正路。(>﹏<)

这半天相当于只走了1英里。

再打电话给洛杉基友延期吗? 不!行!

我们必须熬夜赶路,这样才能赶上日程!


一夜困顿以后,队友早上醒来头痛欲裂,高烧不退。

我要给他打打气,让他坚持下去,

结果他当时就毛了「坟蛋!我已经在冰冷的冻雾里走了3天没歇了!」

好吧,今天又废掉了,我们就修整一下吧。

修整以后,我们必须日行14英里!因为我们已经习惯了!

没几天了,我们坚持一下就行了!


早上颤颤巍巍地醒来,强迫自己看一下地图

Quora精选:为什么软件开发周期总是预估的2~3倍

坟蛋!我们走了5天,才走了这么点啊!?(?д??)

必须做重新仔细估算一下路程,召集来所有队友开会!

还没醒的给我吼起来! 每一个人都必须再次面对现实!

队友说:「我们4天走了40英里,还有600英里的路,所以应该60天才能到,保守点估计,70天吧。」

我就崩溃了:「70你个大爷!好吧,虽然我对于这种旅行没有经验,但从旧金山走到洛杉矶怎么可能要70天!!你让我怎么和洛杉基友说,复活节再相会?!」 (/‵Д′)/~ ╧╧

我接着说:「如果你们可以一天走16个小时,事情就会完全不一样!虽然这很蛋疼,但现在是危急时刻,让我们走起来!!」〒皿〒

队友冲我吼了回来:「当初我才不会告诉洛杉基友我们一周就能走到!这是你的责任!弄死我们算了!」

("▔□▔)/("▔□▔)/("▔□▔)/

大冷场……

最后电话还是没打。等明天队友恢复理智以后,我再和他谈谈。

第二天早上,大雨倾盆,我们在帐篷里躲到10点,才打包出发。拖着酸痛的肌肉和新冒出来的水泡。昨天晚上的争吵谁也不想再提起,直到我发现队友竟然把水壶落下了!我T-M-D咬死你!我们只能又花30分钟走回去找回水壶。

╯-____-)╯~═╩════╩═~

我忽然灵光一闪:嘿!我们厕纸用完了!得赶紧到下一个镇子补充弹药了。

但是,前方又是豁然开朗,怒吼的三岔河就在面前奔腾,而我小肚一沉,菊花一紧,只想拉屎……

[via Quora by Michael Wolfe]


评论精选:

ida529200:干嘛走路,为啥不坐飞机。

soso:所以说程序猿就是死板,俺们业务猿直接冲进旁边农户家,买了只船划过去了。

Captor:一开始舍易行难,就是所有装13程序员的死症。这班人一开始走国道不就结了。美国公路那么平。只是风景差一点。

wdach:老老实实走路的程序员是完全自主的码农,一开始很辛苦,但是所有的问题都走过来了;

说买船划过去的,是从网上下载代码的,出现bug就好像船漏水,出现陷阱就好像遇到鲨鱼;

坐飞机的是搞外委加工的,管他什么问题呢,都交给别人处理好了,老子拿钱;飞机晚点,飞错地点都很常见,最怕的是坠机啊,撕毁合同。


来自大内蒙:简单的来说 所有事情不会像表面上那么简单

比如说 这个程序很简单 我一天就能搞定

好吧 刚开始写 电脑老死机 折腾了半个小时才弄好

刚写一会儿,父亲大人来了个电话,咱得接起,听后指示吧,又费了点时间。

突然觉得肚子里翻江倒海,必须去厕所飞翔。

好嘛一上午过去了。

下午下决心好好写程序,然后突然跳出来了N个bug。

这样原来预估的时间就不够了。

配图的意思就是原来看着挺简单,但是一放大还带小弯弯,等到实际的时候,我擦,还特么得飞过去。

就是理论和实际之间的差距,正应了那句话,实践是检验真理的唯一标准。


深蓝の日:在开发软件的道路上,总是会有意想不到的情况发生……

1、软件开发的思维模式不能像数学一样简单的计算

2、开发环境与过程会极大的影响进度

3、团队合作极易出现短板效应

4、团队还会出现内讧

5、etc

综上所述,预估时间往往是理想时间,而不是实际时间

用旅行作比方,真是高级黑啊……


PassBy:

(1)场景1

老板:这个项目做完要多少时间?

程序猿:大概200天。

老板:太久了,少一点。

程序猿:180天。

老板:还是太久。

程序猿:150!

老板:再少点,客户等不住的。

……

程序猿:60天?

老板:好的,就这个时间。孩儿们,甩开膀子干吧!

(2)场景2

老板:这个项目做完要多少时间?

程序猿:大概200天。

老板:你是按一个人算的?

程序猿:是的。

老板:那好的,给你10个人,20天搞定!……不要跟我争论!


Top10

沪ICP备09053415号 © 赶知识网