2011年12月1日 星期四

無薪假法制化

這陣子聽到朋友提出一個Idea非常的有道理,我們實在應該建議政府這麼做。

Software Design Pattern 裡有一招叫Null Object,其實政府要救失業率也可以用這法子。

就開一間公司,一個月沒有工作的人自動成為這間公司的員工,啊任何人一進來就開始放無薪假,放到他終於找到工作從這間公司辭職不幹為止。

於是所有的人都會有『Default工作』做、這間公司不會資遣員工所以不需要付資遣費,政府不用搞失業救助因為沒人會失業、而納稅人當然也就不用掏錢出來養失業的人,你看多了不起,一舉多得,開一間公司 De掉一切的Fault。

執行這項政策的台灣將『馬上』創造失業率『零』、政府救助支出『零』、企業成本負擔『零』的經濟奇蹟。

『633馬上好』太弱了,『馬上000』您看怎樣?


如果那個講話白賊的覺得發明無薪假就可以拿諾貝爾獎,那這個天元突破的Idea簡直就如同愛因斯坦在廣義相對論裡發明宇宙常數一樣偉大啊,相信計畫成功後,那個人這麼『言而有信』一定會給鄉民網民們頒塊『功在黨國』的匾額的。

將無薪假法制化這種政策實在太軟啪啪了,加油好嗎?

2011年11月29日 星期二

第一個問題之後

上一篇文章有許多人問我:『那第一個問題之後是什麼?』

我想這值得來寫一篇好好回答。

當一間公司找得是開發者(Developer)的時候,那就意味著公司的有效產出建立在發展出新的供給方式來滿足需求上。也就是說,這間公司應該要有尚未實現Business Model正在追尋(可預見的穩定獲利)。

在這樣的情境下,你當然就會問:
0. 貴公司的客戶目前都是什麼樣的人?
1. 貴公司的產品(或服務)對這些人的價值是什麼?
2. 對於產品的價值到價格的轉換過程目前有什麼想法?

再深入一點,你就會開始問:
0. 目標產業發生了什麼現象讓貴公司開始進行這項工作?
1. 有什麼過去基於的假設現在被打破了嗎?怎麼打破的?
2. 造成過去的假設不再成立的外在因素貴公司認為是哪些?怎麼覺得是這些因素造成的?

重點來了,當我們仔細聽他講的時候,不是要聽他講得多偉大,而是要聽:

1. 他是否知道公司的知識疆界目前在哪裡。

簡單的說,我們應該預期要會聽到他說:
『我不知道』『我覺得可能的方向』『但這樣看過去又會...所以我想我還不清楚』

你應該要聽到矛盾、你如果也是在那個領域打滾過有相當知識的,你甚至要跟他辯論起來。
他如果說不出口『他不知道』,那有兩種情況。

第一種,他不懂裝懂,還在革命尚未成功同志仍需努力的時候,團隊的管理就已經開始有人覺得自己是『權威』了,這樣怎麼會有創新啊?
第二種,他平常在做什麼他自己也不曉得,所以他今天也不曉得為啥要找你來面試,要知道今天公司要創新、要找開發者進來,就是想找人去找那些『不知道』背後的答案,當面試你的人連『什麼地方過去目前不清楚』都講不出來,那就表示:『他不曉得他幹麼要找人,他甚至不曉得他的創新是在創新些什麼』


2. 他是否有意願說到你懂。

一間公司所提供的勞務一定不會在他的客戶的核心價值追求範圍(除非它在販售勞務給絕對的競爭對手...這就蠢了)。
那麼一門生意要發展、一個新的供給模式建立在重新定義的需求上,就意味著公司要有能耐讓目標客戶(一群通常不怎麼在乎你在做什麼的人)容易理解其訴求才行。

Business Model不曉得能不能動沒有關係,還沒做成當然沒人知道會動不會動,不是完全認同那也無所謂,畢竟瞭解跟認同是兩回事,但他要是連讓你理解都辦不到,那麼如果你不比它的客戶笨,這間公司的方向就算目前看起來是對的,它的執行會成功、產品能行銷嗎?

那是不可能的,在一個知識經濟產業裡,一個無能傳播知識的管理層就是一個失敗的管理層。探索未知的時候眾人都有清楚的價值共識是最重要的,沒有這個任何的執行都不會聚焦。而執行不聚焦還會成功...不要忘記只要有軟體專案開發的元素在,這就是個最被詛咒的行業



2011年11月28日 星期一

我們公司沒有工程師,只有開發者

工程師跟開發者的差別,簡單的說就是看到的是『規格』還是『需求』。

工程師的工作是翻找補充自己的工具箱與資源庫,想辦法實做出符合設計規格的東西,開發者的工作是界定需求然後找尋並執行可以滿足需求的方案。

他們可能在同一個領域裡工作、有著相同的專業技能背景,但工程師面對的是系統功能與流程、開發者面對的是推導思考滿足需求的必要條件,探討什麼樣的系統介面與功能與人的互動可以導致有效產出(人生是殘酷的,大多數的時候我們要不沒有充要條件、要不充要條件為『不可能』)。

一間公司面對的是一個已經決定的系統、沒得透過檢討需求的本質來進行變更與調整的,那他需要的是工程師。所以高鐵找的是工程師、捷運找的是工程師,因為團隊不可能跟政府還是公司講:『其實要滿足公眾運輸的需求,捷運不合理,我們應該考慮tram,以下是我們的方案...』。

但如果一間公司面對的是一個根本不確定、只知道趨勢是存在著的、需求是存在著的環境就得開始工作的情況呢?那他們需要的是開發者(在硬體相關的領域,這種人會被叫RD)。所以現在很多網路服務的Start-up,他們找的是開發者。

兩者沒有孰優孰劣,只有你是誰、你活在哪裡、你的公司應該根據什麼樣的前提假設來建立、管理團隊才能創造價值。



在台灣,我沒辦法在對外人自我介紹的時候說:『我是軟體開發者』,我只能說我是個『軟體工程師』『程式設計師』或『寫程式的』而我認識的同圈子的人面對外人時也大多如此,我想這很好的說明了台灣的公司普遍屬於那一邊。

於是當我爸問我:『那些大公司也可以像你們那些個Start-up那樣玩出新把戲啊,他們資源那麼多,一旦出來不是會很成功嗎?為什麼你不覺得他們有機會勒?』

我答:『因為我面試的時候都會問一個問題,而到目前為止我從沒遇過那些老闆有拿到及格分數的(也就是讓我開始問第二個問題的)。』

這個問題就是:『請問貴公司有多少工程師?』
他只應該有一個答案,而且他得要能立刻回答:『我們公司(團隊)沒有工程師,只有開發者。』


我會去找的工作,都是我認為他的需求根本還不確定、而他們公司應該要有能耐去建立一個『開發團隊』去探索,而不是『工程團隊』照規格去做事的,但很顯然要不是他們需要創新,卻從不思考這種定義上的馬虎會導致管理行為與目標上的不一致進而造成不效率與失敗,要不就是我搞錯了,其實這間公司根本與創新無關。

每個人的人生都有想追求並實現的東西,而個人的人生目標與志向投射到軟體產業,那就決定了你選擇成為開發者還是工程師哪個比較好。不論如何,別找錯方向了,進錯公司(價值觀不match)有時候比交往錯對象還慘的。

2011年10月26日 星期三

[職場] 不受教的新鮮人?

我工作的公司是一間20人左右的軟體產品公司。

一多年前,我在公司的一項主要工作就是人力資源管理的計畫與執行。

目前公司採用的對新鮮人從徵才、面試、離線訓練、On Job Training整個流程的規劃設計的雛型差不多可以說是那時候我跟老闆還有其他資深工程師經過多次討論後建立起來的。

對我們這種公司來說,找人是一個非常嚴肅的問題:

1. 開發水準沒有到一定程度的開發者,在我們公司很難生存。原因很簡單,我們公司是做產品的,客戶是國外同領域的開發者,而寫出來的程式碼就是產品,所以水準不到的程式碼只是在浪費大家review debug的時間、同時製造客訴。
2. 我們公司很小、競爭對手跟客戶都散佈在世界各地,公司裡每個人都有多重任務職責在身上,也就是說我們很忙,平常很少能夠特地跑去顧新人,必須找進來的新人本身就『我們教得動』『會主動學習』才行。

在這樣的找人標準的前提下,我那一年應該要很常抱怨新人不受教才對,但事實上,在制度與流程建立後,找進來的人偶爾才有讓我們需要抱怨的時候。
所以,我認為,新人受不受教,大部份是公司自己的問題。
如何定義不受教? 這個人『不受教』是指他不聽話嗎?還是他聽不懂?還是是他聽得懂、也願意做但做不來?

不論上述原因是哪個,一個新人正式上線開始承接公司有實際產出的業務、與大多數的人合作之前,這些都是可以發現並且排除的。一個人的專業水準夠不夠,這應該是短則一個星期、長則三週就要能辨別的事情。一個人的工作態度好不好,一個月的相處,從他問的問題、給他的指示他如何應對,應該要可以知道。

如果一間公司老是在抱怨找進來的人不適用、總是覺得新鮮人都是『草莓』,那這間公司應該要先去檢討它的人力招募訓練篩選流程。

我們公司的人力招募訓練流程是這樣的:

0. 招募文宣,一份好得招募文宣要可以『清楚說明』應徵者所應具備的技能,舉例來說,『會用M$ Word』 這就不是個清楚的說明,『可以用M$ Word編輯排版功能編排一份內容如XXX ,可出版印刷的刊物』這才叫清楚的說明。

1. 筆試,我們花很多的時間建立一份適當地筆試題目,而且持續的因應需求修正它,一份好的筆試題目應該要讓應徵者可以用力思考超過一個小時。並且全面的檢測這個人『必定得有』的能力與少數『有最好』的水準。題目的數量應該要在限定時間內,預期招募的人的水準『幾乎寫不完』的量。
筆試做的好,招募時給的條件就能放寬,公司就越不需要靠不可靠的學歷與可以唬爛的履歷來判斷人。(另外,新人的筆試題目與高手一定不會相同)

2. 面試,一定要有流程,簡單的流程就是:
  公司介紹、工作與職務內容介紹、檢討筆試結果、開放性問題測試、英文口試。
以上兩關基本上要能刷掉70%『未來實際訓練時不會有機會通過的人』。
人很多很難找、公司的資源有限,一份好的筆試題目與面試流程是絕對值得投資的東西。

3. 離線訓練,所謂的離線訓練,就是給新人與實際業務無關的一系列訓練項目,測試新人的執行能力、學習能力與跟用人主管溝通的能力。在軟體開發,能玩的項目有,技術簡報、專題實做、專題發表、認證考試...等等,高時程壓力、高學習壓力是這個階段的重點,目的在於:
如果這個人未來在公司不會有機會,此刻就一定要刷掉。 不論是不是軟體公司,只要是偏知識工作,比起招錯的人進來造成的後果,一兩個月的新鮮人薪水實在太微不足道。
離線訓練時期公司薪資照給、做的項目又跟公司業務實質產出無關,就能夠確保執行上公司沒有道德風險問題,這使得新人在面對高壓與要求上沒有藉口逃避:他要不全力以赴、要不放棄出局。
很多公司不曉得離線訓練的重要性而想要跳到OJT,這是愚蠢的會計算盤。

4. On Job Training,基本上到了這個階段這個新人就幾乎可說是能用了,這個階段主要是讓新人實際的與團隊成員互動,蒐集團隊成員、老闆對這個新人各方面的軟性看法。

事實上,以上這樣的流程與制度不只為公司帶來利益,它同時也是一個應徵者適當地用來找公司的依據。

一個招募馬虎、面試隨便、不在乎訓練新人的公司,或許是個對員工工作成果有要求的公司,但它不會是一個對員工在專業能力的培養與成長真正在乎的公司。而長期而言,一間知識經濟下的公司在新鮮人注入的流程上失敗,這間公司幾乎必定會在公司的成長與文化養成上遇到瓶頸。

原因很簡單:

知識經濟下的公司,公司知識的累積與市場資訊的流入,會不斷地去刺激組織去重新定義追求的目標背後的價值範圍,這會使得公司的知識資產,在複雜度與廣度上不斷地提昇。

而公司要成長就要能有更多可以流通運作這些知識資產好發揮價值的人加入。於是,新人在公司的生存與事業發展機會的基礎,就建立在他能掌握多少公司知識資產上。

當一間公司在新人加入的流程上失敗,新人的生存率就會隨著公司知識資產的累積而降低。畢竟,沒有道理認為台灣每年畢業出來的社會新鮮人變強的速度跟公司的成長速度是一樣的。

