找尋偉大開發者

From The Joel on Software Translation Project

Jump to: navigation, search

原文:http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html

作者:周思博 (Joel Spolsky)

譯:Klhsieh, Chchwy, Yanting

Wednesday, September 06, 2006


Contents

那些偉大的開發者都在那兒?

當你第一次嘗試想找個人來填補空缺的職位,也許你會像大多數人一樣,放些廣告在在徵才網站上,或瀏覽那些大型線上討論版,最後拿到一拖拉庫的求職履歷。

瀏覽過這些履歷,你想『嗯,這傢伙也許能幹活』或是『不行!』或是『不知能不能說服這個人搬到水牛城來。』但有件事不可能發生,我保證,絕不會發生的是你說出『哇! 這個人真是太棒了,我們一定要他!』事實上你可以看過幾千份求職信,假設你知道怎麼讀求職信,這可不容易,我會在週五時談談這件事。但是你可以掃過數以千計的求職信後坦率地說從來沒見過任何一個偉大的開發者。一個也沒有。

Ggth02.jpg


這兒告訴你為何如此。

偉大的開發者,事實上,每個領域最優秀的人才,根本從來不曾出現在人力市場上。

平均來說,偉大的開發者在他們整個職業生涯裡,總共也許只會應徵四份工作。

優秀的大學畢業生會被與業界關係良好的教授拉進暑期實習,他們很早就拿到合約,從不用煩惱找工作的事兒。如果他們離開原本那家公司,通常去跟朋友合作創業,或跟著頂頭上司跳槽到另一家公司去,或者他們真的決定想要,例如,替Eclipse工作,只因為Eclipse很酷,所以他們去BEA或IBM找Eclipse相關的工作,因為他們非常優秀,當然就拿到工作了。

如果你夠好運,真的真的很好運的話,他們會在公開的人力市場上露一次臉,他們的另一半決定要接受地點位於安克拉治(阿拉斯加的一個港口)的醫學實習,他們才會真的送出求職信到少數他們認為在安克拉治可以工作的地方。

但大部分時候來說,這些偉大的開發者(這幾乎成了贅詞),嗯,很偉大(好吧,這真是個贅詞),而且,未來的雇主通常很快的認識到這些人的偉大之處,意思是說,基本上他們想要就可以找到工作,所以他們實在不需要投一大堆履歷或申請一大堆工作。

這聽起來像你想要雇用的那種人嗎? 鐵定是的。

Ggth01.jpg


照這個規則 -- 傑出開發者絕不會在市場上 -- 的推論結果就是那些糟糕的人 -- 嚴格來說是不合格的開發者 -- 常常在市場上有一大堆。他們一天到晚被炒魷魚,因為他們沒法做好工作。他們的公司失敗 -- 有時候是因為雇用他們的公司通常也雇用一大堆不合格的程式設計師,所以一切都意味著失敗 -- 但有時候是因為他們實在是太糟了所以毀了那間公司。是的,有這樣的事發生.

這些糟透了的傢伙很難找到工作,感謝上帝,但是他們一直在找工作,而且當他們找工作時,他們會去 Monster.com 一次勾選300個或1000個職缺想要贏得樂透。

數量上來說,偉大的開發者非常少,且他們不幾乎曾出現在人力市場,然而無能的人,即使他們也很少,終其職涯會申請數以千計的工作。所以,好傢伙,現在回到你那從Craigslist來的堆成山般的履歷去吧。你還會驚訝大部分履歷都是你不想僱用的人嗎?

我預期精明的讀者,會指出我漏掉了最大的一群人,那些紥實、能幹的人。在人力市場他們上比偉大的開發者多上許多,但還沒有濫竽充數者多,而且最終他們總會出現在你那堆1000封履歷的少數幾封裡。但是大部分,幾乎每一位Palo Alto的人力資源主管的桌上的1000封履歷裡,有970封都是來自同一群濫竽充數,每個Palo Alto工作都想應徵的無能者,而且也許終其一生都如此。裡頭只有30份履歷值得考慮,當然也許,很低的機會,其中一個是偉大的開發者。

好吧,也許不只一個。但如同尋找海底裡的一根針,我們知道,存在可能性但是不容易。

