Monday, March 13, 2006

人月神話 之 人月 (man-month)

案例一
記得大約四年前的一個專案,那個專案只有兩個人,一位是專案負責人兼系統分析師 Tim ,另一位是系統分析師兼程式撰寫也就是本人。
專案進行兩三個月後,專案負責人就把整個專案交給我一個人負責了,也就是說本人負責整個專案的系統分析及程式撰寫。專案接近尾聲的一個月左右,我估計不管我怎樣加班,怎樣順利的進行,我都無法在期限內完成。於是我向我的專案負責人提出這個問題,並且向他要取一個人力 Wendy 幫我寫報表,在我們協調後的結果,我只要 Wendy 協助撰寫報表的 SQL Code 的工作,以我對 Wendy 的能力認知,我相信這一個專案應該可以在時間內準時交件。
Day1 :
我利用大約 2 小時的時間向 Wendy 解說他的工作內容,並且向他解釋了資料庫中的部份 E-R ,我想這樣 Wendy 就可以開始工作了。
Day3 :
Wendy 完成了大約 5 隻 SQL Code,這裡面的幾隻 SQL Code 尚有部份欄位沒有擷取的,原因是因為 Wendy 還不是很清楚,這些欄位要從哪一個 Table 取得。當我看指細的檢查這 5 隻 SQL Code 後,我把沒有擷取的欄位補上。在這個過程中,我發現有些資料欄位的擷取連來源的 Tables 都錯誤了。當天我立刻決定把計畫取消,把這個工作拿回來自己做。
回想這整個過程。當我和 Tim 討論我的人力需求問題時,Tim 就告訴我,要安插一個人力進到專案中,會有一定的困難,沒有想像中的容意,要我先有心理準備。當事情結束後,我也終於體會到這其中的困難。
當專案已經延誤時,增加人力的投入,還必須付出教育順練,溝通,新手學習等的成本。是必需要詳細評估與計畫,這樣的投入才會有成果。不然就會如同我上面的經歷依樣徹底宣告失敗。
案例二
今天和客戶開完會議,客戶和我們再次確認下週行程。
1. 完成 N 個需求的功能.
2. 完成 1 張報表, 以 Crystal Report 製作.
問題來了,這個專案中,我們沒有人使用過 Crystal Report,並且所有的人力估計投入第 1 項工作已經吃力了。唯一的方法就是請求一位人力 judy 支援 ,專門完成工作項目 2 。Judy 具有開發 Crystal Report 的經驗,並且可以獨立與客戶溝通,是我們的不二人選。因為專案的某些特性,我決定使用客戶的資源,請客戶的 DBA 及 SA 向 Judy 解說資料擷取的細節及需求規格,使得這一件工作不會用到已經投入工作項目 1 的任何資源。一星期後順利完成我們的目標。

No comments: