1. 程式人生 > >公司管理系列--Facebook 如何化繭成蝶[轉]

公司管理系列--Facebook 如何化繭成蝶[轉]

十倍 -i 追加 hal http 第一天 load 無線 公眾

拒絕傳統,看 Facebook 如何以三大法寶化繭成蝶:人才吸引、工程師文化和項目開發流程

技術分享

我將結合之前在Facebook的四年工作經驗,介紹Facebook創新的管理方法以及整個工程文化形成的方法。

從大學宿舍到完整生態鏈:Facebook12年發展歷程

首先我想解釋下為什麽我要說Facebook,並不是因為我在那裏工作過。先請看一下Facebook的簡單發展史:

技術分享

2004年,紮克伯格在大學宿舍裏開發了Facebook,很長一段時間它只是一個簡單的網站。但是後來,擴展到硬件,開發了各種產品,占據了整個社交領域、至少是北美的霸主地位。Facebook還推進了Connectivity(全民聯網計劃),給發展中國家提供免費的無線網絡,再到後面做VR、AR、人工智能等現在非常火的新領域,形成了完整的生態圈。

看Facebook 12年的發展,我一直在想一個問題,它是怎麽從大學生宿舍裏面一個簡單的紮克伯格自己的個人項目,最終發展成為可以上市的公司?而且現在整個生態鏈布局的已經非常完善了,這個公司是怎麽做出來的?

我思考了很久之後,發現有一句話很有意思,21世紀最重要的是什麽? 就是人才。現在互聯網創業很多技術基本上都是開源的,很多硬件隨手可得。

技術分享

上圖是在五年前矽谷非常流行的一張圖,描述了大公司之間人才的流動情況。圖中,每個圓點是一個公司,和圓點顏色相同的邊表示這個公司的人才流入。可以看到Facebook基本上和其他點間連線都是藍色的,所有公司都在向Facebook輸入人才。而谷歌基本上在從微軟和雅虎搜集人才,在其他地方是流失人才的。


所以,從五年前吸納了很多人才開始,Facebook才有了今天的成就。有一群最牛的工程師、產品經理和設計師在這裏,所以經過五年的布局和人才培養,才造就了現在全生態鏈都有一個非常好的格局。


所以我在想,裏面整個工程師文化做得比較牛的是什麽?因為我自己在Facebook工作過,所以結合自身經驗帶來了這個分享:在公司裏面如何塑造比較好的公司文化?怎樣把牛人吸引過來?

技術分享

總共五個部分:

  1. 首先是簡單的自我介紹;

  2. 接下來講Facebook的工程師文化;

  3. 以及團隊的組成,包括設計師、產品經理和工程師;

  4. 人員是如何管理的,怎樣能有效控制工程師的工作積極性以及給予相應的報酬;

  5. 最後一點也是最重要的,以上這些對我們中國公司有怎樣的啟示。

一、我是誰:從Carnegie Mellon到Facebook

技術分享

這是我的簡歷,大學和企業在技術方面的差距還是很大的。從Carnegie Mellon大學畢業後,我加入了Facebook,開始做的是CTO親自主導的比較神秘的項目,後來去做了Facebook的APP,主要是iOS,也做過Voice Message等。

二、Facebook的工程師文化是怎樣的?


特點一:Hack Culture

首先,Hack Culture,可以說是「黑客文化」。註意並不是字面意義上的「黑客」,在紮格伯格招股書上就說過,Hack Culture並不是黑別人電腦,而是一種態度和做事的方法。

現在去美國已經非常容易了,如果飛機降落在舊金山機場,著陸的時候會越過Facebook總部,建議大家到時候可以留意一下,這麽一群建築就是整個Facebook總部的樣子。

技術分享

特別有意思的是,這個廣場的中間位置其實是有字的,在飛機上就會看得非常清楚,就是「Hack」。當我們說「我們要做一些Hack之類的」,它所表達的意思是「如果你有什麽想法,有創新的、古靈精怪的各種想法都可以,馬上去做!」

技術分享

Hack的詳細定義主要有三點:馬上上手、快速搞定和持續叠代。而Growth Hack的本質,就是增長方面用Hack的方法解決。在Facebook絕對拒絕傳統(大家一起來開會),而是技術驅動、數據為王。

技術分享

做了一個東西之後先發給用戶,看一下用戶的反饋或者搞一批測試的用戶,最後看多少用戶覺得你這個好,通過數據的采集方式來論證是否可行。在Facebook有很多牛的方法可以搜集數據,所以可以很明顯的看出這個版本用了AB測試之後到底是好還是壞。


在Facebook並沒有一個專門的部門做Hack,而是鼓勵所有的人去發揮自己的想象力,想做什麽就可以做。公司的角落有各種各樣的「Hack」,營造出一種氣氛,鼓勵員工去創新、鼓勵那些牛逼的人待在這個地方工作,這樣的公司文化是比較愉悅的。

特點二:Design+Engineering

如果說蘋果是80%的精力很重視自己的設計,谷歌大概非常重視工程,在Facebook設計和工程各占一半,這可能和大家想的不一樣。Facebook的新辦公室出自一位著名的設計師,有各種奇妙的元素,開始我認為這些設計是浪費,後來我慢慢發現這種環境下工作心情非常愉悅,很多人自發工作10個小時左右,而且在這種環境下心情很放松的狀態,更能激發你Hack。

技術分享

後來我看到國內的一些互聯網公司也有這種感覺,比如最近的創業貴族今日頭條。所以如果想把互聯網公司做大,就要有非常迷人的工程師文化,才能把牛逼的人招進來。

特點三:Open


我第一天入職Facebook的時候,最大的感受就是這三點:

技術分享

首先是Open,非常Open的checking。新人第一天入職,領到一臺電腦,連上網後,所有的數據都可以看到:產品的月活、日活、每一個功能,甚至可以像股票交易系統看到這樣的數據,比如日本的用戶30歲以下的人在用 news feed 的時候情況到底怎樣,從今年年初到現在變化是怎樣的等。所有的東西都開放給工程師,沒有任何權限。

在Facebook,codebase 是所有 software engineer 都有權限把它拷貝下來。我(作為一個facebook phone 和 iOS app的工程師)可以把安卓的codebase拉下來,也可以把PHP、推薦算法、引擎各種代碼庫給git clone下來,所有的權限都是開放的。但開放的前提,如果把公司內部信息泄漏出去就會被開除掉,歷史上也發生過好幾起這樣的事情。所以,在Facebook基本上不可能出現紮克發的一封郵件會被爆光。剛開始回國的時候,我很震驚,各種CEO的郵件都曝光在公眾眼中,這種事在矽谷基本不可能。

所以Hack意味著內部信任和開放,同時對外也要遵守非常嚴格的規定。

技術分享

最後一點就是Open Space,很開放的環境,給人的感覺是「網吧式的工作環境」。美國公司的辦公室給人的感覺比較粗糙,比如說天花板上沒有任何裝飾,柱子上還有很多鐵銹一樣的東西,但是它又有非常細節的地方。

比如說,顯示器都還不錯,有各種飲料和零食,隨便吃;椅子是著名的 Aeron chair。最有趣的是:椅子右側有兩個按鈕,一個是上升和下降,平時就是這麽正常的工作,累了之後,久座對身體不好,就把桌子升起來,變成站立式辦公。站起來有一個好處是,當好幾個人在一起討論問題的時候,大家可以站在一起看。很多時候寫代碼的時候,把設計師也帶過來,直接問「我做了一個原形你看有什麽問題的嗎?」有問題就直接改了。

紮克和所有人一樣,坐這麽一個位置,開放式工位旁邊有很大的玻璃房子,用於開會,紮克沒有太多的會議或者太多出去的時間,基本上每天在公司裏面專註於自己的事務。

三、Facebook團隊組成:設計師、產品經理和工程師

技術分享

很多人問我,Facebook的項目團隊是怎樣的?

