編程項目,經常遇到一個問題:「如何做一個準確的時間預算」?我們團隊有一條規矩,每做一個項目之前,都要先預算要花的時間。想做的那麼多,要排序,當然要估好處和成本。不預算時間,等於蒙着眼去衝。但編程項目,預算時間常錯得離譜。估得短,泥足深陷,斬纜不服氣,繼續做又不耐煩。估得太長,明明應該早些做的,被預算嚇怕了,調到太後。太短太長,都有問題。

為甚麼會估錯?最大原因,是懶,把事情看得粗,不肯花時間,把每一個部份想一遍。項目越大嚿,就越錯得離譜。比如,要在網站加一個上載照片的功能,編程員本能反應會想,大概加一個按鈕,讓人選一個照片檔,然後傳到雲端某處,就是了,三天吧。

到實際動手的時候,就會發現,要做的,比之前粗略想過的多。例如要限制照片檔案的大小,要檢查格式真的是照片檔,要讓用戶於真正上載前先預覽一下,以免不小心上載了床照。然後又會發現,都要縮成三種大小,一張變三張等。

這些步驟,不每一步寫下來,當然會錯估時間。斬得越碎,越不會遺漏,也越估得準確,但太碎就要花太多時間在預算。那應該多碎才好?我們團隊用的單位,是時間。規矩很簡單,每一個項目,預計時間不能超過三小時。經驗說,預計超過這長度的,估錯的機會大,要得再斬碎。實行了這麼的一段日子,結論是,三小時是一個好的平衡。

把項目斬碎,除了能夠比較準確預算時間,還有一個很大的額外好處。一個大嚿的項目,比如說,估計用上五天,每天只完成五分一個項目,聽起來很拉牛上樹,要等到第五天,才可以狠狠地在紀錄上刪除一下。但同樣的項目,把它斬成 12個小型項目,每天完成兩三個,放工前刪走幾筆,感覺良好得多,期待明天再幹掉幾個。再加上,五天的工作,容易令人頭四天懶着做,等到最後一天才衝,一旦變成小型的項目,幫助養成均速的習慣。對,這個每天小勝利的方法,只是心理上的分別,但不要忘記,在創業團隊的世界,士氣往往決定生死。

2011年12月10日刊於蘋果日報