我能用任何方法雇用他們嗎?

當然!

嗯嗯...也許!

或者...,視情況而定!

與其把招聘人才想為『收履歷,再過濾履歷』的過程,你應該把它視為『追蹤贏家,並讓他們跟你對話』的過程。

我有三個實現的基本方法:

  1. 走到山上去
  2. 提供實習機會
  3. 建立你的社群*

(建立你的社群後面加了一個小星號, 表示『困難』, 就像 George Dantzig(link) 解決了著名的數學難題,只因為他上課遲到而沒有聽到那個問題被大家認為無解)

你也可以提出你的想法, 我只談談三個我試過有用的方法。

到山上去, Jeeves!

思考一下你想雇用的人會待在哪兒? 他們會參加哪些學術會議? 他們生活在那裡? 屬於那一個組織? 他們都看什麼網站? 與其在 Monster.com 上大撒漁網,不如上約耳談軟體的(link)求職版,把你的搜尋限縮到閱讀這個網站的聰明人身上。去真正有趣的學術科技會議。 偉大的Mac開發者會去蘋果電腦的WWDC(全球研發者大會),偉大的Windows程式設計師會去微軟的PDC(專業開發者大會)。還有其他一卡車的開放源碼的學術會議。

找找看什麼是當今最嗆辣的新科技。去年是Python;今年是Ruby。去他們的學術會議,你會發現那些對新事物充滿好奇的先驅者,而他們永不停止進步。

到走廊上溜達溜達,跟每個你遇見的人談話,走進技術議程並請講員喝杯啤酒,而當你發現某個聰明人時, 砰! 你進入諂媚模式. 『唔, 這真是有趣!』你說。『哇,我不敢相信你這麼聰明,而且又瀟灑,你剛才說你在那裡工作來著? 真的嗎? 那裡啊? 嗯.....你不認為你可以做得更好嗎? 我想我的公司正好需要...』

依照規則推論就是不要去一般的大型求職版登廣告。某年夏天,我不慎用 MonsterTRAK 登了我們的暑期實習廣告,它提供一個選項,只要多付一些錢就可以讓美國每一間學校的學生都看得到這個工作機會。結果是毫不誇張的數百封求職信,沒有一封能通過我們的第一輪篩選。我們停止花費一噸的錢去換來一噸求職信,而且當中幾乎不可能找到我們想僱用的人。幾天之後,我對從MonsterTRAK來的求職履歷唯一的想法是 -- 這些求職者不是我想要的。 同樣地,Craigslist網站剛起步時,拜訪者還是真的網際網路工業的先驅者時,我們曾在Craigslist登廣告找到很棒的人,但是現在,每一個中等電腦程度的人都會使用它,導致太多的求職信與太低的海底撈針機率。

實習機會

有個獲取潛在的傑出人才的好方法 -- 在他們出現在人力市場上以前就先得到他們:從大學裡。

Ggth04.jpg

一些人力資源主管不愛雇用實習生。他們認為實習生尚未成熟且技能不足,在某種程度上這個想法並沒有錯。實習生不比資深員工來的有經驗。(真的嗎?)你需要在他們身上多投資一些,而且要花點時間讓他們上軌道。好消息是,在我們圈子裡,真正偉大的程式設計師通常從10歲開始寫程式。其他同年齡的小鬼們還在「踢足球」的同時(足球是許多不會寫程式的小鬼玩的遊戲,玩法涉及用腳踢一個叫做「足球」的球狀物體 -- 我知道這聽起來很怪)他們卻在老爸的工作室內試著編譯Linux Kernel呢。與其在操場上追逐女孩,他們在 Usenet上和網友論戰著程式語言若沒有 Haskell 風格的型別推斷是全然的墮落;與其在車庫裡練團,他們修改了韌體讓偷用未加密的無線網路頻寬的鄰居,看到的圖片會是上下顛倒的。姆哈哈哈!

所以,不像法律或醫學領域,軟體開發領域裡的學生們,在大二、大三時就已經是超「棒」的程式師了。


