程式設計師其實根本不需要專案預估!

周慶成發表於2012-09-23

專案預估一直就是軟體開發週期中最困難的階段。事實上它的難度相當大,最近很多人都提議我不必去煩惱專案評估的事情。

David Anderson,支援Kanban(譯者注:貌似是某視覺化專案管理系統,附上維基百科)。他認為我們應該停止專案評估,它只會浪費時間。他在微軟推廣Kanban方法的案例研究中,改進團隊效率的第一步就是讓他們停止專案評估,把注意力集中在工作的優先順序並先進行重要的工作。

某位大牛Ron Jeffries說過

我認為大部分的預估就是在浪費時間,預估本來應該是用在釋出計劃上估算有效需求的的,而現在則是以不合規範的方式折磨著程式設計師,它更像是在“決定是否做這個專案”,而不是在“根據開發人員是否有頭緒來估算這樣做所需要的時間”。

還有

專案預估絕對是在“浪費時間”。它不是軟體……如果你覺得評估對你有好處的話,那麼你該反思它是不是垃圾,然後離它遠點。

還有一些人在“如果你討厭專案評估的話,就沒有必要再為它投入精力了”的帖子中說到:

把精力都用在證明評估報告是“正確無誤”的根本就是在浪費時間。把精力花在估算現實與想法差別的也是在浪費時間。把精力都放在怎樣訓練員工去達到“正確無誤”的評估效果完全就是在浪費時間,並且還會影響團隊的效率。

在“軟體評估被認為是有害的?”這篇文章中,Peter Seibel談到某位朋友發現保持員工注意力和積極性在儘快釋出軟體上尤為重要。他還說到

如果目的僅僅是在單位時間內開發儘量多的軟體,那麼評估恐怕不是什麼好主意。

他在1985年關於人件的學習中發現了程式設計師基於自己預估的效率比其他人的都要高,但是壓根沒有評估的話,專案開發的效率是最高的。

Seibel承認也許“專案評估對於協調人們的工作是有用的”——因此他把專案評估視作“交流的工具”。不過從這一點上來看,通過專案評估來傳遞資訊根本是昂貴且無效的低質量行為——因為所有的評估都包含了誤差和可變性(參考這篇文章)。

這背後預示著什麼?

所有這些想法揭示了當前開發的潮流風向,把所有找到的潛在性垃圾都清除掉。它就像是:評估消耗時間並拖慢速度。你無法做出完全的評估,那為什麼還要去試呢?

這些言論和事例主要來自創業公司和其他小型團隊環境,對於他們釋出產品比做出可預測性更為重要。他們更在乎專案有沒有完成而不是何時完成或要多少成本。

你需要專案評估嗎?

我認為專案評估在創業公司(需要說服一些人贊助你的工作)裡並不是非常重要的。

如果你正焦頭爛額,或是處於某種緊急事件,就根本沒有時間讓你停下去評估了,成本什麼的都無所謂,你唯一關心的就是儘快完成工作。

評估對於維護並不怎麼重要——Kanban的很多維護團隊的例子都是沒有評估的。這是因為維護本身做的更改很小——通常維護是為了解決bug並要在5天之內完成的。如果想知道要花多少時間用來修改,你必須審閱一遍程式碼才能知道哪裡需要怎麼改。這會佔用整個修改過程的一半時間,而且假如你已經修改了一些了,這時停下來評估剩餘的任務還不如一鼓作氣改完算了。很多時候一個縮圖或佔位符的規則就是很好的評估了。

我在一個經驗豐富的開發團隊裡工作,幾年時間都在負責某個系統。團隊裡幾乎所有的人都由內而外地參與過原始設計和系統程式設計。

開發的高管負責分配任務。他們對那些大得嚇人的系統有著很好的理解感,在我們要開始決定做什麼的時候就能規劃出未來大致的概念了。

很多時候程式設計師可以看出一段時間內什麼東西要做,什麼不需要做。這是因為他們很熟悉這個系統和相關領域了,而且他們清楚現在需要做什麼——即使現在不清楚,很快也會清楚的。這點對於測試員同樣有效——大多數時候他們都知道測試修改時有哪些工作要做,和能不能做到。

有時人們會犯錯,導致無法按照想法完成工作,因此會拖慢進度或要重頭開始。但是花一些時間用來分析和預估可能也不會有多大幫助。只有在完全陷入某個錯誤或認識到問題比想象中嚴重的事後才有用。

我們並不需要專案評估。我們需要在沒有相關檔案的時候儘量利用團隊的經驗和知識來做出快速有效的決定。

對於有些含有大量內建模組或介面的大型專案,很多人都不知道準備做什麼。還有因為員工不熟悉系統、平臺、領域或其他東西而無法快速下決定的團隊。或是有些東西要絕對服從截止時間等等這些情況下,你不得不花些時間來預估要做什麼,隨著對問題的瞭解可能還要再做評估。你可以不預估就開始做,但並不推薦。

此文由Jim Bird投稿。

文章來源:http://swreflections.blogspot.com/2012/09/can-you-get-by-without-estimating.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+BuildingRealSoftware+%28Building+Real+Software%29(需要翻牆)

相關文章