如何將你的新工程師迅速調教成一隻老鳥(上)

評論
評論


照片來源:wongoz

原文載自 虎嗅網 ,作者王淮是前 Facebook 支付後端及反詐欺技術經理,現為天使投資人。本文為上篇。

前言

第一次覺得有興趣介紹新兵營文化是和王建碩聊天的時候。當時我在百姓網裡做 advisor,了解到他們也有類似新兵訓練營(即如何讓新來的員工迅速融入到公司文化中進行高效率的協同作業)的項目,一開始也是向 Facebook 學習,但在具體的操作上都在很小心的摸索,所以我們進行了比較深入的探討。本文將分多篇來介紹新兵營計劃的內容,背後的理念和操作上要注意的細節問題。本文節選自即將於 12 月份出版的新書《我在 Facebook 的日子——打造 Facebook》。

什麼是新兵營?

其實,Mark Zuckerberg 在 2012 年 2 月宣布 IPO 時對外發表的公開信裡說得很清楚:「……Facebook 要求所有新上任的工程師——包括那些將來主要並非從事程式設計工作的經理——參加新兵訓練營(Bootcamp),學習我們的程式庫、工具和方法。業內有許多人負責管理工程師團隊,並不願親自動手編寫程式;然而,我們尋找的實踐型人才都希望也能夠經受新兵訓練營的檢驗。」

沒錯,新兵訓練營,其實也是菜鳥養成營,其目的就是讓新來的工程師和產品經理接受為期六週的集中培訓以儘快融入公司之中,更為順暢地開始工作。可是,這有什麼稀奇的?很多公司都會為新員工指定一個導師啊。但是,Facebook 的做法明顯不同。

為什麼要有新兵訓練營?

先談談新兵訓練營的歷史。

新兵訓練營計劃並不是從公司一成立就有的。我加入 Facebook 的時候還沒有這一計劃。我進入公司時,第一個月裡找了一堆有問題的程式碼來修改,透過這些工作接觸並認識了很多朋友。第二個月,我選了一個大概長度為一個月的計畫自己玩,也沒什麼人來管。就在這些練習中慢慢地認識公司的人,學習公司的文化,並逐漸融入 Facebook。但是隨着公司迅速發展、員工不斷增多,無計劃的自學式的方法無法迅速地幫助大量新員工高效融入到 Facebook,所以從 2008 年中開始,Facebook 開始系統性地設計和試驗新兵訓練營計劃,並在實踐中不斷改進。很快,這個計劃變成了所有新加入的工程師都要強制參加的培訓計劃。對於產品經理,原則上也要求他們參加。由於產品經理進來的時候都已經確定好去某個組,不像工程師,大部分都沒有確定去向,所以如果產品經理的老闆有特殊要求的話則可以不經過新兵訓練營而直接開始工作。這種情況比較少見。

這一計劃的主要推動者是 Andrew Bosworth, Andrew Bosworth 是公司文化的主要捍衛者,「上帝不允許我們有一天不為 Facebook 的未來做準備。我們曾見過一家又一家的公司在做大後因為規模陷入麻煩,或因為文化陷入麻煩。」在 2008 年初,他開始意識到,Facebook 的文化可能面臨挑戰甚至失敗。他剛進公司時,所有人都彼此認識,可是 2008 年夏季的一天,當他在公司的餐廳排隊時,遇到了一位之前從未見過的工程師。於是 Andrew Bosworth 問他,在公司做了多久;對方的回答讓他震驚:一年。他感覺有點不對勁兒。「我們是 Facebook,如果我們不能規劃一個超過 150 人的溝通網絡,就真的有麻煩了。」他這麼想。我在 Facebook 這四年半,一開始幾乎每個工程師都互相認識,但人員的迅速增長,讓這一點變得不可能。如何有效的讓最適合(潛在)合作的人互相認識,有信任感,來保證計畫的高效完成,成了 Facebook 這麼些年很大的一個挑戰。等到計畫開始的時候參與的人員才開始互相認識,那麼磨合期會更長,磨合成本會更高。