一般情況,如果是做一個簡單、小功能,一般是一個設計師加兩個工程師;比較大的項目一點,比如說改版、在新版當中開發兩三個功能,基本上兩三個工程師一起做,iOS messenger app 五到十位工程師和兩到三位產品經理,和國內配比差不多。

比較有意思,Facebook沒有測試,他們比較貴,很多時候都是我們自己測,我們 Unit Test 並不多,覆蓋率10%到,但是我們有非常嚴格的 Code review。所以如果你要學習一點,在工程上面、執行上面讓bug減少的話就是代碼審核,交到這個 master brunch 裏面的代碼必須預先經過代碼審核,直接看代碼,沒有什麽問題就交,如果交進去後來發現Bug最後進行修復Bug花的時間和精力是之前的三倍十倍。

整個流程一開始規劃要做什麽東西、要做什麽功能、需求是什麽,接下來設計師和工程師互相合作,比較有意思的是整個流程每個決策都要參與,而且每個決策之間互相是交互式的,工程師也可以說這個需求根本不能做或者說不用之類的。

技術分享

這是我的桌子,當時無意中拍了一張照片,後面兩個都是工程師,我們在討論我們的消息收發的時候是怎樣的,那個時候已經過了下班的時間。

有人問,為什麽你們的產品開發的比較快或者做得比較好,有沒有什麽秘訣?其實並沒有太多的秘訣。

技術分享

首先,人和人之間互相尊重,同時用 Scrum,大家都坐在一起有任何進展馬上當面溝通,雖然我們遠程會議系統特別強大,各種功能開個遠程會議也行,但是我們鼓勵在一起坐下來聊。團隊最初期的時候就要開始協作,不同角色的人坐在一起討論,不像國內分階段分得特別明顯。最後,設計師和開發者在工作的後期聯系是非常緊密的。

技術分享

最後,還有很重要的一點:Facebook 有 Zuck Review。也就是一些比較大的功能或產品,紮克會親自安排看一下,也就是下面的人或者整個大的PM會親自跟紮克說,這個地方你要過一遍,即使再忙他都會親自來盯。


他會決定這個功能到底是做還是不做,決定產品的UI、功能、交互調整等,和網上風傳的馬化騰或張小龍其實風格差不多。我感覺Facebook和騰訊有些類似,都是一個產品型CEO主導的公司,紮克親自來盯。

技術分享

圖上有兩位中國人,其中一位是做廣告的葛爺,給Facebook賺了很多錢。Zuck有時會用一種直覺性和你講一些話,很多功能被他砍掉,大部分時間他都是做出了正確的決定。

我認為Zuck Review給人最重要的感覺就是鼓舞,如果這個東西紮克親自來看,優先級方面會給下面的工程師或者整個團隊一個非常明確的交代,這個事到底重不重要,需不需要。

關於優先級我想強調,大家都是技術人員,很多人在學校裏面學習都不錯,但在工作的時候發現有些不適應,需要註意的是在頂級公司或者特別牛逼的互聯網公司工作,最重要的一點是分清優先級,這和學習的時候完全不一樣。

工作中的事情是做不完的,你在工作的時候是連續的;不像在學校的時候一個學期隔著一個學期,最後期末考試,你知道自己有什麽反饋。但是在工作的時候活是幹不完的,所有東西,周圍很多人讓你做這個做那個,最重要做的事情是分清優先級,任何一個任務發過來的時候,心裏面把它積累起來,哪個任務比較重要的先做,而不是交給你一個任務馬上去做。

所以這裏優先級,很多人我看到能力很強的人,最後遇到一個瓶頸,關鍵的問題是自己沒有分清優先級,去做一些比較簡單或者自己喜歡,或者是覺得自己能做的事情,而不是做最有影響力的事情。

