l

2015年4月20日 星期一

沒有什麼比的上書

April 01 12:50~13:30

螢幕截圖 2015-04-01 13.26.36

今天要 咬哪一本書勒!

 

有一次跟一位好朋友聊天…

好朋友:我們公司最近請了一位顧問,來教我們做軟體重構(refactoring)。

Teddy:你們的軟體有什麼問題嗎?

好朋友:其實重構本身不難,不過因為我們的系統已經開發了5~6年,中間轉手了好幾次,平常也沒有撰寫單元測試。所以我們請顧問來教導我們如何重構一個沒有單元測試的既成系統(legacy system)。

Teddy:你怎麼知道顧問有能力解決你們的問題?

好朋友:在面試顧問的時候,我有特別問他如何重構一個既成系統。他告訴我先找到要重構的點(模組、類別或函數),然後在這個點的四週圍用單元測試將它隔離起來。這樣就可以piece by piece的逐步重構系統。能夠這樣回答,一定是有豐富的實戰經驗。

聽到這裡Teddy心裡想:「這個做法是《Working Effectively with Legacy Code》書中提到的一種方法,並無法就此判斷顧問是否真的有實戰經驗還是他僅是看過這本書。」當時朋友的顧問合約已經簽了,專案也正在執行,Teddy就沒把內心獨白說出來。

***

後來又有一次和這位好朋友吃飯,話題聊到敏捷開發…

好朋友:我覺得敏捷開發(特別指Scrum)的很多做法其實沒什麼特別的,傳統軟體開發都有涵蓋到。比較令我印象深刻的是retrospective這一點,做了快20年專案都沒有在其他的方法中聽到。

Teddy:其實retrospective也不是什麼新的觀念耶,以前我念書的時候修PSP(personal software process),書中就有提到每個開發周期結束要舉辦postmortem(驗屍、事後檢討)這個活動。基本精神和retrospective大同小異,都是檢討過去做事的方法,並提出改善計畫。只不過敏捷開發的retrospective搞的比較活潑熱鬧罷了。

好朋友:呵呵,那還真是我書讀的太少了啊。

Teddy:您客氣了 XD。

***

Teddy很喜歡《思考的藝術:52個非受迫性思考錯誤》這本書裡面的兩句話:

  • 胡說八道可以掩蓋無知。如果表達不清楚,那就是說話者不知道自己要說什麼。…世界是複雜的,人們必須花費許多心思才能理解一個觀點。在你有這樣的頓悟之前,最好奉行馬克吐溫的話:「如果無話可說,就閉上嘴巴。」簡潔,是漫漫長路的終點,而不是起點。
  • 我們資訊充足,但所知甚少。想要了解世界,沒有什麼比的上書

成立泰迪軟體之後認識了許多靠著「資訊落差」賺錢的人,包含Teddy自己。這原本也沒什麼不對,你懂的東西比別人多,別人願意付錢來購買知識(資訊)實屬正常現象。但在提供知識的同時,如果可以儘量提供完整的全貌,並附上參考資料,讓購買知識的人日後有能力可以自行覓食,這一點是很重要的。

***

友藏內心獨白:不要亂猜。

2 則留言:

  1. 這讓我想起,每次老師問我問題的時候,我總是回答『我認為...』,老師總是跟我說你的直覺是錯的。
    一知半解,比完全不知還來得危險

    回覆刪除
  2. 慚愧慚愧, 我要好好學會小說話多理解

    回覆刪除