2008 年中,正是新員工如潮水般湧進公司之際,作為公司整個文化培育行動的一部分,新兵訓練營計劃登場了。這項計劃就是為了讓新工程師們認識公司裡面相關的人,了解公司的文化,了解公司的技術與產品,從而能迅速地融入 Facebook,並找到適合自身能力和興趣的小組(即透過這個過程確定他的具體工作職能)。

新兵在這六週裡究竟要做什麼?

第一週的週一,新來的工程師們在公司自助餐廳裡和負責他們的導師(Mentor)吃完中飯後,為期六週的強制性訓練營就拉開了序幕。這位導師將全權負責回答新人們的各種問題,從工作,到生活,到八卦,如果新人真的感興趣的話。簡短的介紹之後(Andrew Bosworth 和其他老員工會在這個環節介紹公司的文化),每人會分到一台電腦和一張辦公桌。第一次打開電腦時,他們會看到六封電子郵件,其中一封是歡迎信,另外五封介紹了他們將要執行的任務,包括修復 Facebook 網站上的錯誤。訓練的目的很多,其中之一就是讓新員工充分認識到,他們擁有直接改變 Facebook 網站的力量。

Facebook 很希望工程師在第一天就把所有的程式編寫環境都設定好,在第一天就提交程式碼 1。這樣可以在週二參與每週例行的程式碼發佈活動,將程式碼同步到 Facebook 幾十萬台服務器中。Facebook 並不希望新人在第一天提交複雜的程式碼,基本都是很簡單的改變;希望透過這樣的練習讓工程師能迅速了解整個流程,迅速進入角色。

前三週有很多課程要上。一般公司的 COO(營運長),CPO(產品長),工程副總裁都會在第一週給新人們介紹各個部門概況,給大家一個全局的認識。第二週,重點在於公司各個重要產品,常用的技術框架和技術工具的介紹。第三週,集中在公司的運營(包括市場,銷售等部門),商業模式(Facebook 主要的廣告模式和虛擬貨幣的盈利手段)和其他非產品技術部門的介紹。

從第三週開始,新人們就開始接觸很多相關、需要人手的團隊,和這些團隊的經理交流,了解他們的產品、參加他們的會議和討論。一般要求在第三週的週末,新人要選出不多於三個團隊作為他們感興趣的候選名單。接下來每一週的事情就是進一步縮小目標範圍,以達到在第六週時只剩一個團隊的目標。這個團隊當然就是新人最後要加入的。

從第一週到第六週,所有新人 60% 以上的時間,都需要花在修復程式碼錯誤上面。其他所有的事情應該在剩餘的 40% 時間內完成。Facebook 相信,讓工程師融入公司最好的辦法是透過程式碼的交流。畢竟,產生高質量的程式碼的確是所有工程師最主要的工作。

 

>> 中篇:〈 如何將你的新工程師迅速調教成一隻老鳥(中)


  1. Facebook 程式碼產生的過程包括編寫程式(write code),測試程式碼(test code),審查程式碼(review code),提交程式碼(check in code),發表程式碼(release code)。編寫程式指的是在自己的開發機器上做好修改,這些修改只存在於自己的開發環境中;測試程式碼指在本地端測試自己的修改以保證修改不引入明顯的問題;審查程式碼則是指找合適的工程師同事來查看待提交的程式碼;提交程式碼是將經審查的程式碼提交到伺服器端的程式庫之中;發佈程式碼是將提交的新程式碼同步到所有的伺服器端讓終端使用者使用新的功能。

精選熱門好工作

Campaign Associate 線上活動策劃專員

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$20,000

Video/Image Processing Software Engineer

PicCollage 拼貼趣
臺北市.台灣

獎勵 NT$20,000

行銷企劃專員 (網站活動)

VeryBuy非常勸敗
臺北市.台灣

獎勵 NT$20,000

評論