而訓練新人、灌輸知識給新人與教育客戶、灌輸知識給客戶,本質上具有很高的相似性。

所以,如果一間公司創造出來的知識就連自己人都不能掌握,客戶就更不用說了,無法學會的知識等於沒有價值,那客戶又怎麼可能會採用、價格又要怎麼賺到手呢?


所以,你工作的公司裡常常有人抱怨新人不受教嗎?

好好想想是不是哪裡出了問題吧。

做Framework產品的二律背反

正題:
使用者有新的需求 -> 新的需求需要新的功能才能支援 -> 我們要提昇使用者滿意度 ->加入新功能。

反題:
使用者喜好易懂的文件與好上手的功能 -> 功能越多使用者就越難用也越難學 -> 我們要提昇使用者滿意度 -> 停止加入新功能。


最近開始思考,做Framework Function越做越多,Complexity 與Learning curve就會越加重,我們或許滿足了某些開發者在一些面相上的需求,但卻要增加複雜度與知識門檻而讓其他的開發者痛苦。

我知道有幾個方法可以減緩這個矛盾問題尖銳的程度:
1. 花大量的時間人力,透過review文件、寫文件,去整理產品規格。
2. 開發產品的自動化測試方法。
3. 成立專責的QA團隊,強化QA流程。

而我也很清楚這些東西長期而言是無法躲避的問題,一定要去解決。

但我常在想,有沒有可能存在其他方案能夠在不傷害成長動能的情況下,緩衝這個問題對公司的創新動能造成的衝擊?

還是說有誰應該要走過來朝我的後腦杓巴下去,然後說:『別做夢了,醒醒點,該是效法那些 Russian 起床拿Vodaka 漱口,然後去-20C的戶外工作的時候了』

2011年10月18日 星期二

如果你是一間專案開發公司的老闆

而你想要追求公司成長,記住二件事:

1. 長期而言,專案公司營收與規模成長速度,取決於開發人員總產能與默契如何提昇,不是訂單的成長速度。(台灣一堆小軟體專案公司會失敗,常常就是老闆看到訂單上的金額昏了頭。)

2. 公司成長的穩定性與對風險的承受能力,取決於你保留了多少閒置開發能量與可燒現金。(這會直接影響你覺可不可以睡好、胃會不會痛、你的員工可不可能喝西北風)


記住專案開發的風險是較高的,delay 個10%~ 50%是很常有的事,倒是提前完成的不多。為什麼?因為莫非就是在那裡,而軟體專案開發是最被宇宙定律詛咒的行業。

專案開發的生產模型,靠得就是消費一群專業人員的專注力與可工作時間,來完成且持續維運一個脆弱且動態的系統的各項功能,然後透過這個系統來供給滿足終端使用者的需求,賺取利潤。

這時宇宙讓我們碰上三個性質都非常極端的玩意:
第一是『需求』、第二是『人』、第三是『時間』

『需求』,特別是任何資訊類型的需求,是非常抽象而難以捉摸的東西。當一個需求被提出來,以這個世界的知識作為背景去延伸,無數的細節就會隱含在那裡等你來發掘。
開始規劃時你沒找到的,以後就變成地雷等你來踩。
開始客戶沒想到的,以後就變成『規格不符』等你來修。
需求與真實世界互動下無數的可能性與細節就是專案風險的第一來源。

『人』構成專案風險的第二來源。
不要講客戶,講自己人就好,人的能力提昇不是線性的、每天工作成果是不好預測的、情緒與健康狀況是不能阻止的、人與人之間的溝通與衝突是難以設計預防的。於是你看到小公司一個人離職會驅動整票人走,因為人走了工作就是留下來的接,長期的加班與不滿被新加進來的工作一次到位,公司的產能就那麼玩完了。像這樣子的非線性系統動力災難在『人的領域』裡到處都是。

再來是『時間』,時間是最沒有彈性的東西,不能儲存、不能移轉、一天就是只有那些。
而專案Critical Path上任何突發事件造成的『延遲』,都只會累加、不會減少。客戶慢了一天回你,那一天你就是沒有進展、這個專案的完成就是得多延一天!千萬不要小看一天,這一天的影響不只累加在這個專案裡,還累加到正在進行的其他專案裡、累加到下一個專案裡、一旦開始加班那就累加到員工對公司的不滿情緒裡、當然也累加到客戶的回應與滿意度裡。無數這種小小的漣漪擾動著整個團隊的情緒、也透過相依性驅動著無數的事件,帶給專案經理精彩又刺激的每一天。


『需求與人』這兩個巨大難以量化的統計波動來源,配上沒有彈性只會延長累加誤差難以提前縮短的『時間』,就是專案執行管理上的本質。

而『製造腦袋』的老闆們常常在這個行業摔跟斗也是因為他們無法理解,用不穩定的人(而不是穩定的機器)、以沒有彈性的時間(而不是有得商量的物質原料)、去滿足幾乎可以任意修改的需求(有沒有看過EIP系統從新增客製報表這樣的需求開始,變身成CRM的?)背後所代表的意義。

於是當客戶一通電話來說有個案子價格可以開到多少時....你得想想這真的是個機會還是什麼,你的公司還有『閒置產能』嗎?過去一年新人的年生存率是多少呢?你最擅長做事的人是不是最忙?你最能有新想法的人上次有空跟提idea是什麼時候?

你想『傾全公司之力』追逐『機會』?想碰運氣?

當所謂的產能提昇不是找即戰力、就是找免洗菜鳥。
當追逐訂單,把產能閒置率給用光。
當公司裡每個人都加班,老鳥最忙、新人沒人理。
當人來人去大家筋疲力竭死氣沉沉,再也沒有人在乎這一切。

當不小心錯把貪婪當成公司目標。

記住你選了這個行業,而在鬼島台灣上天的祝福早已遠去,你還是個被宇宙定律給詛咒的人!
想想公司可能會有多倒楣,那就幾乎必定會發生。

開軟體公司想追求長期持續的成長與創新嗎?
修煉一下那通電話的『逢魔時刻』來臨時,該如何應對吧。

2011年10月9日 星期日

你相信嗎?

你相信什麼,那麼在你真正相信的當下,你已經得到它了。

如果你相信人活在世上不需要這麼樣的去追逐慾望,那麼你就已經得到一個『不用追逐慾望』的生活了。如果你是基督徒,你相信神愛世人,那麼此刻當下你已活在祂的祝福下。如果你相信人存在就是為了繁榮人類生存的這個世界,那麼有一天你的人生結束時,這個世界會因你而繁榮。

你唯一需要去思考的,是你要不要捨棄這個你已得到的『絕對』,你有沒有跟外界對著幹,不論成功失敗希望絕望捍衛你的『信仰』的勇氣?

人不會因夢想而偉大。

人一天到晚被慾望擺佈撥弄,而要產生一大堆稀奇古怪的想望,這些想法都很令人興奮,但難道它們都有價值嗎?
人無時不刻被命運左右而要產生各種煩惱情緒意念,人該拿這些佛說三毒的東西來決定自己如何活著嗎?

人會因信仰而擁有力量。

能夠從慾望所生成的雜念中淘選出有價值的部份的力量。
能夠讓你面對命運不確定的本質而維持心靈恆定的力量。
能夠用來約束自己、要求自己最終超越自己的力量。

當你把你的人生奉獻給你的信仰,你就會有力量在眾人都反對你的世界理,去保護你已擁有的東西。

2011年10月6日 星期四

Firefox, what's wrong with you?

Recently the Mozilla foundation updated my beloved Firefox very often.
They moved their step to FF4 at the beginning of this Year, then 5, 6 now it's 7.

I used to use Firefox to deal with those HEAVY stuff, such as my three GMail accounts, famous Firebug for web development and some fantastic plugins to scraping web contents.

But now, my happy experience was gone.

0. Gmail Manager was malfunctioned. 
I used GMail Manager to manage my GMail accounts, but now due to Google's new gmail policy(shame on Google for this), I cannot get any benefit by using firefox to manage multiple GMails, I hate to sign-in 3 times with 3 different browsers when I start my PC, I know it's for security, but it's still annoying and I do know this is not FF's fault, but  this do reduces the score that FF get when comparing with Chrome. If there's any new plugins that can deal with this, please let me know.

1. New logic behind Firefox's Certification Key management is sucks!
It started to fuck me since FF4, have you ever encountered a "Secure Connection Failed" which Error code is: sec_error_reused_issuer_and_serial? After read the root cause from this link:
https://support.mozilla.com/en-US/kb/Certificate%20contains%20the%20same%20serial%20number%20as%20another%20certificate
and searched any possible solutions to workaround this, I must say this is a BIG WRONG DECISION that Mozilla made for Firefox after Ver 4. They intended to forbid any user to access the web in https through some old router that doesn't generate the security certificates well. I know they gave this restriction to prevent some kind of attack, but so what? does my parent who are already 60 years old working in a big company should buy in this? And compare to other browser: IE has no such problem, Chrome has no such problem, Safari has no such problem, if you are an IT guy and people put this on table then what will you do?
OF COURSE you won't do anything to that old but expansive router, because it's very possible that there's no one knows how to deal with it, the things that you will do is to write a batch file and put it into schedule which will REPLACE every Firefox to Chrome!


So now, I'll have to tell my big old company customers:
FORGET FIREFOX, because your router is too old to generate a proper certification so Mozilla foundation  think you are not deserved to use their product! Imagine what they will ask you to do next.


Backward compatibility is not just compromise, it's an important feature!


In this case, what Firefox can do is simply provide a boolean config that MIS can turn on or off before they trigger the installation to every desktop, or, they can prompt this error with a special option to let user bypass the check after reading the possible hazard  description.

But the only workaround that Firefox left you by now is to delete the cert8.db which stored every exception that you have while doing the certification,(Yeah, you can delete THAT certification if you know which one, but do you really know how many Cert was screwed up in your Firefox?) and you need to turn off Firefox before doing this.

2011年9月27日 星期二

Re: [心得] 台灣的軟體工程師該何去何從?


This is a reply that I wrote at PTT.CC, I think it's good to post it here.
:   其實就軟體產業來說我個人也認為不太樂觀,
:   從中國近年薪資成長的幅度和高低差距就可以看出,
:   中國現在很像當初台灣經濟起飛的那個階段,
:   一般人民想要往中產階級前進,基本上走軟體這塊是非常迅速的一條捷徑
:   只要習得進階的技術,便很容易能年年身價跟著水漲船高
:   加上盜版真的也算是中國軟體業快速成長的幕後英雄
:   技術、資訊的易取得性,任何有心人士只要一台電腦和網路線
:   就可以在家閉門造車、甚至練成一身絕技
:   於是中國人材前仆後繼的投入這塊領域

我不否認現在中國大陸的軟體業比起台灣發展的更熱,但這個立論有幾個問題:

1. 對岸同水準的開發者,薪資比起我們只贏不輸。
當然我說的是台票40000+以上的在比,低標由於基本薪資還有物價水準的關係,台灣的低階行情薪資會比大陸高。而大陸職場軟體業專業開發者每年談薪水多是10%起跳的,一跳槽能翻兩翻的新聞還有聽到,這點台灣就輸很大了。

也就是說,同樣都是有賺錢的軟體公司,大陸的薪水不會以台灣差,而漲幅可能更好。

2. 盜版什麼的,台灣條件要不相同要不更好。
如果說靠盜版就能撐起軟體業,台灣當年都被『譽為』海盜王國,差點就要超級301了,那為什麼我們的軟體沒起來?明明一切都早了別人十多年。至於資訊開放,我們的網路沒有金盾擋著,沒有censorship,種花電信官僚歸官僚,還不至於是黑心ISP,我們連國外可一向比較快且穩的。

所以,『大陸軟體業比台灣火爆』的成因不會是低成本、盜版、資訊流通快速。



:   即使中國就軟體人員的素質來說,相較於台灣還算是比較參差不齊
:   但縱使假設台灣 10 個軟體人員裡面,稱得上優秀的有五個好了
:   而中國保守假設 10 個只有一個
:   但中國人口數是台灣的 50 倍之多
:   整體下來可用之兵還是足夠打掛台灣..

整個非洲加起來的人比我們多,但沒有人在害怕非洲。

整個新加坡人口比台北市還少,但我們羨慕他們的成果。
(他們當然有很多不好的地方)。


另外,『打掛台灣』?
產業是市場經濟的領域,不是統獨政治的場域。大陸人開軟體公司的目的是為什麼?就為了搶台灣人的飯碗嗎?我看不出大陸老闆特別針對台灣會有何利益上的合理性。


