人月神話
August 14th, 2004

人月神話不是小說,不是傳奇故事,和狼人、嫦娥、阿姆斯壯都沒有關係。人月神話由作者 Frederick P. Brooks, Jr. 在1975年首次出版,講的是軟體專案的管理。我買到的是本書的二十年紀念版,書末對這二十年來軟體世界的改變作了一些修正與討論。
就在上上個週末,我漂盪在敦南誠品,四處尋找帶到部隊的讀物,在電腦專區看到這本書。充滿想像的名字引起了我的好奇,才一翻開書頁,我知道我找到了!軟體設計和管理,是我最感興趣的兩個領域。
之前學程式語言,從 BASIC 到 Visual Basic,從 C 到 C#,其實說穿了這些語言都是大同小異,學完了也就忘了,留在心中的是程式語言的長處與極限,是如何利用現有的資源,最後學到了如何『不要寫程式』。真正在寫程式所遇見的問題,卻不曾好好學過。如何使用版本控制,如何做時程規劃,如何建立工作團隊,這些才是軟體設計的第一課。
『人月神話』也是本書的一章,解釋軟體設計人數和時間兩者之間的關係。軟體設計並不像耕田或織布,五人費時兩個月的工作十個人不一定能在一個月內做完。也就是說,人力和時間是不能簡單互換的。增加人手並不一定可以讓事情進行的更順利。 在『外科手術團隊』一章中提到另個概念。程式設計師的好壞對生產力有一個數量級的影響,也因此人員素質遠比員工數量來得重要。由於軟體設計需要人員之間大量的溝通協調,也使得團隊人數的成長反而可能變成累贅。如果有一個二百人的專案,是以25個頂尖的軟體工程師領導175個平凡的設計師工作,那麼,開除那175個人,並且把25個管理者踢下去寫程式是比較聰明的作法。
一本二十年前出版的舊書,講得是三十年前的軟體業,卻成功地點出了軟體業的弱點和瓶頸。即使現今的電腦硬體已經有千倍的進步,但以軟體而言,還有很大一部分無法突破人月神話的預言。
軟體創作純粹是心智的工作,擁有無比的自由,同時又要嚴謹地遵守電惱的邏輯。電腦軟體似乎沒有任何限制,但只要有一點出錯,就可能造成無法預期的結果。如何讓人類自由的思想和創造力,如機械般嚴謹的發揮,是管理者的一大挑戰,也是人月神話一書最值得一看的地方,更是每一個寫程式的人應有的基本知識。
我已走向不同的路,我不曾寫出真正有用的軟體,未來也不會成為靠寫程式維生的人。(其實程式設計師也蠻苦的,不會比醫生好到那去。)但是我喜歡程式創作的自由,或許也只有不必靠寫程式維生,才會喜歡寫程式吧!
Entry Filed under: 圖書

2 Comments Add your own
1. lusng | October 13th, 2004 at 2:54 am
『人月神話』簡体中文版電子書(pdf)
(鏈結網址已被Jerome刪除)
2. Jerome | October 13th, 2004 at 12:29 pm
「人月神話」作者尚在人世,以著作權法第三十條「著作財產權,存續於著作人之生存期間及其死亡後五十年。」來看,其著作財產權之消滅還早咧!我不相信「人月神話」的簡體中文版電子書是可以合法免費下載的,所以我刪去了lusngh所分享的網址。如果我搞錯了,歡迎指正。
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed