Thursday, November 14, 2013

SVN 的某種用法

之前讀過人家對 SVN 之類的用法,有一點很有意思,大意是說:其實也不用寫註解,砍程式碼也不用手軟,反正你可以用 svn log 去看到底之前改了甚麼。

這點我之前是深信不疑的。但是最近碰到釘子了。主要是在 merge code 的時候,遇到沒註解的 code 時,會 merge 錯...因為不知道到底是誰改了甚麼。要是有寫類似下面的註解:

// -- someone -- 2013/11/14 - change something for some bugs

我一定不會把人家改的 code 弄掉啊。

再者,SVN 之類的 VCS(Version Control System),code 是放在 server 上的,所以離線就再見了。現在有 git 這種離線都可以繼續玩的玩意兒,當然就不怕。但是,git 的界面只有 command line,所以 tracking log 也很累,而且超級占空間。重點是,git 一下載連 history 都有了,那不是整間公司的 code 都被你一次捲走?

Saturday, October 19, 2013

雜感 - 2013

算一算本 blog 已經快三年沒更新了。原因嘛,當然是沒有時間。

這三年基本上都是跟客戶作案子,沒時間搞研發了。比較大的感想是,台灣跟美國人的思考方式大不同。我的前兩個案子是跟台灣 ODM 廠搞,後兩個是直接跟美國 brand 公司搞。所以還算是可以有一些想法。

首先工作時間這方面,基本上矽谷並沒有比台灣爽,其實搞不好還更慘。因為時差的關係,他們得晚上 7:00 ~ 11:00 跟台灣開會,而我們台灣人則是趁他們晚上偷偷工作。換句話說,他們的工時基本上是 24 小時(不騙你,任何時候寄信給老美,他們都會回,超神)。不過老美錢領得比較多,所以我回家是不看信的,打平。

思考方式則是差很多。台灣人多傾向把事情解決就好,但是老美則傾向找出原因,並且不要再犯。所以台灣工程師如果沒有反省能力的話,跟老美共事會很痛苦。

為什麼我會說[反省能力],而不是其他的能力?因為台灣人會覺得,事情解決就好了,為什麼還要解釋給你聽?又不是你在做。可是我觀察到的是,很多人沒想到老美問的問題,其實自己也是一知半解。如果你今天可以 10 分鐘就寫出原因跟報告,你會覺得老美很煩嗎?應該不會吧。

另一方面就是,台灣人常常對人不對事。每個人被指責其實都會有反抗心態,我自己也是。但是有時候其實對方也不是針對你,只是你比較倒楣被抓去當窗口,所以老美只是在抱怨,或是希望你提出個解決方案,而且這種通常是對公司或整個流程的指責,也就不用太生氣或反抗。這種事情如果發生在台灣人內部,就不是這樣了,每個人基本上都會覺得指責是針對某個人,而不是某件事。導致會議通常是一言堂,沒人敢發言。因為一提到缺失,對方基本上就認為你在找碴,所以你會發現,明明公司內部有很多地方可以改進工程師的效率,或是避免別人犯錯,但是就是不會改進。

還有就是,老美的開會能力比起台灣好太多了。台灣人在開會通常都是臨時通知,人找一找就開始開。這會有甚麼問題呢?第一,你浪費大多數的人在等待,因為你要找人,第一個被找的會等很久。第二,沒有人知道要討論什麼。用膝蓋想都知道這種會議一點用都沒有,可是偏偏台灣人愛的很。我常常接到客戶那邊一堆人打 conference call 來問我一個問題,基本上我的回應都是[你先寄 email 來把問題描述清楚,我再回你]。這樣會比你直接寄信來問快嗎?況且,很多會議如果你一開始就把議題寄出來,搞不好人家回信一下就可以了,也不用出席會議。

台灣 ODM 跟 IC design house 現在是愈來愈難生存,我想有一大部分的原因是這幾項。每個科技公司工程師工時長得不得了,然後也不知道在忙甚麼。其實他們的經理或大老闆才是應該要檢討的對象。


codeblock