相信許多軟體工程的從業人員都有許多的甘苦談,這些甘苦談慢慢的形成許多膾炙人口的諺語,這個部落格收集這些諺語,也希望收集各位在這些諺語背後的故事。
Adding manpower to a late software project makes it later -- F.P. Brooks
我想這句話的意思是,新加入的人對該專案可能不熟,或是技術能力並不是很好,所以需要一些教育訓練的時間,或增加溝通的難度。但在實際上有人加入還是有幫助的,特別是高手。對於進度落後的專案,我們還能有那些作為?叫既有的人加班?軟體公司加班好像已成為常態,為什麼?真的沒法子可改了嘛?
這句話是Fred Brooks所著"The Mythical Man-Month"(1975年)一書中的名言,其主要精神是說「人」與「時間」不能互換,人不管是高手或低收,只要是發展軟體都有這種現象,例如一專案需用5人發展10個月,所花的effort就是50 person-months,如果你的老板說,給你增加5人,但完成的時間縮短5個月,算起來所須的effort也是50 person-months,如果你是該專案的經理,我建議你最好不要很高興地接受,因為人與時間不能互換,為何?這可以用L.H.Putnam的"Effort-Time Tradeoff Law"來解釋(我無法在這裡詳談),簡言之,產量與effort是1/3次方比,但與時間是4/3次方比,你不要以為這是「蛋頭」之言,Brooks這句話行之多年皆準,我在另一則「殺設計師」的諺語中,以開礦為比喻或可參考,這不是高低手的問題,如果要用加班解決,恐怕越加越糟糕,敏捷方法有言,發展軟體不要每週工作超過40小時,不知你信不信。
注意:只有此網誌的成員可以留言。
我想這句話的意思是,新加入的人對該專案可能不熟,或是技術能力並不是很好,所以需要一些教育訓練的時間,或增加溝通的難度。但在實際上有人加入還是有幫助的,特別是高手。
回覆刪除對於進度落後的專案,我們還能有那些作為?叫既有的人加班?軟體公司加班好像已成為常態,為什麼?真的沒法子可改了嘛?
這句話是Fred Brooks所著"The Mythical Man-Month"(1975年)一書中的名言,其主要精神是說「人」與「時間」不能互換,人不管是高手或低收,只要是發展軟體都有這種現象,例如一專案需用5人發展10個月,所花的effort就是50 person-months,如果你的老板說,給你增加5人,但完成的時間縮短5個月,算起來所須的effort也是50 person-months,如果你是該專案的經理,我建議你最好不要很高興地接受,因為人與時間不能互換,為何?這可以用L.H.Putnam的"Effort-Time Tradeoff Law"來解釋(我無法在這裡詳談),簡言之,產量與effort是1/3次方比,但與時間是4/3次方比,你不要以為這是「蛋頭」之言,Brooks這句話行之多年皆準,我在另一則「殺設計師」的諺語中,以開礦為比喻或可參考,這不是高低手的問題,如果要用加班解決,恐怕越加越糟糕,敏捷方法有言,發展軟體不要每週工作超過40小時,不知你信不信。
回覆刪除