具體說來,和學生時代相比就是:學習上的課程是有限的,作業也是有限的,而且還有相對明確的截止日期(homework deadline)和最後一個期末考試;考試完結後,幾乎學業清空一段時間。但是在工作上你會發現你沒有一個類似暑假或者寒假的東西,另外最可怕的是你的活是幹不完的,對的,是無窮無盡的。特別你是在一個上升期的互聯網公司的話,給你任務的速度很多時候是超過你的處理速度的。

所以這個時候,你在接到一個被分配的任務或者一個email要求你幹什麽的時候,你不是要馬上可以做,而是要強迫自己停頓下,分清現在這個任務的優先級,然後分配好開始時間,之後再開始做。這點尤其重要!特別當看到一個簡單或者重復性的任務被email或者tower(或者teambition)上分配來的時候,不要因為任務簡單就馬上跳上去幹,不然這樣極可能被簡單重復勞動把自己的時間全部占光,最後沒來得及幹重要的事情,或者沒有精力去思考更加長遠更有影響力的事情。

所以,重申一次,去做impact和urgency最高的事情(這種事情一般來說不是很愉悅,甚至是比較棘手或者說是無從下手的事情),而把簡單重復的活盡量後排(或者delegate出去)。這時你才會發現你的忙碌是有意義的,而不是做“偽工作”(pseudo work)。

我常常看到一些畢業不久的人每天都很忙,但卻沒有抓住重點,只是為了忙碌而忙碌,或者用更加貼切的話描述是:“為了感動自己而忙碌”。很多時候這樣的忙碌,最後都是一個屁。之前在Facebook裏,對於這樣的同事有一個稱號叫做“pseudo worker”,領導的職責是直接給他們透徹的反饋,讓他們認清自己工作的impact最大化的地方到底在哪兒,同時告誡他們要忍住低impact的簡單任務的誘惑。

對的!那些垃圾任務有著一種誘惑;誘惑著沒有定力的人一直去做,一直去做,感覺自己特別有成就感,特別“忙碌和充實”。所以要小心! 在國內創業路上也有很多這樣的創始人(或者cofounders),他們自己的方向可能都沒怎麽想清楚,或者路線沒有執行得當,卻一天到晚在朋友圈曬自己和同事們的加班,覺得這樣的“忙碌”很充實。其實這是一種很可怕而且對自己和團隊既不負責的做法。

一般工作時長驚人但又沒有unicorn估值的公司,我總覺得加班是一種羞恥,是自己團隊不會分優先級或者戰略不明確的表現;如果創始人還一直在那裏秀加班來感動自己的話,我的建議是盡早離開。同時我還敢打賭,90%這樣的公司在加班(和日常工作時間裏)的效率是偏低的。

另外,Zuck Review可以從用戶的角度進行分析。有的時我們候做一個產品或做一個技術,一直做的時候會把很多東西想的過於簡單,而用戶很多時候比較傻或能夠一秒鐘變傻,會覺得這個東西並不好用。這一點感覺紮克做得比較好,紮克自己不是特別懂技術細節,如果他覺得這個地方為什麽這麽難用,會給你講很多有意思的東西。

四、Facebook是怎樣利用OKR進行人才管理的?

技術分享

接下來是整個Facebook的管理是怎樣,即OKR。在Facebook,OKR意味著每六個月或每一年,制定一下你個人的目標、團隊的目標以及公司的目標是什麽,接下來行動就可以了。

第一點,在目標制定的時候你要以結果為導向或者以影響力為導向,不要為了做而做、或者做一些偽工作。在工作的時候很多人會做一些偽工作或者簡單的工作,也就是自己願意做的工作。

第二點,在Facebook會看每六個月、這半年的指標到底是什麽東西。

第三點,每年6月底、12月底分別會做一次個人績效評估。

最後,一個月之後評估結果就會出來,將決定你的獎金多少、是否升職,年終績效評估將決定你的現金獎金是多少,年底除了現金還有股票的追加。不管任何級別,只要是工程師都會給你相應的股票,每過一年年底績效評估將決定給你追加多少股票,一般都會追加股票。

技術分享

