文章同步於it邦
前言
今天我們就講一個章節
但這個應該是許多新手或比較沒有經驗的人都不太會的 - 預估
預估時間對於軟體工程師來說,很簡單但也很困難
這件事情其實會直接影響到公司商譽
假設我今天估計某個系統大概要花上1個月的時間,但我卻花了3個月才交付
這會對於公司來說,無疑是一個非常大的損失
什麼是預估
對於業務方來說,這是種『承諾』,但對於開發方認為,那只是個『猜測』
前者是一個說到一定要做到的保證,對此全部與這個專案有關的人都會為此擬訂計畫
後者是一個則不帶保證
但對於大多數的開發者而言,預估通常無法準確且不擅長
你說有訣竅嗎,不幸的,沒有
預估的結果不是定值,而是機率分布。
也就是說,給我多少時間,我有多大的機率做完這件事情。
預估任務
在預估任務時,最重要的資源是你周圍的人,集中不同的人或許可以看到不同的面相。
書中介紹了各種方法來預估時間,基本上核心就是大家集思廣益來預估整個專案的時程
那這邊有個方法,如果我們可以把專案的需求一個一個拆解開來,或許我們就可以更好估時間了對吧
所以我們把整個專案拆解出各種需求,再來寫下每個需求需要做的事情,這樣估時間是不是容易了
假設我今天有一個專案是部落格,使用者需要登入、登出以及創建文章三個需求,這樣比起預估前者(專案),直接預估後者(需求)就容易多了,然後我會再加上一些緩衝的時間,預防各種意外(隕石砸下來之類的,嗯酷酷的雙關XD)
參考資料
Clean Coder(ch.10)