2009年4月30日 星期四

人月神話:一群聰明的人盡幹些蠢事

「生小孩就是需要9個月,妳叫多少個媽一起生都一樣,軟體工程就是這樣一個工作。」--- Frederick P.Brooks.Jr. <<人月神話>>




Frederick P.Brooks.Jr.
人月神話
經濟新潮社
2004.4.1
ISBN:9867889185


最近除了一大堆程式要改,還有新的case準備要進行,答應客戶的程式往往都拖到很晚,感謝客戶體諒沒有天天打電話催我,不然真的要天天熬夜了。很多朋友常常關心我,說不要常熬夜這樣肝會不好,我都笑笑的回說:「別擔心!在進這一行時我已經先動手術把肝拿掉了,沒有肝就沒有肝壞掉的問題存在」。

朋友聽到這樣的回答也覺得很有趣,但是說真的寫程式不是人幹的,有時候想笑還真笑不出來,尤其當系統上線在大陸做教育訓練的時候,那種感覺真的很痛苦。

記得去年在大陸出差,因為要趕一個功能回到旅館工作至深夜三點,一大早八點又被客戶叫起床希望可以早點做教育訓練。好了,在睡眠不足的情況下,我幾乎睜不開我的眼睛,把一台台灣帶過去110V的印表機接到大陸220V插座上,頓時!整層樓跳電,原本客戶想早點做教育訓練的美意也瞬間瓦解(當時我緊張到全身發汗,在總開關與UPS來回奔波,但相較我的不安,客戶大陸的員工倒挺開心的....我想是因為沒電可以不用做事吧)。
那天早上光用UPS就搞到11點,還把一台印表機弄燒掉,心想早知道就讓我睡飽就好,也不至於忘了要把110V的印表機插進變壓器上,內心雖然這樣想著,但是把客戶的印表機弄燒掉還是相當的過意不去。而正式的教育訓練下午才真的開始,那時突然很佩服古人的智慧「欲速則不達」,幾千年前,就可以說出當時我想說的話。

今天一回到家就忙著改寫簡訊發送的程式一直改到現在,轉眼間也快天亮了。晚上在MSN上客戶的員工跟我說,今天她跟朋友聚餐有經過我公司之前在東區的舊辦公室。本來在寫程式的我,被她無意間的一句話想起舊辦公室的種種回憶,也赫然發現我在這家公司到今年的4.26剛好滿5年。回想當初面試的過程現在還記憶猶新,沒有想到在無聲無息中居然渡過了5年,真的是太可怕了。

在不斷的測試、除錯、修改,循環下把程式寫完,起身伸伸懶腰,突然在書架上發現這一本「人月神話」。

這一本書是在介紹軟體專案的管理還有一些專案導入的實務經驗心得。1975年首次出版,被譽為軟體界的「聖經」,現在已是2009年過了30多年了這一本書依然熱賣狂銷,不可不謂影響IT產業甚巨。

人月(man-month or person-month)指的是「一個人要花幾個月」才能完成軟體開發的單位,通常用來評估一件軟體專案的大小

當初會買這一本書也是因為對程式的熱忱(不知道現在還剩多少....),對自我的期許(如今客戶的期許常常凌駕我個人期許之上...),於是很開心的一頭栽進來,就如同這一本書中所說「所以寫程式實在很有趣,因為它滿足了我們潛藏於內心創造事物的渴望,並且激發了我們每個人原本就擁有的快樂感受」P27,說的真棒!(我想作者一定很少遇到歇斯底里的User,所以才會這樣說...)這麼棒的書我這邊就簡單把書中經典的名言介紹一下:

「對航海的人來說,擱淺就是燈塔」--- 荷蘭諺語

我認為,調適自己習於追求完美是學習軟體工程最困難的部分

你得把工作做成功,才會得到越多實質上的(相對於名義上應得到的)權力

所有程式設計師都是樂觀的傢伙

所以用人月來衡量工作規模大小是危險的,也是一個容易遭到誤解的迷思

專案經理個人必須挺起胸膛,勇敢為自己的估計堅持立場

在一個時程已經落後的軟體專案中增加人手,只會讓它更加落後。

寫到這裡,天真的亮了,也該去小睡一下了!回想這5年的歲月,藉由撰寫專案認識了不少的人、客戶、客戶的員工、廠商、....真的是有甘有苦,也不知道這一條IT路會做多久。記得有一次跟女友去逛士林夜市,我開玩笑的說:「寫什麼程式賣雞排都比較好賺」,沒有想到我女友回答我說:「是沒有錯,但如果每一個人的想法都跟你一樣,這國家就沒有競爭力了」。當下我真的被我女友的睿智嚇了一跳,真的是我聞大地獅子吼,龍樹馬鳴齊現身。最後套句替「人月神話」寫序的曾昭屏先生的一句話當結尾:「搞軟體真的是浪費生命,一群聰明的人盡幹些蠢事」

沒有留言:

張貼留言