覃超:Facebook的項目開發流程和工程師的績效管理機制

4月23日下午,在QCon2016北京站,我旁聽了@覃超 的演講,演講只有45分鐘,意猶未盡,大魔王真人比照片帥嘛~(跑題拉回中~~)

作為組織者福利,萌萌第一時間拿到了速記稿和大魔王的PPT,整理了這篇文章,分享給你:

摘要:

無論技術有多麼先進,技術人都需要和你的團隊一起達成目標,如果說技術能力是硬實力,那麼我們的團隊的組織和管理是softskill,通常比較難學習、難練習。覃超是峰瑞資本技術合伙人、Facebook早期員工,他在QCon2016北京站分享了Facebook的項目開發流程和工程師的績效管理機制,希望能給你一些管理軟技能上的啟迪。

正文:

非常感謝QCon給我這個機會給大家帶來這個演講,我將結合之前在Facebook的四年工作經驗,介紹Facebook創新的管理方法以及整個工程文化的方法。

引子:從大學宿舍到完整生態鏈:Facebook的12年發展歷程

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

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

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

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

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

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

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

總共五個部分:首先是簡單的自我介紹;接下來講Facebook的工程師文化;以及團隊的組成,包括設計師、產品經理和工程師;人員是如何管理的,怎樣能有效的控制工程師的工作積極性以及給予相應的報酬;最後一點也是最重要的,以上這些對我們中國公司有怎樣的啟示。

1、我是誰:從Carnegie Mellon到Facebook

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

2、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,很開放的環境,給人的感覺是「網吧式的工作環境」。美國公司的辦公室給人的感覺比較粗糙,比如說天花板上沒有任何裝飾,柱子上還有很多鐵鏽一樣的東西,但是它又有非常細節的地方。

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

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

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

很多人問我,Facebook的項目團隊是怎樣的?一般情況,如果是做一個簡單、小功能,一般是一個設計師加兩個工程師;比較大的項目一點,比如說改版、在新版開發兩三個功能,基本上兩三個工程師一起做,iOS messenger app 五到十位工程師和兩到三位產品經理,和國內配比差不多。比較有意思,Facebook沒有測試,他們比較貴,很多時候都是我們自己測,我們 Unit Test 並不多,覆蓋率10%到,但是我們有非常嚴格的 Code Review。所以如果你要學習一點,在工程上面、執行上面讓bug減少的話就是代碼審核,交到這個 Master Branch 裡面的代碼必須預先經過代碼審核,直接看代碼,沒有什麼問題就交,如果交進去後來發現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可以從用戶的角度進行分析。有的時我們候做一個產品或做一個技術,一直做的時候會把很多東西想的過於簡單,而用戶很多時候比較傻或能夠一秒鐘變傻,會覺得這個東西並不好用。這一點感覺扎克做得比較好,扎克自己不是特別懂技術細節,如果他覺得這個地方為什麼這麼難用,會給你講很多有意思的東西。

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

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

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

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

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

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

具體的績效考核怎麼做?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最後申明下版權,本文首發於InfoQ公眾號:覃超:Facebook的項目開發流程和工程師的績效管理機制

關注InfoQ,回復「魔王」,下載大魔王演講PPT。


推薦閱讀:

揭秘 Technical Writer 的工作環境 | 加入 PingCAP 五個月的員工體驗記
自動化的方向與未來
石墨烯PLA復材怎麼做到耐高溫_復材 (#6) *完成小試
終於量產!深度解讀英菲尼迪可變壓縮比發動機
Markdown:寫技術文檔、個人博客和讀書筆記都很好用的輕量級標記語言

TAG:硅谷 | 技术 | Facebook |