為什么軟件開發周期通常是預期的兩三倍?

jopen 11年前發布 | 4K 次閱讀 軟件開發

        導讀:有國外開發者在 Quora 提了這個問題:“為什么軟件開發周期通常是預期的兩三倍?” 并補充問:“這是開發人員的錯誤? 是管理失誤? 是因為做事方法不對, 或者說缺乏好的方法?還是說這就是軟件開發流程的特點?” Michael Wolfe 在 2012 年 1 月 28 日給的回復,非常經典,截至我們發布時已有 8016 個贊。以下是譯文。

        讓我們先沿著海岸線,從舊金山(SF)走路去洛杉磯(LA),去拜訪我們住在 Newport Beach 的朋友,我拿出地圖在上面畫出了行進路線。

為什么軟件開發周期通常是預期的兩三倍?

        全程大約有 400 英里,如果我們每天走 10 小時每小時 4 公里的話,只用 10 天就可以到達目的地。立刻打電話給我們的朋友預定下周六的晚餐,告訴他們下周六晚上六點我們一定會準時出現,朋友們已經等不及了!

        第二天清晨,我們帶著準備冒險的興奮起床,背起行囊,拿出地圖,準備計劃我們冒險的第一天,看一眼地圖,噢,不!

為什么軟件開發周期通常是預期的兩三倍?

        哇,海岸線上有這么多迂回曲折的線路。每天行進 40 英里的話,10 天后只能勉強到達 Half Moon Bay(半月灣?)。這趟旅行至少有 500 英里,而不是 400。趕緊打電話給我們的朋友,將晚餐順延至下下周周二。人還是應該現實一點。朋友們有點失望,不過仍然盼望見到我們,況且花 12 天從 SF 到 LA 也不賴。

        把不開心的事丟到一邊,準備出發。兩小時過后,我們才剛剛走出動物園。出了什么事?我們低頭看了一下腳下的路:

為什么軟件開發周期通常是預期的兩三倍?

        天哪,這樣走路也太慢了!有沙子、海水、階梯、溪流,還有海邊憤怒的海獅!這樣我們只能按每小時 2 公里的速度前進,只有我們預估一般的速度。要么我們現在每天走 20 小時,要么再把晚餐推遲一個星期。好吧,讓我們各退一步:每天走 12 個小時,把晚餐安排到下下周的周末。只好再打電話給朋友告訴他們這個情況。朋友們有些不高興,但還是表示可以,到時候見。

        在辛苦走了 12 小時后,我們準備在 Moss Beach 扎營休息。靠,要把帳篷在風中立起來根本不可能。直到半夜才開始休息。不過沒什么大不了:明天在加快點速度就可以了。

        第二天早上睡過頭了,早上 10 點才醒,起來渾身酸痛精疲力盡。艸,今天沒法走 12 個小時了,先走 10 個小時,明天可以走 14 個小時。收拾東西出發。

        再緩慢行進了幾個小時之后,我發現伙伴腳有點跛。媽的,是水泡。必須現在解決它,在這些問題開始減慢我們的速度前,必須將它們扼殺在萌芽狀態。 我慢跑了 45 分鐘到達內陸 3 英里遠的 Pescadero,買了一些創可貼再快速跑回去給朋友包扎了一下。我快累壞了,太陽也快下山了,又浪費了一天的時間。到我們準備休息前今天只走了 6 英里。但是我們確實需要補充一下供給。一切都很好,明天我們就能趕上。

        第二天醒來,扎緊腳上的繃帶準備出發。轉角之后突然發現,靠!這是個啥?

為什么軟件開發周期通常是預期的兩三倍?

        你妹的地圖上怎么沒標出它!現在我們只能往內陸走 3 英里,繞過這些被聯邦政府用柵欄保護起來的區域,中途迷路了兩次,在中午前才好不容易又回到了海岸線。今天的時間過了一大半,而我們才前進了差不多 1 英里。好吧,不過我們不會再打電話給朋友推遲了,今天我們會一直走到午夜試著趕上進度。

        晚上在大霧里斷斷續續地睡了一夜。一大早被我的伙伴叫醒,他一陣陣的頭疼,還有點發燒,我問他能不能堅持一下。“你在想什么呢,混蛋,我已經連 續三天在這么冷的霧中趕路,沒有休息過了。“好吧,今天看來只能黃了,只能在原地好好恢復了。現在我們已經有經驗了,今天好好休息明天再走 14 個小時,還有幾天的時間,我們一定能夠做到!

        第二天我們昏昏沉沉地起來了。我看了一眼隨身的地圖:

為什么軟件開發周期通常是預期的兩三倍?

        天啊!我們已經走了 10 天旅程里的第 5 天還沒有離開海灣區域!太荒唐了!我們要重新估計一下準確的時間再打給朋友,搞不好會被罵,但至少得找一個現實一點的目標。

        同伴說,我們在四天里走了 40 英里,這趟旅程至少又 600 英里,那就至少要 60 天,安全一點的說法說不定要 70 天,“沒門…是,以前我是沒走路從 SF 去過 LA,但肯定不會要 70 天的時間,如果告訴他們我們要到復活節才能到,那要被他們笑死的“,我說。

        我接著說,“如果你能保證每天走 16 個小時,我們就能把落下的時間補回來!我知道很困難,但現在是最關鍵的時刻,別抱怨了!”伙伴對我吼道 “一開始又不是我告訴別人下周日我們就能到的!因為你犯的這個錯差點要我的命!”

        兩個人就這樣不說話了。我還是沒打出電話,等我的伙伴明天冷靜一點我再決定,我也愿意做一些更合理的承諾。

        第二天上午,我們一直待在各自的帳篷中直到一場暴風雨襲來。我們趕緊收拾好東西直到 10 點才擺脫危險。渾身酸痛,又長了好多新水泡。之前發生的事誰也沒提,直到發現我那愚蠢的伙伴把水壺落下了,又被我指責了一頓,我們不得不再花 30 分鐘回去取它。

        我心里記得我們的廁紙已經快用完了,下次到一個小鎮的時候應該囤一點。在我們又轉個彎后,才發現一條湍急的河流擋住了去路,這時我突然感到肚子一陣難受……
英文原文:Engineering Management: Why are software development task estimations regularly off by a factor of 2-3?

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!