如何招聘外包程序員
我最近寫了一篇文章介紹如何招聘全職員工。而本文主要關(guān)注如何招聘外包開發(fā)人員。這兩者確實有很多相似的方式方法,但區(qū)別在于外包人員參與度相對比較低而且不會一直呆在團隊里。
首先說一點背景故事。我曾經(jīng)用我的方法招聘近10個在海外遠程工作的外包人員。盡管不是萬無一失,但我認為這是我使用過的方法中最省時并且投資回報 率(ROI)***的。過去幾年里我在自己的業(yè)務(wù)中常常使用外包人員,這一個招聘流程也可以說是從我的經(jīng)驗里產(chǎn)生的副產(chǎn)品。有時候這套方法效果很好,有時候 很糟甚至是一塌糊涂。經(jīng)過了很多次的優(yōu)化,我下面闡述的方法能夠穩(wěn)定的篩選出***秀的外包開發(fā)。希望這套方法也能為你帶來同樣的效果。
流程
一共是四個步驟。如果去掉發(fā)布職位這一步實際上只有三步。整個流程的目標(biāo)是節(jié)省時間和開銷,同時盡***可能去發(fā)現(xiàn)***秀的候選人。需要注意的是這個 流程可能需要花費$50到$250,取決于你要招聘的人。你需要發(fā)布職位,審核候選人,選取***的X個(通常最少選10個)。在此基礎(chǔ)上你聘用他們完成一 個簡單的編程任務(wù)。等他們完成后(前提是他們能完成)你就可以審核代碼并最終決定誰的實現(xiàn)更好,然后你就可以決定招聘的人選。下面就是所有步驟:
招聘優(yōu)秀外包開發(fā)人員四部法:
- 招聘網(wǎng)站上發(fā)布職位需求
- 預(yù)評估:雇用候選人(最少10個)一小時
- 編程挑戰(zhàn)
- 留下***候選人
***步: 招聘網(wǎng)站上發(fā)布職位需求
目標(biāo): 發(fā)布有吸引力的職位
登陸招聘網(wǎng)站發(fā)布職位。確保標(biāo)題能準(zhǔn)確描述你需要做的事情。不要寫類似“JavaScript高手”或“Rails大牛”之類的。換成“高級 Rails開發(fā)”或“Wordpress開發(fā)”可能更好些。職位描述應(yīng)該具體描述你的需求。不要寥寥幾筆簡單了事,例如:“代碼優(yōu)雅,按時交付”。你需要 告訴應(yīng)聘者你需要他們做什么。如果是升級現(xiàn)有代碼,那你需要告訴對方可能會面對哪些東西。如果你是做業(yè)務(wù)的不懂代碼,那你需要描述產(chǎn)品的功能以及你為什么 需要做這個。不要在這一塊花太多時間。差不多10到15分鐘夠了。
招聘網(wǎng)站都有一些模板式的選項,針對這些選項我喜歡采用下面的設(shè)置:
- 技能需求:
顧名可以思義,如果你是Rails網(wǎng)站,可以寫”Ruby on Rails”,有可能還要寫”HTML”和”JavaScript”等。
如果是其他技術(shù),就填上具體的技術(shù)
- 支付方式:
如果是沒有具體結(jié)束時間的項目就采用按小時付費
如果工作范圍能確定就按固定金額支付,比如安裝WordPress并配置像X一樣的主題
- 預(yù)計工作量
這個每個人的評估不一樣,通常我勾選”兼職”
- 期望的經(jīng)驗值
總是選中級或高級。選擇新手會讓你最終花兩倍的價格來換掉
- 公開程度
所有人可見(除非我要指定招某一個人)
- 其他偏好:
- 兼職類型:無
- 最少評價***:無
這里選無偏好的原因是大量的高手從來沒有在這網(wǎng)站上完成過項目。還有的人只做了一個項目,結(jié)果還得了一個差評,但原因不是開發(fā)的錯,而是產(chǎn)品管理沒做好。所以我們不要濾掉這一批人。
- 已工作時間:無
再次說明一下,很多高手是剛加入網(wǎng)站的
- 地點:
這一項要注意。我個人是不關(guān)心對方在哪里。但這得取決于你。我一邊選擇無偏好。但如果你想各個地方的人都試一下那你就選對應(yīng)的地點
- 英語級別: 5或更高
這一項是應(yīng)該有要求的。好多人自稱英語是4/5但你跟他們發(fā)郵件,IM或Skype/Google Hangout溝通時你會發(fā)現(xiàn)實際上只有2或3。能夠有效溝通是成功的關(guān)鍵,缺少這一項猶如逆水行舟。
- 其他用于篩選的問題
我個人會留空,因為程序員就是技術(shù)型的,編程這塊要么知道要么不知道。
接下來發(fā)布職位。
等上大約48小時進入第二步。這期間應(yīng)該有人來申請職位。
第二步 初步審核 – 雇傭***人選(最少10個)
目標(biāo): 選取可能適合職位的***候選人進入下一步
可能你會收到25到5份職位申請,他們可能來自世界各地。你要做的***步就是過濾名單,下面就是行動方案:
- 砍掉英語(或者其他你選擇的語言)很爛不能閱讀的。這是很明顯的排除信號,如果現(xiàn)在都不能交流,你怎么能期待以后能交流。
- 去掉沒能力完成工作的。比如,你正在招聘Rails開發(fā),但是應(yīng)聘者沒有在技能里列出Rails。你需要招聘能力***的。
- 去掉不符號職位描述的。 比如你需要招人開發(fā)一款游戲,那么web開發(fā)人員可能就不是很適合。
- 去掉超過預(yù)算的。一般來說
- 要價高一點的是比要價低的活兒好一點,但沒這必要。不然就是在浪費雙方的時間。
經(jīng)過48到72小時后,你的候選名單上應(yīng)該包含最少10個候選人。
現(xiàn)在就需要你掏點銀子了。如果申請人的平均薪水是5美元到25美元每小時,那你可能需要花50到250美元才能找到合適的人選。你需要把這10個人 全部聘用,我是認真滴。但是你聘用他們的時候你得通知他們你只是需要他們完成一個簡單的任務(wù),時間不超過1小時。然后你把編程任務(wù)(第三步)的鏈接發(fā)給他 們。這一小時是要支付報酬的。這是給候選人信心表明不是要讓他們白干。如果你想找外包/自由職業(yè)者/合同工白給你干活,那你立馬失去所有的優(yōu)秀開發(fā)人員。如果你支付他們整個一小時的報酬,他們會更認真。
這時候會發(fā)生一件有意思的事。平均有50%的候選人沒能完成這一步。我猜想其原因就是他們根本不知道如何完成。這也正是第三步的目標(biāo):把能做事的人篩選出來。
第三步: 編程任務(wù)
目標(biāo): 確認候選人有能力通過代碼解決問題。對候選人的代碼進行審查。
這一步和“如何招聘程序員”的第三步很像,但也有一些改動。雖然很相似但也存在關(guān)鍵的流程差異,所以讀了之前一篇文章的同學(xué)還請繼續(xù)耐心閱讀。
過程中候選人會用我指定的語言解決實際問題。對于高手來說編程任務(wù)應(yīng)該不超過1小時就能完成。我也只支付了1小時時間,他們可以愛用多久就用多久的時間,反正我只付一小時。目標(biāo)很簡單:判斷候選人行還是不行。
編程測試是很好的調(diào)節(jié)閥。不是說問題有多難(恰恰相反,問題很簡單),而是因為你可以了解對方的代碼質(zhì)量,同時也能找到以下問題的答案:
- 候選人的溝通能力
- 候選人是否知道服從指示?
- 候選人知道如何使用git和GitHub嗎(后面會細說)
- 候選人知道***代碼實踐嗎?
- 候選人知道如何寫代碼嗎?
- 候選人能通過測試嗎?
我一般告訴候選人截止時間是24小時。題目放在一個在線的GitHub/BitBucket的一個Git庫里面,所有候選人共享一個代碼庫。這意味 著候選人可以看到別人答案。但這沒關(guān)系,如果有人作弊也很容易發(fā)現(xiàn)。如果三個人的repo看起來一樣,那很可能***提交的人才是真的寫出代碼的人。沒有人 在一次測試中寫出一模一樣的代碼。
repo里包含題目所需的所有信息。候選人只需要按照指示操作,并在完成后發(fā)我一封郵件就行了。下面是一些我創(chuàng)建的編程題。
你可以fork這些例子并保存。如果你訪問過這些網(wǎng)站中的任何一個你就會發(fā)現(xiàn)這里面的每一個例子都要求候選人經(jīng)歷一系列步驟。如果候選人不清楚干什么,他們可以跟我確認或者直接在Goolge上找答案。候選人完成后需要提交一個pull 請求給我,然后我可以進行評審。
這種方式可以說是神來之筆,因為它能全方面了解候選人。比如候選人是否能按時寫出代碼完成工作。同時也能讓我審查代碼來判斷到底是好還是壞?;谖?的經(jīng)驗,平均5%的候選人不能完成任務(wù),因為他們不知道如何解決問題。這也是我讓他們在家面試的原因。從***步到第三步都可以遠程進行。這為公司節(jié)約了時 間。在這完成了任務(wù)的40%的人中,只有20%的人做對了,并且到這個時候基本上只剩下一兩個候選人看起來不錯。如果你有更多的選擇當(dāng)然更好。
有的網(wǎng)站要求候選人安裝監(jiān)控軟件,它會定期進行截屏讓你檢查。所有者讓我不僅可以看到他們的進度,也能讓我部分評估他們解決問題的過程。
對于這種方式有一個很正常的顧慮:萬一他們作弊怎么辦?如果他們叫朋友或者其他人當(dāng)槍手怎么辦?是有這種可能,但我認為現(xiàn)實中也存在這個問題。有時 候程序員不知道如何解決問題就會尋求幫助。他們通過QQ向朋友求助,或者是在網(wǎng)上搜或者是找一些滿足要求的開源項目來修改。這就是程序員的作風(fēng),管你是在 家還是在公司誰關(guān)心。如果對方真是在欺騙,我想很快我也能發(fā)現(xiàn)。就算是對方被招進來了,團隊也能很快發(fā)現(xiàn)問題。這時候你就需要需要決定是否要留下這個人 了。
如果候選人沒能完成測試,這就直接是紅牌了。當(dāng)然出的問題也應(yīng)該足夠簡單讓有經(jīng)驗的程序員能在一個小時內(nèi)完成。如果不能完成,要么是題目太難了要么 是候選人不合適。如果你用的是我上面提到的鏈接(或者類似的),那就不存在這個問題。對于那些沒通過測試的,我建議放棄后面的面試直接換下一個人。
對于那些正確解決問題的人,我一般會審查他們的代碼,如果沒問題我回把他們加入潛在雇員清單。
如果你不會寫代碼又想?yún)⒄毡玖鞒棠俏覐娏医ㄗh你找一個會編程的朋友,或者是同事來幫你。支付他們2個小時的報酬讓他們給你的候選人進行評價。向他們 解釋你要進行的流程并告訴他們擔(dān)任的角色:代碼評審。如果你采用這種方式,你需要他們按照“行/還行/不行”這三個等級對代碼進行審查。“不行”的意思就 是不行、不能聘用。“還行”就是說可以,不是***的但可以用。“行”表示可以,聘用這個人,活干得不錯。我把那些“還行”的人也包含進來了是因為有時候代 碼看著可以但不***,這也不是大問題。有時候你希望產(chǎn)品能盡快出來并不要求***,只要能用就行。這些”還行“的人就適合干這種事,因為有時候你在測試市場 反應(yīng)或其他方面,你希望越快完成越好。然而能招到”很行“的人總是好事。
如果沒人能完成編程任務(wù),那就再發(fā)布職位。有時候要找到合適的人得發(fā)布好幾次職位信息。這是要花點錢,但花在前面比后面一直花錢要好。
第四步: 留下***秀的
目標(biāo): 招聘合適的人選
通過上面的流程你已經(jīng)找到了合適的人選,現(xiàn)在就要準(zhǔn)備聘用了。一般到這一步可能剩下2到3人。
如果只招聘一個人,那就留下***的,并告訴其他人你已經(jīng)招了其他人,但會和他們保持聯(lián)系,團隊擴充的時候需要他們。這正是做人留一線,日后好見面。說不定以后還需要他們。如果你要招兩個人,那就留排名前兩個。道理你懂的。如果人不夠,那就再發(fā)布職位。
總結(jié)
招聘外包人員也是蠻有挑戰(zhàn)的。但如果你采用上面的流程,你會始終鎖定優(yōu)秀的外包開發(fā)人員并過濾掉濫竽充數(shù)的人。我希望這些流程能幫到你。
我很想把創(chuàng)造這些流程的功勞歸功于自己,但做人要厚道。編程挑戰(zhàn)的實踐受啟發(fā)于一家名叫Integrum的公司。
原文鏈接:http://www.donnfelker.com/how-to-hire-outsourced-developers/
譯文鏈接:http://blog.jobbole.com/60114/