幾乎每個人找工作:特別是他們的第一份工作時,多數學生會認為等到大學最後一年再來擔心這檔事就好。而且大部分的學生實際上並不機靈,往往只找校園徵才活動裡的工作機會。名校學生在校園徵才就能找到足夠的理想工作機會,所以他們幾乎不會費力去向外接觸那些沒來校園徵才的雇主。

你依然可以參加這種瘋狂的求才活動(這仍是好活動,別誤會我的意思),或者,逆勢而行,在畢業的前一兩年先抓住這些偉大的開發者。

在Fog Creek (Joel的軟體公司),我已經多次成功使用此法。從每年九月開始,我用上我所有的資源去追蹤這個國家最好的電腦科學學生。我寫信給數百間學校的資訊系所。我握有一張清單列著所有兩年後要畢業的主修電腦科學學生(通常要動用點學校內關係,像是教授或者學生,幫你得到消息)。接著我逐一寫信給每位找到的電腦科學學生。不是電子郵件,而是用Fog Creek公司信紙寄給他們,再用墨水親筆簽名。顯然很少人會這麼做,所以吸引了許多人的注意。我告訴他們我們有實習機會並且私下邀請他們來申請。我也發電子郵件給資訊系的教授和校友,因為他們的通訊錄裡面通常有一些電腦科學背景的聯絡清單可以幫我遞送消息。


Ggth05.jpg

最後,我們收到可觀的實習申請,都是青年才俊。近幾年,每個實習我們都收到近兩百封申請。我們通常把成堆的申請淘汰到剩下10位(每個實習缺),接著對餘下的申請者電話面試。最後,我們可能會飛到紐約對最後選出的兩三個人進行面談。

當動用到親自面談時,我們有很高的機會雇用這個人,該是啟動正式招聘的時候了。我們在機場碰面,並由穿著制服的轎車司機連同行李將他們送往市中心鬧區(可能是他們看過最豪華的)酒店。隨時有時尚名媛進出、別緻的衛浴裝飾可能是博物館的典藏展品,他們可能要花點時間在五星級酒店裡學著刷牙。我們在客房內留給他們一個包裹:一件T恤、Fog Creek員工寫的紐約必遊景點地圖、2005年實習生紀錄片DVD。房間內的DVD播放機放著前屆實習生的有趣畫面。

經過一天的面試,我們邀請這些學生留在紐約幾天免費遊覽(如果他們想看看這城市)然後再由豪華轎車接送機場飛回家鄉。

雖然只有三分之一的面試者通過這些階段到最後面對面的面試,但讓這些面試者有好的體驗是很重要的。

即使面試失敗回到校園,他們仍然會認為我們是個好公司,並告訴他們的朋友在大蘋果待的飯店有多豪華,增加他們同儕明年也申請實習的意願(儘管他們可能只想來紐約享受這趟豪華旅行)

在夏季實習期間,學生一般都會想像:「嗯,這是個不錯的暑期差事,不錯的經驗,也許之後還能轉成正職呢!」其實我們也在這期間決定要不要提升他們成正職,它們在這期間決定要不要為我們工作。

所以我們給他真正的工作:困難的工作。實習生從第一天就開始為我們生產程式碼。有時候他們會有機會寫寫最酷的新東西,這讓老鳥們有些忌妒,但,這就是人生啊。有一個夏天,我們有個四個實習生組成的團隊,花了幾個月完成了一個從頭到腳全新的專案。雖然他們不是推出新的產品,但他們做出了真正的貨運程式:重要功能都是由他們完成的(當然有經驗豐富的頭兒指導著)。

Ggth06.jpg

然後我們要確保他們玩得愉快。我們舉辦派對和參訪。我們在不錯的地點蓋了宿舍讓他們免費住宿,他們可以從其他公司和學校交朋友。我們也在每周舉辦額外的活動或實地考察:百老匯音樂劇(今年他們超哈Q大街)、電影首映會、博物館之旅、曼哈頓渡輪、洋基隊球賽,以及信不信由你,今年最流連往返的景點是洛克之巔(譯注:Top of the Rock,紐約奇異大樓頂的瞭望台),它只是在曼哈頓中央一棟大樓的屋頂,你一定想像不到這會是一個令人肅然起敬的經驗。一些Fog Creek的員工也可以參加這些活動。