具體的績效考核怎麽做?首先是國內常講的360度評估,每6個月做一次,主要是四個部分:自評、同事評價、直屬上司評價和老板評價。最後比較有意思的啊,你可以決定這個東西是否開放、被誰看到。一般有85%左右的人會選擇開放,這是很恐怖的一個數據,基本上互相之間都是開放的。最後一點就是HR和整個Team calibration,從上面再校準一次。

技術分享

最後就是獎金,給你規定一個獎金,在10%到25%的區間。看你在哪個級別,新進來是10%,越到上面越高。然後要乘以你的個人績效,0表示沒有獎金,一般在1.25左右,4.5就很高了。最後再乘以一個公司的績效,公司那幾個高層對公司這半年來做得怎麽樣打一個分,如果公司做得很不錯,所有人的薪水都會加。

五、師夷長技以制夷:對中國互聯網公司有什麽啟示?


最後,我想說說Facebook的管理之道對中國互聯網公司的啟示是什麽。雖然在Facebook工作很好,但我更喜歡加入中國的公司或者自己創業,和一幫國人在一起做一個公司,有一個牛逼的產品能夠放到國際市場上和西方對打。

技術分享

首先想強調一點,很多人說Facebook工程師文化特別好,但是它的文化並不是與生俱來的。前幾天為了佐證這個觀點我專門看了一下2007年大家對於紮克的想法,那個時候公司一團糟,偶爾有幾個比較厲害的人,Facebook現在比較牛的工程師文化是在2008年、由一個女孩Molly Graham逐步營造起來的。

Molly營造公司文化的過程,在這篇文章有闡述,當時,Facebook從400人快速增長到1000人,公司已經管不過來了,一團糟,大家互相埋怨對方,幹活非常沒有效率,做了很多低效的事情。那麽怎麽把公司管好,同時讓更優秀的人可以持續進來呢?Molly建議Facebook建立工程師文化,她當時讓紮克自己寫了十條他覺得比較牛逼的人是怎樣的,當然那十條大部分就是由紮克自己的氣質決定的。

這十條標準寫出來之後,在公司裏面反復強調,同時招人也招符合這些條件的人。所以可以得出一個結論:公司80%的文化來自於創始人。

最後一個結論:當一個公司變大,比如從A輪到B輪的時候,一定要營造出自己的文化。所以如果你是創始人,在公司還小的時候隨便怎麽弄,但是你自己要很明確有一桿秤;當公司到了500人以上的時候,這個時候一定要建立自己的公司文化。

對技術人員來說,判斷公司文化很多時候都是看創始人,看創始人是幹什麽出身的。如果他是做生意的,那麽這個公司或許並不是是你的最佳歸屬,即便講得再牛。

舉今日頭條的例子,他們做得比較好,老大本身也是技術出身,他們公司對技術人員的待遇非常好,還去矽谷挖了很多牛逼的人,把公司氛圍營造得非常好。所以看創始人是可以看出來這個公司文化到底是怎樣的。

對任職管理者的工程師來說,在創業的過程當中有四點需要註意:

第一,盯一線產品。下面的人不怕你challenge他,怕的是把這個東西做完之後上面的人不看,他就會覺得自己所有的辛苦努力全部都浪費了。

第二,6個月要做一次Performance Review,這將決定員工的獎金和股票。

第三,Code Review。在工程方面並不是用最好的技術最重要,而是把Code Review加進來,這並不是為了查出錯,而是有時候要註意自己看一下,你交的代碼整個邏輯是不是清晰,同時會留下記錄以便如果後來的人想學習你這個功能是怎麽寫的,他可以來從這個上面看所有的記錄,這是工程師之間互相切磋和交流的一個工具。

第四,很多中國的創業公司有常會忽視的,入職培訓和Wiki要寫好。麥肯錫曾總結成功的公司的最大的經驗是:Wiki做得很好。可以把公司中每個人的知識歸檔、以及把每個人牛逼的知識在整個團隊裏擴散出去,是非常重要的一件事。

公司管理系列--Facebook 如何化繭成蝶[轉]