1. 程式人生 > 實用技巧 >為什麼軟體開發週期總是預估的2~3倍

為什麼軟體開發週期總是預估的2~3倍

今日話題:為什麼軟體開發週期總是預估的2~3倍?

今天讀了一篇文章,題目為:為什麼軟體開發週期總是預估的2~3倍?
以下是文章的內容:
來,讓我們從舊金山出發,沿著西海岸徒步旅行,到洛杉磯的紐波特沙灘面基吧!
看看地圖,然後計劃一下路線!
在這裡插入圖片描述
路線全圖

嗯嗯,這趟紅色之旅長約400英里(643.7公里);漢子們一天睡8小時,吃2小時,逗貓2小時,還能能走個10小時,這樣每天走40英里(64.3公里)妥妥的吧!

所以,10天后的晚上六點,我們就能威武滾到洛杉磯,和好基友飯醉啦!

趕緊讓洛杉基友訂好這週末的飯局,想想都胸奮不已啊!

第二天,大家一早集合,背好行囊、攤開地圖,規劃第一天的路程……嗯?
在這裡插入圖片描述
第一天大圖

看上去前方道路多曲折啊。走40英里路只能到「月亮灣」的一半。這麼一看,整趟路途不是原來的400英里,而是500英里!

趕緊打電話給洛杉基友,推遲一下飯醉時間,必須現實一點。基友有雖然點小失望,但還是熱切期待著我們的到來。

再說10天變12天,好像也沒什麼大不了的嘛~~

帶著第一天的小挫敗,我們總算出發了。2個小時以後,我們總算走過了家附近的動物園,然後俯瞰這條小路:
在這裡插入圖片描述
小路

兄貴們……這玩的是蝸牛模式啊!沙子地、漫水路、陡階梯、亂地裂、憤怒的海獅……

我們的速度最多也就2英里每小時,只有計劃速度的一半喂!

我們一天走20個鐘頭!

或者,還是讓基友再把飯醉日期推後吧……

這樣!我們來個敏捷策略,雙管齊下:路上我們不逗貓了,一天走12個小時,然後再讓基友把飯醉日期推後到下個週末。

洛杉基友有點毛,但還是辦妥了。

走了12小時以後,我們打算在摩斯的海灘埋鍋造飯搭帳篷。

靠!這麼大風裡永遠支不起個像樣的帳篷啊!

最後鬧到半夜才躺下,沒什麼大不了的,我們都是維斯特洛的鐵民,明天走快點就行了。

我們睡過頭了,滾來滾去磨蹭到10點才起來。

次噢!這個樣子怎麼可能一天走12個小時!

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

狠拼了幾個小時以後,我發現隊友一瘸一拐地跟不上了。哦~香蕉你個臭粑粑,腳上好大一個水泡啊!

必須現在處理……把問題扼殺在搖籃裡,我們是一個團隊!

我跑了45分鐘,3英里路,買來了邦迪給我隊友,我累壞了,而且太陽也快下山了。這一天基本也報銷了,我們只走了6英里。但是我買來了新的補給,情況還行,明天一定會更好!

起床以後,我們綁上繃帶繼續上路。前方豁然開朗……次噢次噢次噢次噢,這是啥麼啊!
在這裡插入圖片描述
懸崖

坑爹地圖上根本沒畫這鬼地方啊!尼瑪一座懸崖讓我們飛過去啊!

我們只好繞道內陸,走了3英里,迷路兩次,中午才回到正路。

這半天相當於只走了1英里。

再打電話給洛杉基友延期嗎? 不!行!

我們必須熬夜趕路,這樣才能趕上日程!

一夜困頓以後,隊友早上醒來頭痛欲裂,高燒不退。

我要給他打打氣,讓他堅持下去,

結果他當時就毛了「墳蛋!我已經在冰冷的凍霧裡走了3天沒歇了!」

好吧,今天又廢掉了,我們就修整一下吧。

修整以後,我們必須日行14英里!因為我們已經習慣了!

沒幾天了,我們堅持一下就行了!

早上顫顫巍巍地醒來,強迫自己看一下地圖
在這裡插入圖片描述

完蛋!我們走了5天,才走了這麼點啊!?

必須做重新仔細估算一下路程,召集來所有隊友開會!

還沒醒的給我吼起來! 每一個人都必須再次面對現實!

隊友說:「我們4天走了40英里,還有600英里的路,所以應該60天才能到,保守點估計,70天吧。」

我就崩潰了:「70你個大爺!好吧,雖然我對於這種旅行沒有經驗,但從舊金山走到洛杉磯怎麼可能要70天!!你讓我怎麼和洛杉基友說,復活節再相會?!

我接著說:「如果你們可以一天走16個小時,事情就會完全不一樣!雖然這很蛋疼,但現在是危急時刻,讓我們走起來!!」〒皿〒

隊友衝我吼了回來:「當初我才不會告訴洛杉基友我們一週就能走到!這是你的責任!弄死我們算了!」

大冷場……

最後電話還是沒打。等明天隊友恢復理智以後,我再和他談談。

第二天早上,大雨傾盆,我們在帳篷裡躲到10點,才打包出發。拖著痠痛的肌肉和新冒出來的水泡。昨天晚上的爭吵誰也不想再提起,直到我發現隊友竟然把水壺落下了!我T-M-D咬死你!我們只能又花30分鐘走回去找回水壺。

我忽然靈光一閃:嘿!我們廁紙用完了!得趕緊到下一個鎮子補充彈藥了。

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

最後,程式設計師之家的粉絲群現在已經不斷壯大了。

總結

從中我們可以知道,計劃趕不上變化。開發軟體也是一樣,雖然我們制定了規範的計劃書,但是有時候問題還是會超乎我們的想象力。在途中我們可能會遇到各種各樣的困難,解決這些困難會消耗我們大量的時間。因此軟體開發週期總是比預估的時間長很多。