新兵訓練營,其實也是菜鳥養成營,其目的就是讓新來的工程師和產品經理接受為期六周的集中培訓以盡快融入公司之中,更為順暢地開始工作。對于快速成長、規模不斷擴大的Facebook來說,新兵訓練營還是一個培養一線管理者的好地方,并有效地保持了自身的文化特色。這種培養管理者的程序特別重要。
因為Facebook從一開始就是由幾個20來歲、沒有職業經驗的年輕人成立的,之后的工程師主體也大多是這樣的年輕人,其中很多都沒有在別的公司工作過,盡管在打造網站方面做得非常出色,但對于公司文化的可持續性實在沒有把握。由于Facebook的結構非常扁平,一線管理層作為整個工程師管理的基礎,有一個系統性的培訓機構能持續性的提供新的經理,對于公司的發展是非常重要的。新兵訓練營在這方面起到了不可忽視的作用。
什么是新兵營
其實,扎克伯格在2012年2月宣布IPO時對外發表的公開信里說得很清楚:“……Facebook要求所有新入職的工程師——包括那些將來并非主要從事編程工作的經理——參加新兵訓練營(Bootcamp),學習我們的代碼庫、工具和方法。業內有許多人負責管理工程師團隊,并不愿親自動手編寫代碼;然而,我們尋找的實踐型人才都希望也能夠經受新兵訓練營的檢驗?!?br/>沒錯,新兵訓練營,其實也是菜鳥養成營,其目的就是讓新來的工程師和產品經理接受為期六周的集中培訓以盡快融入公司之中,更為順暢地開始工作??墒?,這有什么稀奇的?很多公司都會為新員工指定一個導師啊。但是,Facebook的做法明顯區別于他們。
為什么要有新兵訓練營?
新兵訓練營計劃并不是從公司一成立就有的。我加入Facebook的時候還沒有這一計劃。我進入公司時,第一個月里找了一堆有問題的代碼來修改,通過這些工作接觸并認識了很多朋友。第二個月,我選了一個大概長度為一個月的項目自己玩,也沒什么人來管。就在這些練習中慢慢地認識公司的人,學習公司的文化,并逐漸融入Facebook。
但是隨著公司迅速發展、員工不斷增多,無計劃的自學式的方法無法迅速地幫助大量新員工高效融入到Facebook,所以從2008年中開始,Facebook開始系統性地設計和試驗新兵訓練營計劃,并在實踐中不斷改進。
很快,這個計劃變成了所有新加入的工程師都要強制參加的培訓計劃。對于產品經理,原則上也要求他們參加。由于產品經理進來的時候都已經確定好去某個組,不像工程師,大部分都沒有確定去向,所以如果產品經理的老板有特殊要求的話則可以不經過新兵訓練營而直接開始工作。這種情況比較少見。
這一計劃的主要推動者是安德魯·博斯沃斯(Andrew Bosworth),博斯沃斯是公司文化的主要捍衛者,“上帝不允許我們有一天不為Facebook的未來做準備。我們曾見過一家又一家的公司在做大后因為規模陷入麻煩,或因為文化陷入麻煩?!?br/> 在2008年初,他開始意識到,Facebook的文化可能面臨挑戰甚至失敗。他剛進公司時,所有人都彼此認識,可是2008年夏季的一天,當他在公司的餐廳排隊時,遇到了一位之前從未見過的工程師。于是博斯沃思問他,在公司干了多久;對方的回答讓他震驚:一年。
他感覺有點不對勁兒?!拔覀兪荈acebook,如果我們不能規劃一個超過150人的溝通網絡,就真的有麻煩了?!彼@么想。我在Facebook這四年半,一開始幾乎每個工程師都互相認識,但人員的迅速增長,讓這一點變得不可能。
如何有效的讓最適合(潛在)合作的人互相認識,有信任感,來保證項目的高效完成,成了Facebook這么些年很大的一個挑戰。等到項目開始的時候參與的人員才開始互相認識,那么磨合期會更長,磨合成本會更高。
2008年中,正是新員工如潮水般涌進公司之際,作為公司整個文化培育行動的一部分,新兵訓練營計劃登場了。這項計劃就是為了讓新工程師們認識公司里面相關的人,了解公司的文化,了解公司的技術與產品,從而能迅速地融入Facebook,并找到適合自身能力和興趣的小組(即通過這個過程確定他的具體工作職能)。
如何為新員工找到合適的工作職位?
導師在跟幾位需要招人的經理討論之后,就會安排大致匹配的新員工與之見面,通常是經理在做“推銷”;而新員工好比是在“面試”那些小組,最后由他決定自己想去哪個組。
為了讓合適的組找到合適的人,新兵訓練營負責日常運營的人(博斯沃斯的助手)會在每一期開始前一周把所有新兵的簡歷E-mail給有招人名額的經理。如果經理看到一個特別合適的,新兵營會配合這個經理去引起目標人選的興趣,比如說會鼓勵他參加該組的討論會,多分配該組相關的代碼錯誤修改任務等。但最后能不能成功,最大的決定來自于新兵本人。
另外,導師也會主動跟目前需要人手的那些組溝通,看自己負責指導的新員工更適合哪些項目。Facebook專門有一個頁面,叫團隊優先級頁面(Team Priority Page),負責產品技術的各個組都可以把自身的用人需求放在上面,還有一個由博斯沃斯和工程總監們組成的委員會,每兩周開一次會,討論每個組的用人優先度。
博斯沃斯的強勢在這個會議上大有用處。根據這些情況,導師會跟相應的幾個經理做一些探討,比如挑幾個最重要的組當中要招人的幾個職位,看起來跟自己的所負責的新員工背景比較符合,進行一個大致的匹配,相當于導師幫新人做了一次初選。
畢竟讓一個新人在完全沒有指導的情況下去了解每個組,效率太低,也不現實。導師再鼓勵新員工去跟這些備選組的人去接觸、溝通。
導師每周都會對所指導的新員工進行評級(有Rockstar—明星,Solid—扎實,Shaky—搖擺這幾個級別)并簡要地評價,說明他水平如何、有什么特長、對哪些組特別感興趣等,這些評價整理匯總之后會發給所有的經理,所以他們對新員工的能力也有了大致的了解。
導師在跟幾位經理經過討論之后,就會安排大致匹配的新員工與之見面,一般半個小時左右,通常是經理來介紹他的小組在做什么項目,需要招什么樣的人,這項工作的意義何在,這個小組對整個公司有什么意義等,相當于在做“推銷”;而新員工主要是聽,好比是在“面試”那些小組,最后由他決定自己想去哪個組。
所以,這種安排也是希望能讓他更容易展現自己的特長。從組里的反應來看,對他的表現還算滿意。最后我們就讓他進了這個組,沒有讓他走人。對于表現不良的新人,雖然總體上Facebook是求快,但對于在某方面有造詣的工程師還是盡可能為他尋找合適的崗位。
這里面其實也反映出一個問題,就是研究型人才如何在一家步伐很快的技術公司立足。Facebook也在慢慢地摸索。
就我個人做導師的經歷而言,新兵訓練營結束后我還會繼續跟蹤(這不是公司統一要求的)。新兵營畢業后一個月和三個月后,我會跟這些新員工再進行“一對一”談話,看他們感覺怎么樣,新兵營對他們有沒有幫助,是否適應目前的工作,有沒有文化溝通上的沖突等。
新兵在這六周里究竟要做什么?
第一周的周一,新來的工程師們在公司自助餐廳里和負責他們的導師(Mentor)吃完中飯后,為期六周的強制性訓練營就拉開了序幕。這位導師將全權負責回答新人們的各種問題,從工作,到生活,到八卦,如果新人真的感興趣的話。簡短的介紹之后(博斯沃思和其他老員工會在這個環節介紹公司的文化),每人會分到一臺電腦和一張辦公桌。第一次打開電腦時,他們會看到6封電子郵件,其中1封是歡迎信,另外5封介紹了他們將要執行的任務,包括修復Facebook網站上的錯誤。訓練的目的很多,其中之一就是讓新員工充分認識到,他們擁有直接改變Facebook網站的力量。
Facebook很希望工程師在第一天就把所有的編程環境都設置好,在第一天就提交代碼。這樣可以在周二參與每周例行的代碼發布活動,將代碼同步到Facebook幾十萬臺服務器中。Facebook并不希望新人在第一天提交復雜的代碼,基本都是很簡單的改變;希望通過練手讓工程師能迅速了解整個流程,迅速進入角色。
頭三周有很多課程要上。一般公司的COO(首席運營官),CPO(首席產品官),工程副總裁都會在第一周給新人們介紹各個部門概況,給大家一個全局的認識。第二周,重點在于公司各個重要產品,常用的技術框架和技術工具的介紹。第三周,集中在公司的運營(包括市場,銷售等部門),商業模式(Facebook主要的廣告模式和虛擬貨幣的盈利手段)和其他非產品技術部門的介紹。
從第三周開始,新人們就開始接觸很多相關的需要招人的組,和這些組的經理交流,了解這些組的產品,參加這些組的會議和討論。一般要求在第三周的周末,新人要選出不多于三個組作為他們感興趣的備選組。接下來每一周的事情就是進一步縮小目標范圍,以達到在第六周時只剩備選組的目的。這個組當然就是新人最后要加入的組。
從第一周到第六周,所有新人60%以上的時間,都需要花在修復代碼錯誤上面。其他所有的事情應該在剩余的40%時間內完成。Facebook相信,讓工程師融入公司最好的辦法是通過代碼的交流。畢竟,產生高質量的代碼的確是所有工程師最主要的工作。
導師需要做什么?
新員工在訓練營里60%~70%的時間要用在修改程序錯誤上,而遇到任何困難,都可以尋求導師的幫助,關鍵是方法、理念、文化的傳遞。
那么,導師具體要做些什么呢?新員工有任何問題,尤其是關于公司文化的,除了嘗試自己解決以外,都可以尋求導師的幫助或指導;導師不會在任何時候給新員工臉色看,而是會全力支持他們的學習。
首先,導師每周和被指導的新員工做“一對一”的重點討論,比如他最近的學習進展,表現如何,哪些方面做得好,哪些方面需要加強。公司要求導師對新員工給予最直接的反饋,以幫助他們迅速成長。
另外一個交流的重點是對于公司內現有的哪些團隊和項目感興趣,因為新兵訓練營的最終目的就是讓他們順利融入公司,找到合適的小組。什么才算是合適的小組呢?從新員工的角度來說,就是既能發揮他的長處,又是他感興趣的;從公司的立場看,當然希望重點的項目能夠得到合適的人力分配。如果能做到雙方都滿意的匹配,就是理想狀態了。
Facebook非常鼓勵員工到他感興趣但不熟悉的領域,這樣可以給一個項目帶來新鮮的視角。當然,這么做的前提是這些人是很聰明的、非常有學習能力的工程師。
其次,導師每周都要參加導師碰頭會,參加者包括所有正在訓練營的導師、博斯沃斯及其助手,會議就訓練營中遇到的一些具體問題進行討論,找出解決方案。大多數時間會花在一些表現特別出色或特別遜色的新兵身上,如果沒有這兩類人的話,會提早散會。對于表現特別出色的,導師要著重考慮哪些組最適合這些能力強悍的新兵。
公司希望將最好的新兵用在最重要、最需要他們特長的崗位上。
有好幾次,在一期新兵營剛開始的時候,幾個組的組長都發信要招同一個人,這樣的“搶人”就需要在碰頭會上商量如何進行引導和解決。對于表現特別遜色的,則會花時間討論如何幫助他們改變以有所起色。因為,對于通過Facebook層層面試的人,公司相信他們還是有實力的。不經過多次努力,公司不會輕易得出他們不適合Facebook這一結論。
還有,導師會分配一些代碼錯誤給新員工進行修補,這類任務通常會占到新員工60%~70%的時間。設想一下,作為一個新人,你的工作成果很快就被數以億萬計的用戶使用,多么有成就感的事情!這樣做可以給他們極大的自信。
修改錯誤的過程中,新員工可以了解到相關項目的前因后果,需要跟相關程序的小組及工程師打交道,熟悉很多內部工具……這就又回到了新兵訓練營的最終目的上——幫他們找到最合適的組。
如果新工程師在修改錯誤時遇到了困難,那他是先跟自己在訓練營里的朋友互相商量,一群菜鳥找出答案來,還是直接尋求導師的幫助呢?當然,菜鳥互幫互助是最受鼓勵的,解決問題的方式往往不止一種,而是有很多,每個人都可以構想自己的方法,自己什么嘗試都沒做就直接問別人則是非常忌諱的。如果實在不行、確實需要找導師時,導師往往也不會給出直接的答案,而是告訴新人們,可以去找代碼錯誤涉及的原先的工程師聊聊,哪些人對這個部分更了解。
正如中國的諺語,“授之于魚,不如授之以漁”,希望新員工能夠自己去思考這些遇到的問題,然后找出解決方法;當然,也不能在困難面前自己一個勁死磕,要學會適當尋求別人的幫助。
一個簡單的原則是:至少要在相關的代碼里花了半小時而沒有任何頭緒,這時候才適合去尋找導師或者問相關的工程師。這樣你在和導師或者相關工程師請教的時候,可以在解釋完遇到的問題之后,再迅速描述你已經查看的代碼和已經排除的一些假設;當別人知道你做過功課的時候,會更加愿意幫你。不懂就問,而不是自己先鉆研的人,在Facebook不受歡迎。
訓練營里很多時候碰到的情況是,解決一個問題其實有好幾種方式,但新員工還不明白哪種方式是Facebook通用的,這個時候導師可以告訴他去代碼庫里看看其他類似的地方是怎么處理的,看以前的工程師是怎么做的,重復這種方式保持一致性一般沒有問題。所以如何高效地做代碼查看成了每個員工都要學會的技能。
如果涉及的是具體產品的技術性問題,Facebook不建議導師進行深入的幫助,因為這樣就變成我來幫助你做一件非常具體的事情了,而關鍵的是教給新員工方法、理念、文化上的東西。優質聯盟