人多從來都不是問題,軟體業只是一個統稱,裡面有太多的專門領域以及各式各樣特殊的獲利模式。
一個已經有100人,平均個人年薪70萬台幣的公司,沒有辦法全力去進入一個年產值只有10億的市場,因為CEO會在董事會議上被釘到牆上去。一個需要聘請Sales去跑業務、接單抽成的軟體公司,沒有辦法去做一套可以只賣100美金的軟體。一個想跟VC拿500萬美金的團隊,當初跟VC的承諾,絕對不會只有每年穩當淨收50萬、年獲利成長率10%、五年後開始獲利。

台灣一個團隊的資源與人數比較小,那就挑對手也只能丟一樣的人數、資源的領域去做就可以了。

:   加上個人曾經跟公司內中國分部合作的經驗
:   發現或許是他們那的誘惑少很多
:   有的工程師竟然只要沒事的話,都是在 trace 一個數十萬行程式碼裡面
:   各 function 和流程,真不知該說是佩服還是無言來形容....


我想包括我在內,版上很多人閒著沒事都是在看Code的。
你如果挑得是Eclipse還是Linux,那你還可以說『我看得是百萬行級的程式碼』。這不是誘不誘惑的問題,這是知識工作者對自身專業的態度與要求問題。
:   現在中國一些著名的軟體和公司,不管是 UI 或是功能設計,
:   其實蠻多都已超越外國軟體
:   反之台灣或許就是富有慣了  軟體產業像是一個邁入退休階段的老年人
:   (但卻沒有一般到達退休階段該有的薪資水準)
:   以致於大部份的人興趣潰乏  只求不要過勞死、能溫飽就好
:   唯部份人還能依靠著「熱情」不斷向上充實提升
:   但現實是....熱情會永遠歷久不綴嗎?
:   想當年資訊產業剛盛行時
:   很多中文軟體技術文件的第一手資訊都還只能找繁體版咧...


我認為中國大陸軟體業長期來說會起來最重要的兩點:

1. 市場為創新之母,而他們有夠大的本土市場。
大陸新興了這麼多少則數百、動輒成千上萬名員工的企業,如果這些企業在自己的市場裡要跟對手競爭,他們一定要依靠IT建設來流通資訊。

而他們競爭的對象可不只國內自己人,多得是有外商來插一腳、分杯羹的。
所以中國企業要存活,他們一開始就會考慮用目前世界現役水準的IT科技才能至少不輸給外商。那麼需求誕生了,你是在中國開公司做軟體的,你會不鑽研最前面的嗎?

2.政府專制。
很諷刺的,中國政府在資訊控制與言論管制,不論在實際政策執行與法規方面都相當的『有效率』。這樣的效率還有中國獨特的對『法』的認識與解釋,使得顯著比例的外商在中國栽了個大跟斗。(中國對自己人偏心,但誰叫你外國人看到人家市場大就犯賤要來做生意呢?)不民主、不法制、語言也不是很通,這都給了本土有心想發展的企業很好的機會鑽空子。

至於台灣,只能說,這十多年的軟體現況,就像是棵矮樹站在『硬體製造』的參天巨木旁,掙扎著要去多照一點光、多吸一點水。資金、人才、政府關愛都被吸走,而不論是業界還是學界,從來也沒有凝聚什麼特定共識最後做出成績出來。

台灣小,但小不是藉口。
韓國也小,而在我們嘲笑他們的公家機關網站很爛的時候,他們的公務員跟民間卻硬是把遊戲產業做起來了。而台灣人的政府只會在那邊戰藍綠,沒在討論共識的。

回到正題,在台灣要開一間在特定領域作到『世界級』的軟體公司,大概Google Search該領域關鍵字,同領域產品可以排進前五名這樣的水準,並不是辦不到:

1. 如果目標是賺外國人的錢,那就要做『文化中性、領域專門』的產品。
簡單的說,你的目標用戶,最好是某個非常專門領域的知識工作者,而那個領域基本上沒有地理區域上的文化偏好。舉例來說,你做的如果是Matlab、RDBMS,會對這種東西有需求的人通常都是為了他們專業上的需求而用,而不論是哪裡的科學家,他們對matlab的需求價值不會有文化上的不同。

做領域專門的東西有幾個好處:
 1)池塘裡養不了鯨魚。如果該領域真的很特殊,那市場總產值一般就不高,跳下來對那些大傢伙來說只有資金資源擱淺的份。
 2)機會成本構成進入障礙。學歷身份太好,想要年薪15萬USD起跳的人不會進來。本來產業就沒多少錢,當然不可能冒險請尊神像供著。


賺外國人的錢,而不抱台灣企業的大腿有幾個好處:
 1)客戶不會三天兩頭要你"onCall onSite onSchedule",人不近不親就沒有可以盧人情的空間,沒有人情買賣的成本就好損害控制。不要小看Local Support這種Event Driven的Task對團隊開發效能的侵害,寧可生意不做,不要Over service。
 2)保證的事有作到,他們普遍給錢不囉唆。特別是法制國家的客戶。
 3)市場大多了。只要產品領域是文化中性的,台灣人做的跟美國人做的分不出來,那就是產品說話:價值取向、品質、價格決勝負。
 4)開發者的滿意度會比較高。兩個開發者,一個中華民國政府、台灣中小企業的專案三年接10個,一個走自己的步調開發公司的產品,透過網路與世界各地的客戶做Consult Support也是做三年,是你你選哪一個?哪間公司比較好留人、比較好累積知識資產?哪一個從公司畢了業要找工作時履歷比較好看?答案很明顯。


2. 要做低單價的東西。
最好一張訂單可以壓在1000 USD以內(可以是任何夠低的價格,目標市場的客戶可以不用
經過層層審核就能動用的錢以內最好),低單價可以保證二件事:
1)你會強迫自己在產品的價值訴求上採取『大廠不可能用』的差異化策略。
  也許你的產品跟某大廠生產的的產品都叫做A,但是市場上會買你的東西的人,跟會買大廠的東西的人將會非常的不同,因為他們是基於不同的需求來評價各自心中的A的。

2)市場上VC投資很多錢的競爭對手,被迫得要燒更久的錢。
單價與客戶數量決定流進來的現金,而現金決定獲利。當你跟競爭對手提供的產品服務有著重疊度很高的價值取向、而不論那一方都難以訴求新的價值來爭取客戶時,價格就會決定何者採用。這時候透過壓低單價把回報期拉長,就會使競爭中燒錢速度快的那方 - 特別是有VC投很多錢佔投資比例高的團隊會變得非常痛苦。
VC的特性就是:他們想要一個大的錢投下去、快快燒、快快回報,年報酬率數字好看公司就能賣到好價格,因為對他們來說資金週轉率很重要。這樣的特性使得VC普遍的缺乏耐心,他們會在Review時去『建議』他們認為可以衝高業績來讓帳面數字好看、讓投資人安心的『作法』。

簡單的說,如果錢都要足夠燒超過兩年,當你背了100萬,而對手背著500萬,那麼當單價被壓低時,VC臭臉的程度、Funder胃痛的程度、團隊在壓力下做出錯誤決策的風險,你的對手就是你的五倍。

基本上以上的策略就是在消除『超級對手』出現介入的可能性。


我個人相信台灣有很大一塊的中高階人力(秀才),都是浪費在國內很多吃不飽餓不死、累積不了專業、也沒有能與高報酬匹配的挑戰的專案環境裡。這些人其實都是可用的兵力將這些人釋放出來,或從新一代開始把人往這樣的方向導過去,我們可以拿優秀的小團隊去對付那些傻傻跳進來沒有穿吊嘎拖鞋去苦幹五年的心裡準備的對手。


回到政府的作為。台灣政府有個白痴的思考方式,就是認為:『產業產值越大,越值得大家跳下去。』
看看新聞講得那些:
MEMS很大很好我們要做、生科很大很好我們要做、Cloud很大很好我們要做。

一堆專家學者們還在做著有一天自己的研究可以『超英趕美』的白日夢,結果總是讓產業被各國專利打臉,只因為『市場在人家的土地上,而人家地雷已經埋好了』。都已經21世紀了還在幻想可以像過去竹科那樣,靠一個產業幾家指標企業養所有人。兩兆雙星、新的園區、新的產業條例都是這種好大喜功的思維表現。

台灣軟體的產業開拓,應該要朝一籃子特殊領域產業開始前進。

軟體是一個需求變化多端、快速、零碎,供給價值的前提假設變化莫測的領域。
戰爭迷霧大,目標模糊,就總是有外國企業重艦巨炮無法著力的地方。

化整為零打游擊,從低產值的『鄉村』偏僻領域開始,一個一個的用優勢兵力局部聚焦方式做出優秀產品把市場打下來,那麼只要累積到一定程度,鄉村就會包圍城市,只要剛好在一個關鍵的大需求上我們湊齊了一條龍,那就是螞蟻搬象的時候到了。

2011年9月26日 星期一

Re: [職場] 派遣是真的是好跳板??

This is an email response around an year ago, now I think it's good to release it.


: 您好
: 我在 Salary 版看到您發的這篇文章
: 想請問的是最後這幾句話
: 先說明我本身的背景
: 我目前為大四生,今年即將畢業
: 而去年曾經去某知名科技外商公司面試
: 當初他們想徵的人是有某專業背景,並希望畢業後能繼續留任的
: 而很幸運的我被入取了
: 並分發到某專案去  而直屬上司即是專案的PM
: 但上任第一天  PM才跟我說  其實我畢業後
: 我的email 名片 上班同事等等都跟正職相同
: 但我的人頭是掛在公司自己的人力派遣公司名下
: 而如今已經5月多了   我都沒投過任何履歷
: 專案的顧客公司PM知道後  還建議我去投另一間比現在名聲小一點的外商科技公司
: 說正職比派遣的好!!???

你確實應該投看看,而且不只一家,而是要投很多間。人出來工作一定要清楚知道自己的行情,你可以因為『你覺得現在的公司有發展潛力』或者『你在這間公司可以快速成長、達到你當初設定的目的』然後接受目前這間公司比較差的薪水與待遇,但不可以因為你主管對你有多好就隨便讓他去。

職場中人對別人好有沒有什麼算計不是三兩年看得出來的,更何況你待沒幾個月。你都沒去外面看,你就無法印證你目前老闆對你到底是一個什麼心態。

我個人只相信等價交換,如果我值得這麼多,那你就必須付出足夠的代價才能得到我的服務。

這個代價可以是薪資、可以是福利、可以是一個機會、一份計畫或任何其他對對方來說是有價值必須付出的東西。

這是誠意與承諾,而確實的履行承諾才能形成信用。

公司對員工投注的心血與人力成本,員工在公司花費的時間與創造的績效,這一切必須明確的產生信用循環,才會對所有人來說是健康的。


: 老實說  自己也知道公司是因為要節省成本才會考慮先用實習生再轉派遣員
: 但就如您所說的  我是由外商公司徵選進去 而現在帶我訓練我的人也是外商公司的人
: 而且的確學到很多東西  而帶我的師父也很不藏私的在教我
: 可是考慮的點是:
: 1. 直到現在都還沒和PM談過薪水問題,但預計大概部會超過三萬.....或只有三萬初..
:    且這非正職員工(但此公司很少用新鮮人當正職的....)

談薪水的重點在於:
你作過什麼,你能證明你擅長什麼而且擅長到什麼地步遠比你過去是什麼來的重要
越菜的就越會喜歡寫一些學校裡有的沒的,而那些東西說老實話除非能夠不證自明的轉化成職能,不然都沒屁用。了不起是求一個『你應該不是笨蛋』的心安而已。

: 2. 若真的想要找其他正職,必須盡快了! 但公司內的資深員工卻說公司一直都是先將較
:    菜的員工先放派遣公司下  過幾年再轉正職的!!
:    而前輩您文章最後的那幾句話,是不是反應了這樣的做法是正常的??

統計上的外商公司這樣是正常的,但你現在已經在面對一間有血有肉、你已經在裡頭工作的公司了。請直接從你觀察到公司的種種跡象去推斷他們在這件事情上是不是有信用的。

: 3. 在實習期間,公司沒幫我保勞健保,當初也不懂原來是要保的! 而現在實習生的
:    身分下,我沒簽屬任何一份文件(除了保密文件外),也就是說現在既不歸屬於
:    派遣公司,在外商公司中也沒身分....
:    我現在領的薪水是專案擠出來的錢,是每個月PM親手拿錢給我的.....
:    但很確定畢業後是會掛在公司自己的派遣公司名下

