為什麼程式設計師預估的時間都不靠譜

2021-06-16 10:15:07 字數 1781 閱讀 8501

乙個我曾經共事過的很有經驗的專案經理曾宣稱說,他會拿程式設計師估計出的時間乘以π值,然後再提高乙個數量級,這樣得出的才是正確的開發所需要的時間。1天時間經過變換後是3.14周。他經過慘痛的教訓才認識到程式設計師預估的時間都是不靠譜的。為了能更精確的對程式設計師估計的時間進行換算,我建立了乙個時間換算表,重點說明究竟是什麼地方出了問題。

估計時間

程式設計師的思考

程式設計師忽略的事情

真正所需時間

30秒只需要對**進行很小的改動就搞定了。我清楚的知道程式應該在**做修改、怎麼修改。只需要30秒時間。

啟動電腦的時間,啟動開發環境的時間,獲取源**的時間。編譯、測試、提交**和文件修改的時間。

1小時5分鐘

乙個小問題,我只需要上谷歌上查查它正確的語法就能搞定。

你不可能第一次就能精確的查詢到正確的資訊,就算是找到了,在使用它之前你也需要對它做一些調整。還有編譯、測試的時間等。

2小時1小時

我知道該怎麼做,但是這需要寫一些**,所以要花一些時間。

1小時時間太緊張,沒有給任何未預料到的事情留下餘地。總有一些你預料不到的事情。

2小時4小時

這需要寫一些**,但我基本知道該怎麼做。我知道我們的標準框架裡的wizzabanga模組能做這個事情,但我需要去查查文件看如何正確的呼叫它。

這可能是唯一乙個符合現實的估計。在任務不是很大、能夠處理的情況下,它給未預料到的問題留下了足夠的時間。

4小時8小時

我首先要重構balunga類,把它拆分成兩個,然後在wizzabanga模組裡加入呼叫**,最後在介面上新增乙個新的表單域。

系統的很多地方都對balunga類有依賴關係。大概有40多個檔案需要調整。介面上新新增的屬性的同時資料庫裡也要新增字段。8小時是十分理想的狀況的時間。程式設計師在估計時間時總忽略了還有很多其它事情要做。

12-16小時

2天這需要寫很多的**。我需要在資料庫中新增一些新錶,用乙個介面來顯示它們,然後還要寫訪問它們的邏輯**。

對大多數程式設計師來說,2天時間能完成多少東西都是很難說的。肯定會有一些東西被遺忘。並不是指一些小的東西,一些主要功能上的重要東西也有可能在你估計時被遺漏。

5天1周

哇塞…這可是個大任務。我還不知道如何實現它,我不是告訴你我不知道如何做。一周時間應該足夠了,但願,希望能夠,但我不會要求更多的時間,不然的話他們會說我能力不行。

這樣乙個任務對於大多數程式設計師來說都很難理解消化。這個任務應該發回給架構師,讓他把任務拆分成更小的模組,對各模組應該如何執行給出一些指導。架構師應該能找到實現它的一些簡單的方法——或者認識到這個任務的工作量比他預期的要多。

2-20天

預估時間本身就很難。每個程式設計師的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事情被忽略了(編譯,測試,提交**)。估計時間超了說明任務太大,難以理解。

對於資歷較淺的程式設計師,這種估計誤差是混亂的,他們經常會輕視一些任務,同時又對一些稍微有難度的任務過分高估。我認為,對乙個有經驗的程式設計師,乙個任務的時間應該在半小時到24小時之間,超出24小時的任務都需要拆分。程式設計師在腦中想一想可能會認為要60小時,但實際上即使是很有經驗的程式設計師也需要將任務分成可控的模組再來分析做決定。

還有乙個很重要的需要認識到的一點是,程式設計上的經驗並不等同於時間估計上的經驗。乙個從沒有做過工期估計的程式設計師不會擅長估計時間。如果不去拿真正需要的時間和估計出的時間進行比較,你不可能從其它反饋資訊之得到正確估計時間的經驗。

每個程式設計師都會用到評估技巧。為了提高你的這項技能,你可以在你從事的每個任務上進行鍛鍊。在任務開始時先預估開發所需時間,拿它跟你最終真正用掉的時間進行對比。這樣,你不僅在對任務細節的理解上有提高,同時也提高了你對時間預估的技能。

為什麼軟體開發工期預估都不靠譜

有些人認為做乙個大型軟體專案跟建一座大橋一樣。你可以根據以往的專案,使用那些歷史資料來評估所需要的時間和資源。這種觀點數十年前就已經被證實為偽觀點 這種模擬出的結論在上世紀九十年代,我在卡內基 梅隆攻讀軟體工程學位時,是我一直嚮往的結果。現實生活中,大多數值得一做的工程都不會是之前的專案的重複。不要...

程式設計師如何預估自己的專案開發時間?

作者丨愛編碼的coder 專案時間的估算對專案的成敗至關重要。專案時間管理包括了專案按時完成所需的各個過程。但是,在實際專案中,經常出現專案延期,估算嚴重不準確的現象。預估時間本身就很難。每個程式設計師的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事情被忽略了 編譯,測試,提交 估計時間超...

程式設計師如何預估自己的專案開發時間?

專案時間的估算對專案的成敗至關重要。專案時間管理包括了專案按時完成所需的各個過程。但是,在實際專案中,經常出現專案延期,估算嚴重不準確的現象。預估時間本身就很難。每個程式設計師的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事情被忽略了 編譯,測試,提交 估計時間超了說明任務太大,難以理解。...