夏天結束時,總會有幾個實習生讓我們相信:他們就是我們夢寐以求的真正偉大的開發者。然而不是所有的人都是偉大的開發者 -- 有些人僅是不錯的程式師,其他人可能是仍是其他領域偉大的工程師,只是不在Fog Creek。例如,我們是一間需要自主的公司,中層管理者不多,員工們必須自動自發。過去的經驗裡,總有一些暑期實習生在有人指導之下表現得非常優秀。但在Fog Creek,他們拿不到足夠的指示以至於手足無措。


總之,對那些我們真正想僱用的人,別等了。我們會早早發出附帶條款的聘書,只要他們一畢業就能走馬上任。這是夢幻級的聘書,我們希望他們回到學校和同儕比較,然後發現這個工作薪水比其他工作都來的高。

這是不是表示我們花了冤枉錢呢?其實不盡然。你看,平均來說付給新人第一年的薪資都要冒一定的風險,因為不知道這人工作表現怎樣。但我們已經試用過這些學生,毫無疑問他們是偉大的開發者。我們了解他們的能耐。所以當我們雇用他時,我們比其他僅僅進行面試的雇主掌握更多情報。也就是說,他們值我們付更多錢。我們比其他雇主更了解他們,所以我們願意付更優渥的薪水。

如果我們搞定了(通常都是),實習生就放棄其他機會,完全接受我們的聘用。有時還要多說服他一下。有時候他們不想太快決定,但Fog Creek發出的優渥聘書,保證他們第一次早上八點起床,打算穿上西裝去 Oracle 面試時,鬧鐘響起時,他們告訴自己:「為什麼我一定要早上八點起床去 Oracle 盛裝面試呢? 我在Fog Creek已經有個好工作等著我了。」且我的希望他們想著想著就打消去面試的念頭。


在我繼續下一個議題以前,我需要澄清一些資訊科學和軟體開發實習的觀點。這這個時代,這個國家,實習生是給薪且薪水是有競爭力的。雖然在其他領域像是出版業或唱片業,無薪實習很常見,我們仍然支付實習生一週750美元的薪水,外加免費住宿、免費午餐、免費地鐵票,更不用提搬遷費用及其他福利。薪水也許比平均低一點,但加上福利又比職場平均優渥一些。我想我該稍微提一下,因為每次我在網站上談到實習時總有人覺得我把實習生當廉價勞工。自以為是的年輕人啊!(快給我一杯冰柳橙汁)

Ggth07.jpg

實習計畫是一條迎接偉大員工的大道,一條很長很寬的大路,許多人在路上迷失。我們計算出,基本上我們要為每個正職員工僱用兩名實習生(我們通常超過)。如果你讓實習生回學校一年,那麼到正式僱用以前仍然會有兩年的空窗期。也就是說,我們每年夏天都聘請了與實際上日後職缺相符的實習生數量。前三個夏天,我們試著限制實習生必須只剩一年畢業,但這個夏天我們終於裡攪到我們錯失了許多低年級的優秀學生,所以我們開放資格給所有年級的大學生。信不信由你,我甚至試著將手伸向高中生:設立電腦教室,只要和下一代的偉大程式師建立連結,儘管也許需要六年的路要走。這是我的遠程計畫。

建立社群 (*很難實現)

這裡的想法是創立一個大社群,有一群圍繞著你的公司、志同道合的聰明開發者的社群,因此,每當你的公司空出職缺時,外頭就自動有一群可以接觸的觀眾。

坦白說,這就是我們Fog Creek如何找到這麼多優秀人才的方法:從我的個人網站,你現在正在讀的這個。網站上的重點文章擁有數以百萬讀者,大多數是有兩把刷子的軟體開發者。有這麼一個巨大、自我篩選的觀眾群,無論何時在網站上提到我要找人,我通常都能拿到一大疊很棒的履歷。

這個項目的星號意指「很難實現」,因為我覺得我給你的忠告就像『如何贏得選美冠軍 a)變漂亮 b)去參加選美 』。因為我真的不知道為什麼網站會這麼夯,或是讓網站變夯的方法,或為什麼讀者都是最優秀的軟體開發者。