這個我猜是台灣人在外商底下做事搞出來的權宜之計。其實也沒啥不好,只要確定未來不會繼續如此就好。

: 我其實一直很迷網.... 不知該如何是好...
: 能進這家公司  其實是真的很幸運  而且也學到了很多東西
: 但卻又有種被騙的感覺....
: 想請問前輩外商公司這樣是正常的嗎?
: 而如果這兩年人頭掛在這間派遣公司,再轉正職前去別家公司應徵  會有負面影響嗎?
: 我真的很迷網  希望前輩能好心指點一下!!
: 真的很感謝你 ORZ

人跳來跳去很正常,會不會有負面影響不是因為你想跳,而是你待人接物處世高不高明,還有你老闆心眼如何。

至於被騙,你失去了什麼嗎?你當初不進這間公司進了其他間就會更好嗎?
如果答案都是『不是』,那我想你知道你是被騙了,還是你只是看到別人在同一間公司有更好的待遇而覺得不公平。

如果是後者,我告訴你一個事實。

這世上原本沒有公平,要不是人類想要把每個個體組織起來,形成社會,那就根本不需要公平這種概念。

你可以仔細想一下,如果不是放在需要被組織起來的社會架構中,公平還存不存在。

兩個原始部落的個別的兩個獵人在密林裡遭遇了,他們會討論公平?
美國跟中國在澳洲、中東、俄羅斯搶爭天然資源開採許可權時,他們講公平?
八國聯軍打進中國瓜分土地財富時,他們有想到公平?

你看,國家跟國家之間沒有更上面而且具有強制執行力的社會結構來約束他們,所以他們就不講公平了。而你跟你的鄰居會講公寓公共區域的使用規則要怎樣才公平,那是因為你跟鄰居都處在同一個具有強制力的社會結構裡。

你的公司會跟你講公平嗎?會,但對不起,台灣社會給他的強制執行力只到勞基法而已。

所以比起公平,更重要的是利益。

你得到什麼利益?你在公司裡做事你依據你的目標擬定的目的有機會達成嗎?

2011年9月23日 星期五

Top 10 Mistakes Employers Make in the Recruiting and Hiring Process

Directed copy from this link:
http://www.fordyceletter.com/2008/02/01/top-10-mistakes-employers-make-in-the-recruiting-and-hiring-process/


We have been here since 1952 and have been through literally thousands of hiring processes. We are asked about the biggest and most frequent mistakes that hiring authorities make in the recruiting, interviewing, and hiring process. Here they are:

1. Not having a clear idea of what they are looking for – that everyone understands.
Hiring authorities aren’t specific enough about the duties, skills, and competencies they need. They confuse amount of experience with competency: “8 to 10 years of experience” – does that mean that someone with six years of experience can’t do the job? Or what about the candidate who has had one year of experience 10 times? Putting any kind of numbers of years of experience limits them. What is important?

Employers would be better off defining the functions they want done very specifically, and then finding someone who can do it. This may mean someone who has done it well before or someone who has the potential to do it well. The specifics need to be written by the hiring authority who has the “pain,” i.e., the person who needs the help and is going to be responsible for the new employee.

Concocting “wish lists” of super-human attributes, combined with unrealistically low pay scales relative to expectations of the experience needed, will create havoc in a talent search. Hazy, ambiguous descriptions along with generalities like “good written and oral communication skills” don’t help either. Know your target.

2. Having an unrealistic idea of what kind of candidates might be available and the money it may take to hire them.
Just because everyone would like to hire Superman or Wonder Woman, that doesn’t mean they are available or will go to work at your company. There is no perfect candidate, and waiting for one is as unrealistic as searching for one.

The only way to become realistic about what the market might bear is to interview enough candidates to know what is available and the commensurate earnings expected. It may take quite a few interviews. The number of quality candidates is drastically lower than it was even two years ago. Our clients are often shocked that the salaries they are locked into won’t allow them to hire the quality or experience they wish for.

And just because you believe that your company is wonderful, it doesn’t mean: (1) everyone wants to go to work there, (2) they will accept any amount you offer, and (3) there aren’t four or five other firms like yours trying to hire the same candidates.

3. Having too many people involved in the interviewing process . . . and the wrong ones.
More than a number of studies have shown that hiring is just as successful when one person, the one with the “pain” (i.e., the direct manager), is the only person involved in the hiring process as opposed to more than one. In fact, other studies have shown that once the number of people in the interviewing and hiring process exceeds three, the probability of a bad hire is greater. The reason so many people are usually involved in the interviewing and hiring process is that people, naturally, want to spread the risk. So if it turns out to be a poor hire, people can justify their decision with “Well, you interviewed him too!” Few people have the courage to interview and hire alone and take the responsibility one way or the other, even though better hiring decisions would probably be made.

. . . and the wrong ones. Relying on people to screen, interview, or have a say in the hiring who have no personal, working benefit from the potential new hire’s performance (i.e., their position is in jeopardy if a poor hire is made) is a big mistake. Most managers will claim that hiring good people is the second or third most important function they have, right behind making a profit. We can never figure out why, if this is so, hiring authorities will delegate screening or interviewing of candidates to people, although wonderful people, who have no direct experience, knowledge, or “skin” in the position to be filled. “But I don’t have time to look at résumés and interview all those people,” is what we hear. Well, if hiring is one of a manager’s most important functions, he or she should take the time and make the effort to do the whole job from start to finish. How can they afford not to?

4. Process takes too long.
The average manager thinks that it takes about 30 days to fill a vacant position. Try the truth: between 90 and 120! Why? Because folks drag things out that should be simple – not easy, but simple. When the hiring process takes too long, good candidates are lost to more decisive companies, managers look inept at hiring, and it gets harder and harder to fill the vacancy. Managers, again, don’t give this the priority status needed – shown by action, not lip service. Time kills! The “shelf life” of quality candidates is shorter and shorter.

5. Poor interviewing techniques.
If hiring authorities would simply write out a simple (or complicated) list of questions and ask every candidate the same questions, record the answers, and compare the responses – quickly – hiring decisions would be easy to make.

“Tell me about yourself” is the first question down the wrong road. Most employers start with that, ask random questions to “get to know the candidate,” make notes on the résumés, and then three weeks later try to compare the candidates. They often spend hours with candidates and don’t remember the differences between them.

A structured, disciplined interview technique that is applied to every candidate in exactly the same manner is the only real way to compare candidates. It is so simple and yet so seldom practiced. (We have samples of structured interviews for the asking.)

6. Interviewing or not interviewing a candidate on the basis of a resume!
Forty percent of hiring a person is based on personality and chemistry! Then why do people rely on resumes instead of interviews? Because they don’t know how to use a resume.

I can’t tell you how many phenomenal candidates get eliminated because of a resume and how many poor performers get interviewed because of a well-written resume. “But I can’t interview every resume I get!” OK, right. But if a candidate even looks like a possibility of being a good one, at least pick up the phone and spend 15 or 20 minutes with him or her. Or, better yet, spend 30 minutes face to face with them. Get a quick take on who they are and what they can do. Do this with a number of candidates. You can then thoroughly interview the ones that are the best for your situation. This method is quick and efficient, but it takes discipline – no more than 30 minutes on the first one!

Hiring authorities and screeners put way too much emphasis on what is on a resume. They try to judge the total quality of a candidate by a resume. A resume is a “go by.” It should simply define a candidate as a “possibility”- and a broad possibility at that. The interviews have to be the qualifiers.

People who “qualify” a candidate and decide how he or she is going to perform should read Tony Romo’s resume a nobody; or Kurt Warner’s – a bagger at a grocery store; or Abe Lincoln’s – many failures. Don’t rely on resumes!

7. Not interviewing enough candidates – or interviewing way too many.
Most hiring managers err on the “too few” end of the spectrum. “I want to talk to the three best candidates!” “I don’t have time to talk to everybody!” No one person other than a hiring authority can tell who is “best.” Three or four is usually too few. The “bell curve” for most professional hires is about 9 or 10 candidates. This, of course, depends on the level of job and the availability of certain types of candidates. The key is to know what kind of availability there is in the marketplace for the kind of person being sought. Our banking division, for instance, may be lucky to find three or four qualified VPs at any one time. A mid-level sales position may require 10 or 12 candidates. Even recruiting a number of quality candidates for administrative positions, which traditionally would bear many quality candidates, isn’t as easy to do in this market.

The key is to interview a range of quality candidates and know what is available. If you want to wait for superman or superwoman, I guess it’s OK. It just depends on how badly you need to hire someone. Just be sure you know, firsthand, the quality of candidates on the market. The only way to do that is to do your own interviewing of the numbers necessary and available.

The other end of the spectrum is the hiring authority who wants to interview forever, thinking unrealistically that the quality of candidates will get better the more that are interviewed and the longer it takes. All too often, we hear from hiring authorities, “We have interviewed 20, 25, or 30 candidates.” There is something wrong here. They exhaust themselves in a “process,” forgetting the result, and then complain about it. It doesn’t get a good employee. They confuse activity with productivity.

Interview the number of candidates necessary. Don’t make the mistake on either end of the spectrum.

8. Not communicating with candidates after interviews and not giving honest feedback.
For some reason, hiring authorities don’t seem to mind being rude – even to candidates they are interested in hiring. Everyone is busy. The truth is that, to a candidate looking for a job, whether presently employed or not, finding a job is a very high priority. To a hiring authority, in spite of the lip service about how important hiring is, it is simply one of their functions. Hiring is a risk. Most employers don’t really like doing it. So the process often gets postponed, sloppy, and rather unprofessional.

As the market tightens, quality candidates will have many suitors. A good candidate will simply lose interest in a possibly good opportunity if they are treated rudely. We have had many candidates elect to pursue opportunities simply because they were treated with respect and courtesy.

Also, if the candidate isn’t going to be considered, he or she should be told as soon as possible. We are amazed at the number of hiring authorities who won’t return a candidate’s call, or multiple calls, just to say that they have found a more suitable candidate. We never know when that kind of lack of courtesy will come back to us. Years ago, I had a candidate who was rudely ignored by a hiring authority. A few years later, the roles were reversed. The candidate was now a hiring authority, and when I tried to get him to see my candidate, the hiring authority of a few years ago, my client laughed and said no with vengeful glee. He remembered how he had been treated. What goes around often comes around.

9. Not selling the job and the company. 
Although this isn’t the biggest mistake hiring authorities make, it is certainly the most prevalent one. We can never figure out why, in trying to find the best talent available, hiring authorities act as if they are doing someone a favor by granting them the privilege of an interview. They act as though they have the only job on the planet, and candidates are begging to work there. Wrong! Good candidates will have many choices. The days of the early 2000s, when there were endless numbers of candidates, are gone. The company and the hiring authorities that sell their job the best will hire the best talent. It is a candidate-driven market. We can also forget lowball offers, poor benefits, or a “take it or leave it” attitude when making an offer.

10. Not having “backup” candidates. 
This means continuing to interview even though a great candidate may have been found. In fact, we recommend having three great candidates in the queue.

