本來應該寫在 Code inspection 的代價 一文的意見中,但考慮到內容比較多,故還是以一文說明。 看了許多專家的看法,我也提出自己的看法。我的假設是這樣的 Programmer 的月薪為 35,000/月 資深的 inspector 月薪為 60,000/月 速紀員可能是系統助理,月薪較低,為 28,000/月 主席的月薪為 60,000/月 雖然一天工作八小時,但扣掉一些喝水、聊天的時間,一天工作有六小時應該不錯了,所以 這些角色分別的時薪應該分別為 182 (35000/((30-8)*6)), 312, 145, 312。真的是蠻低的吧。 在 overview 階段 review 的速度為 500/statement, 所以共需 2 小時,假設 overview 的階段 scriber 不需參加,則成本為:(1*182+2*312+312*1)*2 = $2,236 在 individual preparation 階段 review 的速度為 125/statement, 所以共需 8 小時,因為此階段 scriber 與 chair 不需參加,則成本為:(1*182+2*312)*8 = $6,448 在 inspection 階段每個人都要參加,因為 review 的速度為 90/statement, 所以共需 11 小時,則成本為:(1*182+2*312+145*1+312*1)*11 = $13,893 在 follow up 的階段進行除錯,假設錯誤率為 3%,亦即有 30 個錯誤,而程式員除錯的效率為每個錯誤需要五小時除錯,則需要 5*182*30=27,300。 加總以上的成本則共為 $49,877 。但這可不是這 1,000 行程式的成本, 這僅是 code inspection 的成本 ,不包含分析、設計、實作與後續動態測試的成本啊。光這樣看來,每行程式的價值就有將近 50 元, Szuwulin 所言『 五 行一塊錢』似乎是少了些。 問題是台灣很少執行 code inspection 的動作,而是以後續的動態測試才取代。我們知道, 動態測試是治標不治本的方法 ,它 能找到的錯誤是比較少的。假設有有一半的錯誤沒有在動態測試中被找出來而不小心流到使用者手上,那代價可能很難估算。第一:如果造成客戶的業務損失; 第二:維護階段除錯的效...
可能做project之前沒有做estimation,不過這麼大的公司不知project estimation或prediction的重要,實在不解。
回覆刪除因為沒有提到原來的案子有多大。假如原來的案子是五年的案子,那麼誤差 1/60 還屬合理,我個人覺得很難估到非常精準。
回覆刪除如何避免工程師謊報?如果專案經理有如期在追蹤這個專案的話,謊報的情形應該可以避免。也許這就是CMMI中提及的 PMC(project monitoring and control)的重要性吧。
的確是不解。我相信他們有作estimation,因為他們的公司一項有在做,可是不曉的在哪一環太高估了些時間或人力。更是不解的是,其他競標的對手,難道沒有更好的prediction?再者,委託端難道沒有底標?
回覆刪除更有趣的,team leader如何影藏他們超前的事實,到現在還是蠻好奇的。
不知道大家有沒有一些相似的經驗?
一般來說,專案經理發現工作超前時會放慢腳步(少給些壓力)或是增加工作(如測試或寫文件),所以提前完成在我三十年的開發與管理經驗中幾乎沒有發生過。這裡有個類似墨菲定律的定律:Work expands to fill the alloted time ─ 工作量會自己膨脹以符合時間表。就像飛機或火車跑得比預期快時,駕駛員會自動放慢速度。
回覆刪除總之,經理居然會叫組員出去晃,並且不要讓上面知道,的確是不可思議。因為,上面知道的機率是很大的。也有可能經理對組員這麼說,是要向他們邀功,博取「愛戴」,而實際上經理早已取得上面的許可。當然,也不排除那位同學隨口講講,不一定反映事實。
專案時程估不準是常見的事,所以提前完成的機率應該也不小吧!只不過大部分的人(尤其是programmer)通常喜歡拖時間,時間快到了才發現系統有bug, 所以專案就延遲了。提前完成真的不容易,真的有完整測過了嗎?
回覆刪除允許出去晃就更糟糕了,這代表沒有其他的專案在跑?那公司怎麼賺錢呢?