我真希望我能多幫助你一些。Derek Powazek 寫了一本關於「社群設計」的好書。許多公司嘗試各種blog策略,而很不幸地無法建立任何觀眾群,所以我只能說,對我有效的辦法,對你也許有效、也許沒效,我也不知道你能做什麼。我在網站上開了一個求職版(jobs.joelonsoftware.com)其中,350美元,你就能列出一個工作,約耳談軟體(Joel on Software)的讀者會看到。

員工推薦: 有點難以捉摸

有個尋找偉大的軟體開發者的標準建議,是去問您現有的開發人員。依據的是,天阿,他們是聰明的開發者,他們理當認識其他聰明的開發者。

也許吧,但是他們可能也有一位非常要好的朋友,但不是好開發者。幾百萬個地雷埋藏其中,所以坦白說我把員工推薦視為最不牢靠的新雇員來源之一。

另一個巨大風險,當然,就是「非競業協定」(non-compete agreements)。如果你覺得這沒什麼干係,就想想 Crossgain 的例子吧,他們解僱了四分之一的員工,全都是前微軟的員工,因為微軟威嚇要對他們提起法律訴訟。任何一個有正常心智的程式師都不該簽下非競業協定,大多數簽下的人是因為他們不曾想到真的會強制執行,或者沒有閱讀合約的習慣,或者他們已經接受了雇用,把整個家庭都搬過來,第一天上工才發現試著提出協商已經有一點晚了。所以他們簽了,但是這是對雇員最骯髒的作法之一,他們通常真的強制執行,而且被強迫執行。

The point being, non-compete agreements may mean that if you rely too heavily on referrals and end up hiring a block of people from the same ex-employer, which is where your employees know the other star programmers from in the first place, you’re taking a pretty major risk. 這裡是說,非競業協定可能代表你太過於依賴於員工推薦,而最終雇用了一大堆從同一間前公司過來的人。

Another problem is that if you have any kind of selective hiring process at all, when you ask your employees to find referrals, they’re not going to even consider telling you about their real friends. Nobody wants to persuade their friends to apply for a job at their company only to get rejected. It sort of puts a damper on the friendship. 另一個問題是,如果你有任何招募甄選的程序,那當你要求你的員工推薦人選時,他們不會真的推薦他們的好朋友。沒有人會說服他的好朋友來申請一個你公司的職位然後最終被拒。這某方面會造成友情上的污點。

Since they won’t tell you about their friends and you may not be able to hire the people they used to work with, what’s left is not very many potential referrals.

But the real problem with employee referrals is what happens when recruiting managers with a rudimentary understanding of economics decide to offer cash bonuses for these referrals. This is quite common. The rationale goes like this: it can cost $30,000 to $50,000 to hire someone good through a headhunter or outside recruiter. If we can pay our employees, say, a $5000 bonus for every hire they bring in, or maybe an expensive sports car for every 10 referrals, or whatever, think how much money that will save? And $5000 sounds like a fortune to a salaried employee, because it is. So this sounds like a win-win all-around kind of situation.

The trouble is that suddenly you can see the little gears turning, and employees start dragging in everyone they can think of for interviews, and they have a real strong incentive to get these people hired, so they coach them for the interview, and Quiet Conversations are held in conference rooms with the interviewers, and suddenly your entire workforce is trying to get you to hire someone’s useless college roommate.

And it doesn’t work. ArsDigita got a lot of publicity for buying a Ferrari and putting it in the parking lot and announcing that anyone who got 10 referrals could have it. Nobody ever got close, the quality of new hires went down, and the company fell apart, but probably not because of the Ferrari, which, it turns out, was rented, and not much more than a publicity stunt.

When a Fog Creek employee suggests someone that might be perfect to work for us, we’ll be willing to skip the initial phone screen, but that’s it. We still want them going through all the same interviews and we maintain the same high standards.

開發人員完全指南

開發人員在工作中追尋什麼? 是什麼因素讓一個工作機會看起來比其他工作更吸引人? 你如何成為員工的選擇? 往下讀吧!

Personal tools