As happens too often, a hiring authority zeroes in on one candidate, and as the interviewing process drags on (see #4), the hiring authority quits interviewing because it is a pain. They get to the end of the process, make an offer, and it isn’t accepted. The frustration of having to start all over is astounding. So the solution is to keep interviewing until someone is hired – and has started the job. We simply expect that a good candidate is going to get multiple offers.

10 (a) Not firing a new hire when the hiring is obviously a mistake.
This is a tough mistake to make. Everyone wants to see a new employee make it. But too often, cutting new hires too much slack because they are new is a mistake. The numbers of failed new hires we have seen that were let go or quit six or seven months after their hiring, with the hiring authority complaining, “I saw it in the first week!” would make us all cry. It becomes disruptive to the business, it destroys the chemistry of the employees working with the new hire, and worst of all, everyone can detect it, but the hiring authority chooses to overlook it. Respect for the hiring authority diminishes, and eventually the new employee leaves or is fired.

The solution that better hiring authorities adopt is to keep new employees in line in the very beginning, even “over manage” a bit. If disregard for company policies, or poor work habits, like showing up late, missing work, having numerous “personal” problems, emerge in the first few weeks of employment, it isn’t going to get any better. Besides, the “honeymoon” isn’t even over.

There is a big difference between “rookie” mistakes and poor work habits, low integrity, bad manners, or serious personal problems that impinge on work. Even the most rigorous interviewing process and extensive reference, background, and credit checking can’t prevent this from happening.

One of the most successful hiring authorities we worked with years ago had a great philosophy. He was the most successful general manager of a nationwide insurance company. And he was that for 15 years in a row. He managed 110 people, directly and indirectly. He told me one time that he wasn’t successful because he hired better people than the other GMs around the country. The difference was that he fired people “when he first got the inkling.” He simply didn’t waste his time on people he knew weren’t going to make it.

The sense of when to fire a new employee is personal. Good managers know when to do it. Hire carefully, but fire quickly! If a bad hire is made, eliminate it quickly. The hiring authority will look like a true manager, and everyone is better off.

Tony Beshara is a legendary big biller and heavy hitter. He has been a major player in the search and placement business since 1973 and is the owner of Babich & Associates, in the Dallas-Fort Worth area. He authored “The Job Search Solution” and has appeared on the Dr. Phil show several times. His new book, just released, is “Acing the Interview.” It’s chock-full of information for the job seeker, and I give it a two thumbs up for everyone in our business as well. Over 450 questions (and the optimum answers) are included. Available at your local bookstore or through Amazon.com, Barnesandnoble.com, and other Internet book-selling sites at an amazingly inexpensive price.


Since 1973, Tony Beshara has placed more than 7,000 people on a one-on-one basis, in more than 100 different job categories. His candidates have accepted positions earning minimum wage and salaries up to more than a million dollars a year. Tony has directly worked with more than 24,000 hiring authorities, at 21,000 different hiring organizations. The system he has developed has helped more than 100,000 people find jobs. Tony‘s first book, The Job Search Solution, was one of the top ten best sellers in 2005 in its category and its success led to the creation of TheJobSearchSolution.com, a web-based training program believed to be the first of its kind for people going through the job search process. His second book, Acing the Interview, was released in January of ‘08 and has received very positive reviews from critics.

2011年9月1日 星期四

拒絕平庸

這是大陸今年高考的作文題目。


老實說,這個題目超爛。
那些我們認為不平凡而值得尊敬的人,他們的不平凡不是因為他們『拒絕平庸』,而是因為他們可以為想要實現的事情犧牲奉獻到常人無法理解的程度,從旁觀者的角度來看,這群人就是不會放棄。對這些人來說,面對那個『必須被實現的事情』沒有做不做得到的考慮,只有下一步該如何進行才能再靠近一點。

『拒絕』平庸?用這種角度思考跟小屁孩說他討厭吃青菜有啥兩樣?

人沒有辦法透過『拒絕』來建立什麼,只有將那個你無法『拒絕』、沒有藉口、那個你知道你的人生就是為了實現它而存在的價值給找出來,你才有可能不再平庸。


台灣最近有一個人,他從199x年就開始相信他該拍一部電影,他一路走來,從在電影圈工作打雜開始、執導短片、為了凝聚足夠的力量與信任拍出第一部賣座片、到最後終於眾人也開始相信他所相信的:『這部片台灣拍得出來。』於是大家開始出錢出力。

這部電影2011年9月9日上映,賽德克巴萊,一部導演從還不是導演只會說夢話開始,走過10多年去實現的那個價值。

一部電影如果可以看作是一個藝術品,這位導演這10幾年的人生也可以。


2011年8月10日 星期三

快樂學習?


我一直搞不懂,我國教育部講的『快樂學習』到底是什麼?


學習會快樂? 我這輩子經歷過最重要的『學習』,或者說『思考』都必定有著孤獨而痛苦的成份。要學習,或者說,要能認真對待一個新觀念、吸收過去所不知道的知識、將外來的東西化作自己的一部份,對我來說就一定得先做一件事:

知道自己的驕傲無恥與怠惰正遮蓋著自己,所以用力的將它們從身上暫時的扯開。

不常常練習的話,那種痛苦會像是把自己的一部分從身上切下來,特別當情況是別人或有心或無意地替你這麼做的時候。

通常只有到把東西派上用場,過去的自己沒有辜負現在的期待時,才自然會快樂。

而時間過去,經過了無數次的使用修正,學到的東西變成自己的一部分再也分不開來時,那時候就會有自信並且有滿足感。

所以話說回來,其實我不喜歡『學習』這個字眼。

我比較喜歡『訓練』『準備』『設定目標』『思考』『探索未知』這些說法。
老是講學習學習的人,給我感覺他說不定是在敷衍、沒要認真做些什麼的。



2011年7月31日 星期日

有佛心培訓新人的公司嗎?

這是一個一年多前有人在我常去的論壇上問的問題,那個剛畢業新鮮人問說:

: 有佛心來的公司找不到人培訓的嗎?
: 我己經找工作找到瘋了

以下是我的回答:

我猜測你至少有大學畢業,那如果已經大學畢業了,以下的事情應該是努力就做得到。

1. 找一個你的語言或開發工具最大的專業論壇。
2. 用三個月的時間,每天回答上面一個你覺得你努力可以答的出來的問題(非Trivial)。
3. 每個問題寫超過1000字,最好還有會跑的範例程式。
4. 寫至少15篇有意義的介紹性的Blog文章,偷懶一點,就去翻譯國外網站沒人翻過Tutorial,然後想辦法去任何一個相關的論壇增加你的文章曝光的機會。
5. 這些文章與回答最好都圍繞在同一塊技術領域打轉,寫Hello world級的東西是沒用的。

6. 把你的104resume裡沒用的身世文砍掉,改放以上文章的技術簡述與超連結,說明你最近在研究什麼,你對一個領域的知識熟悉到什麼程度。
7. 開一個Gmail,去一個比較可以信任的論壇求職專區,或在這裡公開你想求職的訊息。
8. 考證照不會比上面有用,公司找的是可以解決問題的人,不是狀元郎。

你知道寫程式的要找工作,比起什麼文史社會科系,最大的優勢在哪嗎?

那就是這跟網拍一樣,你隨時隨地有可以低成本發表你的意見的空間和舞台。
只不過網拍拍賣的是商品,Blog還是論壇拍賣的是你自己,本質都是一樣的。

SF.net、Google Code,都可以Host 你的專案。
專注在相當專門的領域可以保證你PO出來的文章可以出現在Google該領域關鍵字時非常前面的結果。

再來就是你可以要求你自己到什麼程度而已。
在這行之所以沒有飯吃,比起這個世界不給你機會,你自己不夠努力爭取、或方法錯誤的可能性還比較大。

文章備份:碩士班研究所新生手冊

Issued by and valid in the PPSC Lab. Directed by Prof. M H. Perng
凡本之研究生,必須在本同意指導論文之後的一個月期限內,仔細讀完這一本手冊,並針對不解的部分求教學長或本人,直到確定充分瞭解為止。

如果你期望在兩年期間順利完成碩士學位,並且按部就班地把這兩年時間最有效地利用,這本小小的手冊告訴你:(1)獲得碩士學位的最低修課與論文要求,(2)這個實驗室裡用什麼樣的制度協助你完成前述要求,(3)為什麼要有這些要求,以及這樣的制度安排,(4)你該如何規劃修課與研究進度。
關於最低畢業學分的要求,是控制組的統一規定。關於論文的要求,是我個人的規定,別的實驗室可能有不一樣的規定和要求,不在此細述。至於本實驗室的制度安排,是針對前述論文要求而設計的。

壹、論文的要求
我對碩士論文的基本要求是:1論文的主要內容,是敘述一套方法在一個特定場合中的應用。2這套方法必須要有所創新或突破,並因而對學術界或工業界有所貢獻。因此,它或者是解決既有問題的新方法,或者是既有方法的新應用,或者是以一個新的方法開啟一整片新的應用領域。3在論文中,你必須要有能力提出足夠的證據來讓讀者信服說:針對這個應用場合,你所提出來的方法確實比文獻中一切既有方法有更優越之處。4此外,你必須要能清楚指出這個方法在應用上的限制,並且提出充分證據來說服讀者:任何應用場合,只要能夠滿足你所提出來的假設(前提)條件,你的方法就一定適用,而且你所描述的優點就一定會存在。5你還必須要在論文中清楚指出這個方法的限制和可能的缺點(相對於其它文獻上的既有方法,或者在其它應用場合裡)。假如這個方法有任何重大缺點,在口試時才被口試委員指出來,這將是一大瑕疵。6行文風格上,它是一篇論證嚴謹,邏輯關係清晰,而且結構有條理的專業論述。也就是說,在敘述你的方法的過程,你必須要清清楚楚地交代這個方法的應用程序以及所有模擬或實驗結果的過程,使得這個專業領域內的任何讀者,都有辦法根據你的描述,在他的實驗室下複製出你的研究成果,以便確定你的結論確實是可以「在任何時間、任何地點、任何人」都具有可重複性(可重複性是「科學」的根本要求)。7而且,你對這個方法的個步驟都必須要盡量提供充分的理由說明「為什麼非如此不可」。8最後,你的論文必須要在適當位置清楚註明所有和你所研究之題目相關的文獻。而且,你必須要記得:只要是和你所研究的問題相關的學術文獻(尤其是學術期刊論文),你都有必要全部找出來(如果漏掉就是你的過失),仔細讀過。假如你在學位論文口試時,有口試委員指出有一篇既有文獻,在你所討論的問題中處理得比你的方法還好,這就是一個重大的瑕疵。9)第(2)款所謂「對學術界的貢獻」,指的是:把你的所有研究成果扣除掉學術界已經發表過的所有成果(不管你實際上有沒有參考過,沒有參考過也算是你的重大過失),剩下的就是你的貢獻。假如這個貢獻太少,也論文口試不利。

貳、完成碩士論文所需要的能力
從前面的敘述可以歸納出來,完成碩士論文所需要的能力包括以下數項,依它們的培養先後次序逐項討論。
1)資料檢索的能力:在給定(或自己擬定)的題目範圍內,你必須有能力利用資料檢索系統(尤其是教育部「博碩士論文檢索系統」、Compendex SCI 這三套論文資料索引系統),查出所有相關的論文,而無任何遺漏(否則你可能在論文口試時才發現同一個題目已經有人發表過了)。你到底要用什麼樣的關鍵字和查所程序去保證你已經找出所有相關的文獻?這是第一個大的挑戰。每一組關鍵字(包含聯集與交集)代表一個論文所構成的集合,假如你用的關鍵字不恰當,你可能找到的集合太小,沒有涵蓋所有的相關文獻;假如你用的關鍵字太一般化(譬如「image」),通常你找到的集合會太大,除了所有相關文獻之外還加上好幾十倍的毫不相關的文獻。
2)資料篩選的能力:即使你使用了恰當的搜尋策略,通常找到的文獻集合都還是明顯地比你所需要的集合大,而且通常文獻比數大概在一、兩百篇或數百篇之間,而其中會和你的的研究子題直接且密切相關的論文,通常只有廿、卅篇左右。你如何可以只讀論文的題目、摘要、簡介和結論,而還沒有完全看懂內文,就準確地判斷出這篇論文中是否有值得你進一步參考的內容,以便快速地把需要仔細讀完的論文從數百篇降低到廿、卅篇?這考驗著你從事資料篩選的能力。
3)期刊論文的閱讀能力: 期刊論文和大學部的課本截然不同。大學部的課本是尋次漸進地從最基本的知識背景逐步交代出整套有系統的知識,中間沒有任何的跳躍,只要你逐頁讀下去,就可 以整本都讀懂,不需要在去別的地方找參考資料。但是期刊論文是沒頭沒尾的十幾頁文獻,只交代最核心的創意,並援引許多其它論文的研究成果(但只註明文獻出 處,而完全沒有交代其內容)。因此,要讀懂一篇論文,一定要同時讀懂數篇或十數篇被援引的其它論文。偏偏,這十幾篇被援引的論文又各自援引十數篇其它論 文。
因此, 相對於大學部的教科書而言,期刊論文是一個極端沒有系統的知識,必須要靠讀者自己從幾十篇論文中擷取出相關的片段,自己組織成一個有系統的知識,然後才有 辦法開始閱讀與吸收。要培養出這種自己組織知識的能力,需要在學校靠著大量而持續的時間去摸索、體會,而不可能只利用業餘的零星時間去培養。因此,一個大 學畢業後就不再唸研究所的學生,不管他在大學部有多優秀,都很難在工業界利用業餘的時間去培養出這種能力。所以,碩士畢業生和大學畢業生最大的差別,就是:學士只學習過吸收系統知識的能力(也就是讀別人整理、組織好的知識,典型的就是課本);但碩士則學習過自己從無組織的知識中檢索、篩選、組織知識的能力
4)期刊論文的分析能力: 為了確定你的學位論文研究成果確實比所有相關的學術期刊論文都更適合處理你所擬定的應用場域,首先你必須要有能力逐篇分析出所有相關期刊論文的優點與缺 點,以及自己的研究成果的優點與缺點,然後再拿他們來做比較,總結出你的論文的優點和缺點(限制)。但是,好的期刊論文往往是國外著名學府的名師和一流的 博士生共同的研究成果,假如你要在鎖定的應用場域上「打敗」他們,突出自己的優點,這基本上是一個很困難的挑戰。即使只是要找出他們的缺點,都已經是一個 相當困難的工作了。一個大學畢業生,四年下來都是假定「課本是對的」這樣地學下來的,從來沒有學習如何分析課本知識的優缺點,也就是「只有理解的能力,而沒有批判的能力。碩士生則必須要有「對切既有進行精確批判」的能力。 但是,這個批判並非個人好惡或情緒化的批判,而是真的找得到充分理由去支持的批判。這個批判的能力,讓你有能力自己找到自己的優、缺點,因此也有機會自己 精益求精。所以,一個大學畢業生在業界做事的時候,需要有人指導他(從事批判性檢驗),幫他找出缺點和建議改進的可能性。但是,一個嚴格訓練過的合格碩士,他做事的時候應該是不需要有人在背後替他做檢證,他自己就應該要有能力分析自己的優、缺點,主動向上級或平行單位要求支援。
其實,至少要能夠完成這個能力,才勉強可以說你是有「獨立自主的判斷能力」
5)創新的能力:許多大學畢業的工程師也能創新,但是碩士的創新是和全世界同一個學術團體內所有的名師和博士生挑戰。因此,兩者是站在不同的比較基礎上在進行的:前者往往是一個企業內部的「閉門造車」,後者是一個全球的開放性競爭。其次,工程師的創新往往是無法加以明確證明其適用條件,但是學術的創新卻必須要能夠在創新的同時釐清這個創新的有效條件。因此,大學畢業生的主要能力是吸收既有知識,但碩士畢業生卻應該要有能力創造知識。此 外,台灣歷年來工業產品的價位偏低,這一部分是因為國際大廠的打壓以及國際消費者的信任不易建立。但是,另一方面,這是因為台灣的產品在品質上無法控制, 因此只好被當作最粗糙的商品來販賣。台灣的產品之所以無法有穩定的品質,背後的技術原因就是:各種創新都是只憑一時偶然的巧思,卻沒有辦法進一步有系統地 釐清這些巧思背後可以成立的條件。但是,創新其實是可以有一套「有跡可尋」的程序的,這是我最得意的心得,也是我最想教的。

