April 28, 2007

獨孤木好書

今天無聊閒晃博客來發現有碁峰的促銷活動...

裡面有一本

想起應該要來推一下獨孤木大大的好書...

話說,第一次聽到獨孤木大大的名號,是多年前的 Java 週報獨孤木專欄...
(真的是很多年前,當時我還在大學,只把那系列視為沒有營養的笑話 XD)
(Patrick 的專欄收集)
最近的話則是因為 diggirl.net - digs girls over internet
(詳情請見: Diggirl完全解密懶人包Diggirl美女網站)

獨孤木大大迄今總計出過三本書: (我所知道的啦 XD)

其實內容不少都是當年 Java 週報獨孤木專欄的整理,
不過,買來放在馬桶上,確實比較方便閱讀,
我一天的好心情通常都是從早上坐在馬桶上閱讀獨孤木大大的幽默笑話開始 XD
因資歷尚淺,不敢說有多少跟大大心有戚戚焉的感觸,
但我想,若我還算有點獨特幽默喜感,應該也是因為獨孤木大大的耳濡目染吧...XD

隨機翻閱列舉摘錄書中的內容:

在公牛身上擠奶
(本篇全文可見 Java 週報獨孤木專欄 2003年5月15日)
一般的程式開發人員,非常喜歡使用If then else的描述。而管理人員,通常只會聽到他想聽的部分。

我用這句話來做比喻:『如果太陽從西邊出來的話,天上就會掉下來很多很多的錢,讓我一輩子也花不完。』

對一個程式設計師來說,這是一個完全make sense的statement。因為程式設計師通常都擁有良好的邏輯觀念:『若A則B,如果A的值是false,B的這個block當然就run不到』。可是對於老闆來說,他只聽得到『天上會掉下來很多很多的錢,讓我一輩子也花不完。…』

所以當強森說:『我想如果一切順利的話,大概再兩個禮拜就可以完工。』指的其實是:『如果你運氣好,再給我一個月就會寫好了。這個component多有用啊。絕對值得花一個月的時間開發。可是如果你知道要花那麼久,你一定不會support這件事。沒關係,預估本來就會有誤差。』要特別注意到的是,連他內心的想法,都包含了if then else的架構:

If (你運氣好) then {再給我一個月就會寫好了。};
component = 非常有用;
非常有用 = 絕對值得花一個月的時間開發;
If (你知道要花那麼久) then {你一定不會support這件事};

嗯,這就是軟體工程師跟一般人最大的不同。

軟體超人X光眼:專案開發揭弊大爆料
(本篇全文可見 Java 週報獨孤木專欄 2003年6月12日)
我總覺得,為什麼要做軟體測試其實就跟人類為什麼要戴保險套,是同樣的道理。男人會戴上保險套,並不是這個動作會帶來什麼快美難言的愉悅,我們要的是性。不會生小孩,不會得性病的性。做軟體測試也是一樣。我們會做測試,並不是我們喜歡測試帶來的感覺,而是我們怕小蟲蟲會帶來我們不想要的結果。測試並不會讓一個本來已經正確的軟體,變的更為正確。所以總會有人認為,幹嘛要養專門的測試人員呢?

主張不用測試人員的主管,還是只要請程式設計師自己測試就可以的主管,其實就像是主張透過性交中斷法來避孕一樣。會有這樣思考模式的主管,基本上就跟想要哄騙女朋友上床,卻有沒有準備保險套的十五歲少男一樣。『我的自制能力比較強,只要我們小心一點,在蟲蟲快要跑出來之前,就先把它抽出來,就不會懷孕了。』同樣的道理,只要程式設計師小心一點,就不會有小蟲蟲了。

下回你遇到這樣的主管,你就直接想到十五歲的思春少男就對了。採用這種策略通常都要付出可觀的代價,就像避孕失敗就得選擇墮胎或是當小父母一樣。當然,當你發展的軟體沒啥價值時,有沒有測試人員其實都沒差。大自然會自動淘汰不適合生存的物種。

專案管理黑皮書
本田: 我覺得你們一定可以在三個月之內做完的。
布魯斯: 怎麼可能!我們從沒做過銀行的案子。
本田: 我知道你們一定可以的,你們技術能力那麼強,一定沒問題的。
布魯斯: 話不是這樣講,三個月,又是不一樣的 domain。 還不要提,光使用者訪談最少就要一個月了?
本田: 我知道你們一定可以的,你們技術能力那麼強,一定沒問題的。
布魯斯: 話不是這樣講,這個案子的測試環境特別複雜。 光是架這個測試的環境,就要花掉很多時間了。
本田: 我知道你們一定可以的,你們技術能力那麼強,一定沒問題的。
布魯斯: 我們再強也是有極限呀。 這樣做的 risk 太高了啦。
本田: 我知道你們一定可以的,你們技術能力那麼強,一定沒問題的。
※作者註: 我很想讓對話繼續下去,因為有一個人講的話可以不斷複製後再貼上,高興的話,寫個一萬字都不是問題。不過再這樣搞下去,編輯還會付版稅嗎?

展書閱讀、展顏歡笑之餘,有空的話,也可以到獨孤木大大的 blog 晃晃吧...
有很多更新、更有趣的論點、看法......XD

隨便舉例,之前常有人轉貼 CMMI與大便風牛肉麵 的網址給我看...
當時大家一片撻伐高鐵測試怎麼會做得那麼差,發生那麼離譜的缺失,
我的看法一直都是,拜託,那種小學二年級都會想到的 test case,
雖然不是只要是工程師就一定聰明絕頂,但我才不認為開發系統的人會白痴到都沒想到過,
要我說,那一定是政治、政策因素,開發、測試人員一定有說不出的苦衷啊~~~

(本文圖片皆由博客來提供...)


No comments:

Post a Comment