要招到頂尖人才?那就開源你的代碼吧

“你是否瞭解Facebook的開源軟件過程?”

Facebook開源項目前負責人James Pearce在瞭解工程師爲什麼要加入公司時,通常會問他們這個問題。Pearce在O’Reilly開源大會的演講中透露,有三分之二的Facebook工程師在加入公司之前就已經知道Facebook的開源項目過程,有一半的工程師表示:“這對他們決定加入Facebook起到了積極的作用”。

Facebook在這個方面並不孤獨。無論公司規模如何,開源代碼對他們來說都是招聘到頂級工程師的最佳方式之一。我們分析了AngelList上有史以來應聘最多的30家美國科技公司,發現其中一半以上有提供開源項目:

image

但將開源項目作爲招聘手段其實是一門藝術——你需要做的不僅僅是向GitHub發佈代碼。要想從開源代碼中獲得招聘方面的好處,你需要以營銷人員的心態來對待每個項目。

1.編寫任何工程師都讀得懂的代碼

開源軟件的目的是讓外部工程師能夠看到它,並可能一起參與貢獻。爲此,代碼必須讓外部工程師能夠看得懂。這意味着:

  • 重構你的代碼,讓它們儘可能簡單;
  • 遵循名稱、空格等樣式約定;
  • 使用環境變量替代私有信息;
  • 註釋好你的代碼。

Atlassian的react-beautiful-dnd項目(https://github.com/atlassian/react-beautiful-dnd) 就是一個用於在React中構建拖拽界面(像Trello那樣)的工具,是這方面的一個很好的例子。

這個項目的結構是模塊化的,代碼加了很多註釋,非常易於閱讀:

image

在開源代碼時,讓閱讀代碼的人在沒有看到代碼庫其餘部分時仍然能夠讀懂它們——因爲他們幾乎肯定沒有度過其餘的代碼。在上面的示例中,即使是一個簡單的導出,Atlassian的團隊也用註釋來解釋每個函數的作用,選擇能夠準確反映它們的值的屬性名稱,並保持一致的樣式。

這個代碼庫在GitHub上的Star數超過了10,000,並且有數十個貢獻者。道理很簡單:外部工程師越容易理解你的代碼,他們就越有可能參與貢獻。

2.編寫好的文檔

文檔就是你的銷售說明。工程師一看到它,就相信你的項目是值得他們做出貢獻的。文檔需要:

  • 闡明項目的價值主張;
  • 闡明你對貢獻者的期望;
  • 列出技術規格、依賴關係和許可;
  • 爲特殊用例提供易於訪問的參考資料。

Spotify的Annoy是一個“搜索空間中接近給定查詢點的點”的庫,它在這方面就做得非常好。它的README文件種提供了安裝說明、項目背景、代碼示例、許可證、依賴項以及深入瞭解底層軟件邏輯的信息。

它還提供了Annoy與其他庫在速度方面的測試基準對比:

image

只需一頁文檔,工程師就可以獲得所需的信息,以確定Annoy是否是他們想要參與貢獻的項目。

3.像產品發佈一樣推廣你的項目

2018年,每天有超過82,000個代碼庫發佈到GitHub。要讓你的代碼庫在衆多其他產品中脫穎而出需要付出努力並制定好的戰略,這與推出產品也有些相似的地方。爲了提高知名度,請考慮在以下幾個地方推廣新代碼庫:

  • 高流量網站:Hacker News、Reddit、Tech Ladder;
  • 相關社區:Product Hunt、Gitter、Dev.to(注:AngelList於2016年收購了Product Hunt);
  • 相關頻道:電子郵件、社交媒體等。

你還可以從其他營銷策略中獲得靈感。例如,Hack4Impact(一個爲其他非營利組織開發軟件的非營利組織)的團隊在當地大學開設工程研討會,要求學生使用他們的新庫,增加早期的Fork和Star數。

對於需要從較小的領域招聘工程師的公司來說,推廣代碼庫則更爲重要。Wallaroo Labs是一家幫助客戶啓動大規模數據運營的創業公司,他們的代碼庫使用了一種叫作Pony的語言。當這家公司於2017年和2018年之間公開所有代碼時,開始進行大量推廣、撰寫博文、參加訪談,並在技術大會上介紹爲什麼他們要採用Pony。

Wallaroo工程副總裁Sean Allen表示:“與我們面談的人中有相當一部分人是在使用Pony或對Pony感興趣的同僚,我們的代碼庫是最大的公開Pony代碼庫。”

將你的代碼庫視爲一種產品,並把你希望參與貢獻的工程師視爲你的市場。

爲什麼頂尖工程師需要開源

Artsy CTO Daniel Doubrovkine說:“如果你想要招到最優秀的人才,公開性是必要的”。他解釋說,原因在於“個人工程品牌對於個人貢獻者來說真的非常重要。如今的工程師們不太願意讓他們的技能停留在一個地方而不能展示它們。他們希望提高可見度,而這樣做可以給他們帶來一些可見度。”

爲了實現這個目的,Doubrovkine讓他的工程團隊採用“默認”開源的工作方式——也就是說,除非工程師有理由不公開發布代碼,否則就必須發佈到公共代碼庫中。因此,Artsy的大部分工程資料都是免費提供的。他說:“最好的公司將業務需求與個人貢獻者的願望結合起來,以創造他們的個人品牌”。

事實上,Artsy的工程師需要公開分享他們的代碼,並在代碼中署名。在Doubrovkine的招聘宣傳中,這些被作爲一個賣點,而這一點對於其他公司來說也同樣有參考意義。

GitHub聯合創始人Tom Preston-Werner說:“聰明的開發者喜歡與聰明的代碼打交道。當你開源有用的代碼,就會吸引到人才。”

英文原文:https://angel.co/blog/want-to-recruit-better-engineers-open-source-your-code

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章