參、為什麼要堅持培養閱讀與分析期刊論文的能力
我之所以一直希望能訓練研究生閱讀與分析期刊論文的能力,主要是為了學生畢業後中長期的競爭力著想。
台灣從來都只生產國外已經有的產品,而不事創新。假如國外企業界比國外學術的技術落後三年,而台灣的技術比國外技術落後五年,則台灣業界所需要的所有技術都可以在國外學術期刊上找到主要的理論依據和技術核心構想(除了一些技術的細節和 know how 之外)。因此,閱讀期刊的能力是台灣想要保持領先大陸技術的必備條件。
此外,只要能夠充分掌握閱讀與分析期刊論文的技巧,就可以水到渠成地輕鬆進行「創新」的工作。所以,只要深入掌握到閱讀與分析期刊論文的技巧就可以掌握到大學生不曾研習過的三種能力:1)自己從無組織的知識中檢索、篩選、組織知識的能力、(2)對切既有進行精確批判的獨立自主判斷能力、(3)創造新知識的能力。創新的能力在台灣一直很少被需要(因為台灣只會從國外買整套設備、製程和設計與製造的技術)。但是,大陸已經成為全球廉價品製造中心,而台商為了降低成本也主動帶技術到大陸設廠(包括現在的晶元代工),因此整個不具關鍵性技術的製造業都會持續往大陸移動;甚至 IC 的設計(尤其數位的部分)也無可避免地會迅速朝向「台灣開系統規格,進行系統整合,大陸在前述架構下開發特定數位模組」的設計代工發展。
因此,未來台灣將必然會被逼著朝愈來愈創意密集的創意中心走(包括商務創意、經營創意、產品創意、與技術創新)。因此,不能因為今天台灣的業界不需要創新的能力,就誤以為自己一輩子都不需要擁有創新的能力。
我在協助民間企業發展技術研發的過程中,碰到過一位三十多歲的廠長。他很聰明,但從小家窮,被環境逼著去念高工,然後上夜校讀完工專。和動態性能(bandwidthresponse speed 等) 無關的技術他都很深入,也因為產品升級的需要而認真向我求教有關動態性能的基本觀念。但是,怎麼教他都不懂,就只因為他不懂工程數學。偏偏,工程數學不是 可以在工廠裡靠自修讀會的。一個那麼聰明的人,只因為不懂工數,就註定從三十歲以後一輩子無法在專業上繼續成長!他高工畢業後沒幾年,廿多歲就當課長,家 人與師長都以他為榮;卅歲當廠長,公司還給他技術股,前途無量;誰想得到他會在卅歲以後被逼著「或者升級,或者去大陸,或者失業」?
每次想起這位廠長,看著迫不急待地要到台積電去「七年賺兩千萬退休金」的學生,或者只想學現成可用 的技術而不想學研究方法的學生,我總忍禁不住地要想:十年後,我教過的學生裡,會不會有一堆人就只因為不會讀期刊論文而被逼提前退休?再者,技術的創新並 不是全靠聰明。我熟諳一套技術創新的方法,只要學會分析期刊論文的優缺點,就可拿這套方法分析競爭對手產品的優缺點;而且,只要再稍微加工,就可以從這套 優缺點的清單裡找到突破瓶頸所需的關鍵性創意。這套創新程序,可以把「創新」變成不需要太多天分便可以完成的事,從而減輕創意的不定性與風險性。 
因此,只要會分析論文,幾乎就可以輕易地組合出你所需要的絕大部分創意。聰明是不可能教的,但這套技巧卻是可以教的;而且只要用心,絕大部分碩士生都可以學會。就是因為這個原因,我的實驗室整個訓練的重心就是培養學生深入掌握閱讀與分析期刊論文的技巧,進而培養他們在關鍵問題上突破與創新的能力

肆、期刊論文的分析技巧與程序(參考第 9 頁圖一)
一般來講,好的期刊論文有較多的創意。雖然讀起來較累,但收穫較多而深入,因此比較值得花心思去分析。讀論文之前,參考SCI Impact Factor 及學長的意見是必要的。
一篇期刊論文,主要分成四個部分。
1Abstract
說明這篇論文的主要貢獻、方法特色與主要內容。最慢碩二上學期必須要學會只看Abstract Introduction 便可以判斷出這篇論文的重點和你的研究有沒有直接關 連,從而決定要不要把它給讀完。假如你有能力每三十篇論文只根據摘要和簡介便能篩選出其中最密切相關的五篇論文,你就比別人的效率高五倍以上。以後不管是 做事或做學術研究,都比別人有能力從更廣泛的文獻中挑出最值得參考的資料。
2Introduction
Introduction 的功能是介紹問 題的背景和起源,交代前人在這個題目上已經有過的主要貢獻,說清楚前人留下來的未解問題,以及在這個背景下這篇論文的想解決的問題和它的重要性。對初學的 學生而言,從這裡可以瞭解以前研究的概況。通常我會建議初學的學生,對你的題目不熟時,先把跟你題目可能相關的論文收集個3040 篇,每篇都只讀 Abstract Introduction,而不要讀 Main Body(本文),只在必要時稍微參考一下後面的 Illustrative examples Conclusions,直到你能回答下面這三個問題:2A)在這領域內最常被引述的方法有哪些?(2B)這些方法可以分成哪些主要派別?(2C)每個派別的主要特色(含優點和缺點)是什麼?
問題是,你怎麼去找到這最初的3040 篇論文?有一種期刊論文叫做「review paper」,專門在一個題目下面整理出所有相關的論文,並且做簡單的回顧。你可以在搜尋Compendex 時在 keywords 中加一個「review」而篩選出這類論文。然後從相關的數篇 review papers 開始,從中根據 title Abstract 找出你認為跟你研究題目較相關的3040 篇論文。
通常只要你反覆讀過該領域內 3040 篇論文的 Abstract Introduction,你就應該可以從 Introduction 的評論中回答(2A)和(2B)這兩個問題。尤其要記得,當你閱讀的目的是要回答(2A)和(2B)這兩個問題時,你一定要先挑那些 Introduction 寫得比較有觀念的論文念(很多論文的 Introduction 寫得像流水帳,沒有觀念,這種論文剛開始時不要去讀它)。假如你讀過假如 3040 篇論文的 Abstract Introduction 之後,還是回答不了(2C),先做下述的工作。
你先根據(2A)的答案,把這領域內最常被引述的論文找齊,再把他們根據(2B)的答案分成派別,每個派別按日期先後次序排好。然後,你每次只重新讀一派的Abstract Introduction(必要時簡略參考內文,但目的只是讀懂 Introduction 內與這派有關的陳述,而不需要真的看懂所有內文),照日期先後讀,讀的時候只企圖回答一個問題:這一派的創意與主要訴求是什麼?這樣,你逐派逐派地把每一派的 Abstract Introduction 給讀完,總結出這一派主要的訴求、方法特色和優點(每一篇論文都會說出自己的優點,仔細讀就不會漏掉)。
其次,你再把這些論文拿出來,但是只讀 Introduction,認真回答下述問題:「每篇論文對其它派別有什麼批評?」然後你把讀到的重點逐一記錄到各派別的「缺點」欄內。
通過以上程序,你就應該可以掌握到(2A)、(2B)、和(2C)三個問題的答案。這時你對該領域內主要方法、文獻之間的關係算是相當熟捻了,但是你還是只仔細讀完 Abstract Introduction 而已,內文則只是籠統讀過。
這時候,你已經掌握到這領域主要的論文,你可以用這些論文測試看看你用來搜尋這領域論文的 keywords 到底恰不恰當,並且用修正過的 keywords 再搜尋一次論文,把這領域的主要文獻補齊,也把原來3040 篇論文中後來發現關係較遠的論文給篩選掉,只保留大概 20 篇左右確定跟你關係較近的文獻。如果有把握,可以甚至刪除一、兩個你不想用的派別(要有充分的理由),只保留兩、三個派別(也要有充分的理由)繼續做完以下工作。
然後你應該利用(2C)的答案,再進一步回答一個問題2D):「這個領域內大家認為重要的關鍵問題有哪些?有哪些特性是大家重視的優點?有哪些特性是大家在意的缺點?這些優點與缺點通常在哪些應用場合時會比較被重視?在哪些應用場合時比較不會被重視?」然後,你就可以整理出這個領域(研究題目)主要的應用場合,以及這些應用場合上該注意的事項。
最後,在你真正開始念論文的 main body 之前,你應該要先根據(2A)和(2C)的答案,把各派別內的論文整理在同一個檔案夾裡,並照時間先後次序排好。然後依照這些派別與你的研究方向的關係遠近,一個派別一個派別地逐一把各派一次唸完一派的main bodies
3Main body(含simulation and/or experimental examples):
在你第一次有系統地念某派別的論文 main bodies 時,你只需要念懂:3A)這篇論文的主要假設是什麼(在什麼條件下它是有效的),並且評估一下這些假設在現實條件下有多容易(或多難)成立。愈難成立的假設,愈不好用,參考價值也愈低。(3B)在這些假設下,這篇論文主要有什麼好處。(3C)這些好處主要表現在哪些公式的哪些項目的簡化上。至 於整篇論文詳細的推導過程,你不需要懂。除了三、五個關鍵的公式(最後在應用上要使用的公式,你可以從這裡評估出這個方法使用上的方便程度或計算效率,以 及在非理想情境下這些公式使用起來的可靠度或穩定性)之外,其它公式都不懂也沒關係,公式之間的恆等式推導過程可以完全略過去。假如你要看公式,重點是看公式推導過程中引入的假設條件,而不是恆等式的轉換。
但是,在你開始根據前述問題念論文之前,你應該先把這派別所有的論文都拿出來,逐篇粗略地瀏覽過去(不要勉強自己每篇或每行都弄到懂,而是輕鬆地讀,能懂就懂,不懂就不懂),從中挑出容易念懂的 papers,以及經常被引述的論文。然後把這些論文照時間先後次序依序念下去。記得:你念的時候只要回答(3A)、(3B)、(3C)三個問題就好,不要念太細。
這樣唸完以後,你應該把這一派的主要發展過程,主要假設、主要理論依據、以及主要的成果做一個完整的整理。其次,你還要在根據(2D)的答案以及這一派的主要假設,進一步回答下一個問題:3D)這派主要的缺點有哪些。最後,根據(3A)、(3B)、(3C)、(3D)的答案綜合整理出:這一派最適合什麼時候使用,最不適合什麼場合使用。
記住:回答完這些問題時,你還是不應該知道恆等式是怎麼導出來的!
當你是生手的時候,你要評估一個方法的優缺點時,往往必須要參考它的Examples。但是,要記得:老練的論文寫作高手會故意只 present 成功的案例而遮掩失敗的案例。所以,simulation examples and/or experiments 很棒不一定表示這方法真的很好。你必須要回到這個方法的基本假設上去,以及他在應用時所使用的主要公式(resultant equations)去,憑自己的思考能力,並且參考(2C)和(2D)的答案,自己問問看:當某某假設在某些實用場合上無法成立時,這個方法會不會出什麼狀況?猜一猜,預測一下這個方法應該會在哪些條件下(應用場合)表現優異,又會在哪些條件下(應用場合)出狀況?根據這個猜測再檢驗一次 simulation examples and/or experiments,看它的長處與短處是不是確實在這些 examples 中充分被檢驗,且充分表現出來。
那麼,你什麼時候才需要弄懂篇論文所有的恆等式推導過程,或者把整篇論文細細讀完?NEVER!你只需要把確定會用到的部分給完全搞懂就好,不確定會不會用到的部分,只需要瞭解它主要的點子就夠了。
碩士生和大學生最主要的差別:大學生讀什麼都必須要從頭到尾都懂,碩士生只需要懂他用得著的部分就好了!大學生因為面對的知識是有固定的範圍,所以他那樣念。
碩士生面對的知識是沒有範圍的,因此他只需要懂他所需要的細膩度就夠了。碩士生必須學會選擇性的閱讀,而且必須鍛鍊出他選擇時的準確度以及選擇的速度,不要浪費時間在學用不著的細節知識!多吸收「點子」比較重要,而不是細部的知識。







伍、方法與應用場合特性表(有跡可尋的創意程序)
像說你從上圖中論文閱讀步驟的第(4)與(5)步驟分別獲得以下兩張表:

譬如,當你的題目是「如何標定 fiducial mark 之中心位置」,你就必須要仔細搜尋出文獻上所有可能可以用來做這一個工作的方法。或許你找到的方法一共有四種,依序如下。譬如(隨便亂舉例),「方法一」可能表示:「以面積形心標定 fiducial mark 之中心位置」,「方法二」可能表示「以 Hugh transform 標定 fiducial mark 之中心位置」,「方法三」可能表示:「以局部弧形 matching 的方法標定 fiducial mark 之中心位置」,「方法四」可能表示:「以 ring code 標定 fiducial mark 之中心位置」。
這些方法各有它的特色(優缺點),譬如(隨便亂舉例),特性1 可能表示「計算速度」(因此,根據上表左邊第一個 row,可以發現:方法一的計算速度很快,方法二與方法三的計算速度很慢,而方法四的計算速度普通。其次,特性2 可能代表「光源亮度不穩定時計算位置的誤差大小」,特性3 可能代表「雜訊對計算出的位置干擾多大」,特性4可能代表「圖形邊緣有破損時計算的可靠度」,特性5 可能代表「物件有彼此的遮蔽時方法的適用性」等等。所以,以上左圖中第五個 row 為例,可以發現:當物件有彼此的遮蔽時,除方法二之外其它三個方法的適用性都很好。
但是,同樣一個方法可能有許多不同的應用場合,而不同應用場合可能會對適用(或最佳)的方法有不同要求。所以,讓我們來看右邊的「問題特性分析表」。譬如(再隨便亂舉例),應用假可能是「標定 fiducial mark 之中心位置」的方法在「電路插件組裝(SMT)」裡的應用,應用乙可能是「標定 fiducial mark 之中心位置」的方法在「生物檢驗自動化影像處理」裡的應用,而應用丙則可能是「標定 fiducial mark 之中心位置」的方法在「巡乂飛彈目標搜尋」裡的應用。這三種應用場合更有其關注的特性。譬如,根據上面右表第二個 row 的資料,三種應用場合對特性2(光源亮度不穩定時計算位置的誤差大小)都很在意。再譬如,根據上面右表第四個 row 的資料,三種應用場合中除了應用甲(電路插件組裝(SMT))之外,其它兩種應用場合對特性4(圖形邊緣有破損時計算的可靠度)都很在意。
那麼,四個方法中哪個方法最好?你可能會回答說:「方法二!因為它的優點最多,缺點最少。」但是,這樣的回答是錯的!一個方法只有優缺點,而沒有好壞。當它被用在一個適合表現其優點而不在乎其缺點的場合裡,它就顯得很好;但是,當它被用在一個不適合表現其優點而很在乎其缺點的場合裡,它就顯得很糟。譬 如,方法二在應用場合乙,它的表現會非常出色(因為所有的優點剛好那個應用場合都在意,而所有的缺點剛好那個應用場合都不在意);但是,方法二在應用場合 假裡它的表現卻會非常糟糕(它所有的缺點剛好那個應用場合都很在意,而它大部分的優點剛好那個應用場合卻都不在意)。所以,必須要學會的第㆒件是就是:方法沒有好壞,只有相對優缺點點;只有當方法的特性與應用場合的特性不合時,才能下結論說這方法「不適用」;當方法的特性與應用場合的特性吻合時,則下結論說這方法「很適用」。因此,一定要同時有方法特性表與應用場合特性分析表放在一起後,才能判斷一個方法的適用性。
更重要的是:上面的方法與問題分析對照表還可以用來把「突破瓶頸所需的創意」簡化成一種「有跡可尋」的工作。譬如,假定我們要針對應用甲發展一套適用的方法,首先我們要先從上右表中標定這個應用場合關心哪些問題特性。根據上右表第一個 column,甲應用場合只關心四個特性:特性1235(即「計算速度」、「光源亮度不穩定時計算位置的誤差大小」、「雜訊對計算出的位置的干擾」、「物件有彼此的遮蔽時方法的適用性」)。那麼,哪個方法最適用呢?看起來是方法一,它除了特性 2 表現普通之外,其它三個特性的表現都很出色。但是,假如我們對方法一的表現仍不夠滿意,怎麼去改善它?
最簡單的辦法就是從上左表找現成的方法和方法一結合,產生出一個更適用的方法。因為方法一只有在特性 2上面表現不夠令人滿意,所以我們就優先針對在特性 2上面表現出色的其它方法加以研究。根據上左表,在特性 2 上面表現出色的方法有方法二和方法四,所以我們就去研究這兩個方法和方法一結合的可能性。或許(隨便舉例)方法四的創意剛好可以被結合進方法一而改善方法一在特性 2 上面的表現,那麼,我們就可以因此輕易地獲得一個方法一的改良,從而突破甲應用場合沒有適用方法的瓶頸。
有沒有可能說單純常識結合既有方法優點仍無法突破技術瓶頸的狀況?可能有。這時候真的需要完全新穎的創意了。但是,這種時候很罕見。多半時候只要應用上一段的分析技巧就可以產生足以解決實用問題的創意了。至少,要產生出一篇學術期刊論文並非那麼困難。


陸、論文閱讀的補充說明
碩士生開始學讀期刊論文時,就容易犯的毛病就是戒除不掉大學部的習慣:(1)老是想逐行讀懂,有一行讀不懂就受不了。(2)不敢發揮自己的想像,讀論文像在讀教科書,論文沒寫的就不會,癱瘓在那裡;被我逼著去自己猜測或想像時,老怕弄錯作者的意思,神經繃緊,腦筋根本動不了。
大學畢業後(不管是念碩、博士或工作),可以參考的資料都沒有秩序地交錯成一團,而且永遠都讀不 完。用大學生的心態讀書,結果一定時間永遠不夠用。因此,每次讀論文都一定要帶著問題去讀,每次讀的時候都只是圖回答你要回答的問題。因此,一定是選擇性 地閱讀,一定要逐漸由粗而細地一層一層去瞭解。上面所規劃的讀論文的次序,
就是由粗而細,每讀完一輪,你對這問題的知識就增加一層。根據這一層知識就可以問出下一層更細緻的問題,再根據這些更細緻的問題去重讀,就可以理解到更多的內容。
因此,定是整批起讀懂到某個層次,而不是逐篇逐篇地整篇次讀懂。
這樣讀還有一個好處:第一輪讀完後,可以根據第一輪所獲得的知識判斷出哪些論文與你的議題不相關,不相關的就不需要再讀下去了。這樣才可以從廣泛的論文裡逐層準確地篩選出你真正非懂不可的部分。不要讀不會用到的東西,白費的力氣必須被極小化!其實,絕大部分論文都只需要瞭解它的主要觀念(這往往比較容易),而不需要瞭解它的詳細推導過程(這反而比較費時)。
其次,一整批一起讀還有一個好處:同一派的觀念,有的作者說得較易懂,有的說得不清楚。整批讀略過次之後,就可以規劃出個你以為比較容易懂的閱讀次序,而不要硬碰硬地在那裡撞牆壁。你可以從甲論文幫你弄懂以論文的個段落,沒人說讀懂甲論文只能靠甲論文的資訊。所以,整批閱讀很像在玩跳棋,你要去規劃出你自己閱讀時的「最省力路徑」。
大學部學生讀東西一定要循規蹈矩,你還沒修過機械視覺相關課程之前可能也只好循規蹈矩地逐行去念。 但是一旦修過機械視覺相關課程,許多論文中沒被交代的段落你也已經可以有一些屬於你的想像(雖然有可能猜錯,尤其剛開始時經常猜錯,但沒關係,下面詳 述)。這些想像往往補足論文跳躍處最快速的解決方案。其實,一個大學畢業生所學已經很多了,對許多是都可以有一個不太離譜的想像能力。但是大部分學生卻根 本不敢去想像。我讀論文遠比學生快,分析遠比學生深入,主要的是我敢想像與猜測,而且多年訓練下來想像與猜測的準確度很高。所以,許多論文我根本不是「讀懂」的,而是「猜對」了!
假如猜錯了怎麼辦?不用怕!猜完一後要根據你的猜測在論文裡找證據,用以判斷你的猜測對不對。猜對 了,就用你的猜測(其實是你的推理架構)去吸收作者的資訊與創意(這會比從頭硬生生地去遷就作者的思路輕鬆而容易);猜錯了,論文理會有一些資訊告訴你說 你錯了,而且因為猜錯所以你讀到對的答案時反而印象更深刻。

柒、論文報告的要求與技巧
報告一篇論文,我期待學生能做到以下部分(依報告次序排列):
1)投影片第一頁必須列出論文的題目、作者、論文出處與年份。
2)每一頁投影片只能講一個觀念,不可以在一張投影片裡講兩個觀念。
3)說明這篇論文所研究的問題的重點,以及這個問題可能和工業界的哪些應用相關。
4)清楚交代這篇論文的主要假設,主要公式,與主要應用方式(以及應用上可能的
解題流程)。
5) 說明這篇論文的範例(simulation examples and/or experiments),預測這個方法在不同場合時可能會有的準確度或好用的程度
6) 你個人的分析、評價與批評,包括:(6A)這篇論文最主要的創意是什麼?(6B)這些創意在應用上有什麼好處?(6C)這些創意和應用上的好處是在哪些條件下才能成立?(6D)這篇論文最主要的缺點或侷限是什麼?(6E)這些缺點或侷限在應用上有什麼壞處?(6F)這些缺點和應用上的壞處是因為哪些因素而引入的?
6G)你建議學長學弟什麼時候參考這篇論文的哪些部分(點子)?
一般來講,剛開始報告論文(碩一上學期)時只要做到能把前四項要素說清楚就好了,但是碩一結束後(暑假開始)必須要設法做到六項要素都能觸及。碩二下學期開始的時候,必須要做到六項都能說清楚。
注意:讀論文和報告論文時,最重要的是它的創意和觀念架構,而不是數學上恆等式推導過程的細節(頂多只要抓出關鍵的 equation 去弩懂以及說明清楚即可)。你報告觀念與分析創意,別人容易聽懂又覺得有趣;你講恆等式,大家不耐煩又浪費時間。

2011年7月10日 星期日

我從重量訓練上學到的東西

我在18歲剛上大學的時候,加入了一個學校學生自組的健身俱樂部。
而大學這四年,我非常熱衷於訓練,常常一個星期可以去超過四天。
我記得大二那年,我從蹲舉60公斤開始一路蹲到了160公斤,單手二頭彎舉從20磅練到60磅。雖然從專業的訓練書籍的描述還有教練的評論裡,我這樣的成績是非常玩票的,以我的體重來說,業餘舉重運動員的蹲舉極限應該要在200公斤左右才是。但不管我的舉重成績如何,這四年的親身體會告訴了我:
人透過訓練,透過嚴格有方法有紀律的訓練,可以把自己打造成之前想都沒想過的東西。
人不是狗、不是獅子,人除了靠本能靠血統靠運氣外,還可以靠訓練、靠努力。

直到現在,我仍然盡可能的維持每週健身三次的水準。可以說,我的人生從重量訓練上學到的東西,比起四年的大學本科訓練學到的對我要重要的更多。

我在健身當中學到的幾件事情:

1. 這世界上所有的事情要作到世界第一絕對需要很好的天份,但沒有藉口努力不能進前百分之一。
骨架比例、紅白肌肉比例、肌肉形狀、消化、同化合成作用、身體脂肪與細胞代謝,這些東西幾乎都是天生的,媽生什麼就是什麼,沒得挑。但要練到『很明顯的強壯』並不會被這些東西困住,只要確實的累積知識、從要求紀律的訓練中回饋出經驗,那麼時間會站在你這邊、身體會自己去調整、你會越變越強。但人多習慣為自己的失敗與停滯找藉口,而不會記得去檢討平常差勁的準備和沒紀律的訓練。

2. 這世上『簡單且確實會成功』的方法可能有,但那通常沒有意義,有時間問東問西的不如先從每週紮實的練習三次開始。
要怎麼把胸肌練大?臥推能推到100KG起跳,胸肌就自然會大了,這很簡單,但顯然不是每個人都能作到。天天去幻想成果、而抗拒去想過程,對過程一點思考都沒有,自然無從訓練準備起。而沒有訓練、沒有準備,一切又怎麼可能會有開始?


3. 只要想繼續前進,那明天的課題就一定比今天更難。
The only easy day was yesterday,想進步,就是得把重量加重、強度增強、休息時間縮短。這世上任何真正的成果通常都難以達到,且通常也都無法一旦擁有就一直在那裡,動作會生疏、肌肉會萎縮、記憶會遺忘。不練習、不作更難的挑戰,成果就會衰退或消失。


4. 失敗不需要藉口、而放棄的人找什麼藉口都是一樣的。

當事物有外界機運的成份在,失敗就是會發生的東西。它既不是正當、也沒有不正當,它就是一個你走在道上會碰到的玩意。
但放棄,那意味著在那些事物當中你所追尋的價值其實對你的自我實現缺乏意義,你不夠瞭解自己。因為一件事如果對一個人代表著實現自我價值的必經之途,那這件事就會成為無論成功還是失敗都沒有理由放棄的東西才對。

2011年5月15日 星期日

著作權與新經濟

對一般民眾來說,數位空間中的虛擬產品複製是否可以像過去以來就有的實際產品仿冒一樣這樣的禁止,一直是一個在社會規範上沒有確切定論的東西。我們可以說拷貝 CD成MP3然後任意散播是違法的,現在就是如此,但很難說這如同強姦罪還是強盜罪一樣,是『準』不道德的。

複製對現今的數位科技時代來說,太過容易了,事實上,任何數位資料的移動,就是複製!
今天我裝在某台電腦的WindowsOS上使用可以,裝到別台就不行。那今天我在一個虛擬的Windows上安裝,而這個虛擬的Windows執行在分散式的平台上,然後我是透過遠端連線從別處連線執行呢?到了未來,所謂『一台電腦』的界線會逐漸模糊掉,運算將是分散的、平台是虛擬的、資料與運算是隨需要任意載入執行的。那麼著作權要保護的『複製』指的究竟是什麼?

有時候,對於複製的保護也會損害消費者的權益。
今天在美國iTunes + iPod可以賣,Apple Store生意強強滾,什麼歌都有。然而台灣人買的SONY CD不能壓成MP3到MP3隨身聽裡播放。自己跟朋友收發多年的Email如果是Outlook ,網路上找不到有人寫程式把它轉成其他格式,因為微軟不允許...

在這個複製與傳輸、非法使用跟合理使用如此難以界定的世界裡,著作權法要保護誰?不懂科技細節的人民要如何措手足、而社會經濟利益的衝突又要如何化解呢?
 著作權的歷史沒多長,不過是幾百年的事情,而長期以來著作權只有保障製版印刷的權利而已,一直到19世紀才開始擴大解釋。所以,法律與道德標準其實並不是靜態的東西,文化推移、科技進步它們就改變了。現在認為違反『著作權』是不道德的,也許以後反而覺得『保護著作權』才是不道德。
目前社 會、科技與法律之間的關係就像高頭大馬的青少年與父母權威之間的關係一樣還處於一個叛逆陣痛期,什麼時候新的社會制度、經濟模式起來可以很好的調和著作權人的收入與使用者的衝突,才能真正的解決問題。
這是為何我認為"大部分民眾忽視著作權"這件事並不能與"我們的社會不文明"劃上等號的原因。文明的標準不是誰的利益是否被重視,而是如何在各種環境因素演進之下仍能有一個長久穩定的動態平衡架構,可以減小社會整體利益與個體本性之間的衝突,使社會得以延續下去。


我自己是一個軟體開發者,這也是一個需要著作權保障的工作,然而透過參與開放原始碼運動、使用觀察到許多新穎的線上商業模式平台,我知道著作權問題的解決之道不太可能在於如何堆砌內容保護壁壘。
『使用者付費』這個經濟模式,在這個全球網路發達隨處都有廉價運算的時代、在所有經營資訊內容的產業裡,都在不斷地退縮。知識變便宜了,『找到並複製資訊』這個行為本身的成本越降越低。內容保護只是產業在重組、思考打造出新的商業模式之前的拖延戰術,如果一個可以獲利具有壟斷性的服務或商業模式誕生出來,還沒從這種戰術中畢業的廠商將會沒頂,這是破壞性創新。

如果要構想新的經濟,我們不可能違背人性中『水往低處流』的部份,我們應該要基於事實與現象來思考,目前可以看到的是: 著作本身的價值沒有不見,但是價格消失了,著作的影響力透過現代科技可以更無遠弗屆的傳播、影響人們,而著作與著作間的競爭比起以往都更加激烈。

那麼,或許比起販賣著作本身,去思考如何增進、並透過著作本身的影響力來獲利才是正確的方向。廠商不應該再思考如何保護著作複製權, 而應該思考如何極大化著作的影響力,然後盡可能保護並執行基於著作所衍生出來的應用服務與實體商品的權利。

畢竟未來的人或許不願意花錢買歌手的CD,但總是願意花錢去歌手駐唱的餐廳吃飯、聽演唱會、買歌手穿的衣服、請歌手來拍廣告的。

未來的人或許不願意花錢買軟體,但總是願意購買基於軟體的線上自動化應用服務(資料備份與同步、版本更新、使用者行為分析)、顧問服務、客製化服務、教育訓練、保修等等的。

在新的經濟裡,如何確實掌握開發有潛力的著作來源、與其他著作來源在虛擬的世界裡做影響力上的競爭,將決定組織是否能具有長期獲利且健康營運的可能性。

可以簡單的歸納:

對著作的複製權與使用權收費,只會耗損、減緩著作的影響力擴散。長期而言會縮短著作的重要性並使著作對其他著作競爭時處於不利的地位,這是負回饋。

透過開發可以倍增著作價值的衍生實體商品與應用服務,並對『服務』來收費,那麼著作的影響力越大,未來的營運與收入就會就越多也越穩當,這是正回饋。

人類不滅亡,科技就只會越來越強,科技越強人們的力量也越大,而人類本性決定了力量如何使用。社會主流不去醞釀出新的架構與規範,只想要保護過去的利益、作教條式的禁止...夕陽總會西下的。

民眾並沒有變得比以往更加的『不道德』,只是擁有了力量而使得『舊的』商業模式不再能夠運作而已。

2011年5月14日 星期六

所以為了賺錢,我們應該...

去搶銀行?當然不是。

公司的目標嚴格來說不應該是賺錢,因為如果是的話,我們就不需要作軟體,我們應該拿我們受過得訓練、擁有的聰明才智去執行其他更有效率的行為...例如賣雞排。

你沒事一群人這麼白痴跑去寫程式搞得辛苦的要死,然後一間公司有機會賺的錢還不如一個人拉保險、賣車、賣飲料水,甚至賣雞排的業績,如果錢是唯一的目標與價值衡量標準,那這群人豈不是很笨?

人活著不能沒有氧氣,但人可不是為了呼吸而活。

問題不在於錢,不論是對個人還是對組織來說,真正重要的是在於活在社會之中選擇貢獻社會並獲得合理回報的方式。
其他人或有心或無心的跑去拉保險、賣車、賣飲料水、賣雞排 ,而我們選擇了作軟體開發。

一間公司賺不賺錢絕對很重要,因為這是唯一可以量化、用來衡量一間公司、一個事業是否應該繼續存在的指標。

 它是必要條件,但不是唯一的條件,而與其他條件比起來,它還常常不是最難達成的。

訊息費用為零是經濟學的基本假設?


諾貝爾經濟學獎得主出籠


看到這則新聞,我的想法是:
如果訊息費用不存在,那還會需要有市場這種東西嗎?任何的買家 憑空知道最便宜、最好的賣家,任何的賣家憑空知道出價最高的買家,那我們幹麼還需要所謂的市場?

最Match的買賣雙方直接憑某種心電感應走到對方家門口,敲敲門,一手交錢一手交貨不就得了嗎?

觀察現實世界,一間大公司有計畫的散佈『希望讓買家知道的訊息』,這樣的行為就是廣告與行銷,而廣告常常佔了驚人的成本比 例,Mobile01提供了一個平台降低需求與『可信任』的相關訊息之間的距離,Facebook 透過推薦制度把『人對自己朋友的信任』與『朋友對商品的正面評價』這樣的訊息連繫起來,使得朋友的品味對你的信用,可以轉換成對商 品資訊的信用,其他不論是市集、拍賣市場、基金買賣代理人...這一切都是信任的流動,而這些平台的存在都是為了要降低『散播或 取得可靠訊息的費用』。 可以說市場就是為了讓訊息費用『是經濟的』而存在的。

為什麼經濟學的研究對這麼顯眼的東西的假設會是『沒有』呢?應該又是記者亂爆吧?

我沒看過古典市場理論(只看過國富論還有一點點的個經而已),如果古典市場理論會去假設這種東西...那好像有點草率(我其實想說,還蠻笨的)。

2011年3月10日 星期四

你永遠也不知道過去唸過得東西什麼時候會派上用場

沒想到『核糖體會根據結合的mRNA作胺基酸合成』的概念拿來當作寫程式的隱喻竟然還蠻好用的?至少正好解決我現在遇到的問題。

真是誰知道12年前唸的東西現在會派上用場啊。


很久以前就看過這傢伙的演講:
http://video.google.com/videoplay?docid=221741890549067087#

今天晚上寫程式,不小心的就發生了。

2011年3月9日 星期三

會不會擔心有一天電腦開始能寫程式...

然後搶走我們這票人的飯碗?
我得說我不會,完全不會,因為,如果有那麼一天...

那人們任何嘗試對問題需求的描述過程本身就是programming。


人的問題始終是人的問題,比起因為不瞭解電腦所造成的問題,更多時候真正難以解決的是『探究並明確描述該需求的能力』與『打算追逐該需求的人的溝通能力』之間巨大的落差所造成的。
 在人可以理性的瞭解自己的愚蠢與現實之間的落差之前,會寫程式的電腦只會繼續吐出沒有用的rubbish而已。
 
比較十年前的電腦與現在的電腦之間的差距,還有十萬年前我們的祖先與現在的我們大腦結構之間的差距。我不會對我的程式開發能力會不會被電腦取代感到恐懼,而只會對那些電腦還要繼續把多少度的電變成無用的廢熱感到悲哀。

2011年2月7日 星期一

剛剛在看Macross Frontier 虛空歌姬

看到Sheryl Norm 代言的防曬霜CM 時笑了出來。

『Pure Shield  SPF 10000+ 』

可防護波長竟然是 1 pm ~ 400 nm,這可是從X射線 一路上去到Gamma射線、宇宙射線都能防禦的玩意啊。我看故事中從太空衣到宇宙殖民地的防護罩應該都是防曬霜塗個一層就很夠用了...

這美白確實是爹卡路洽


參考資料:
http://en.wikipedia.org/wiki/Orders_of_magnitude_(length)