導(dǎo)語:美國科技博客網(wǎng)站 BusinessInsider 撰文揭開了 Facebook 程序設(shè)計(jì)人員的神秘面紗。Facebook 代碼從開始編寫到終發(fā)布,都有著極為嚴(yán)格的程序,CEO 馬克·扎克伯格(Mark Zuckerberg)甚至對(duì) News Feed 每個(gè)代碼更新親自把關(guān),確保不出現(xiàn)任何差錯(cuò)。

工作中的扎克伯格

以下為文章概要:

         Facebook 工程師是這家社交網(wǎng)站巨頭有價(jià)值的財(cái)產(chǎn),他們擁有非常大的自主權(quán),但同時(shí)也面臨著盡快發(fā)布高質(zhì)量代碼的壓力。

         谷歌員工李易(Yee Lee)通過與大批 Facebook 工程師的交談,在一篇博文中披露了 Facebook 代碼發(fā)布流程。這個(gè)流程的確與外界之前想象的相差無幾,雖然 Facebook 對(duì)代碼發(fā)布的監(jiān)督比人們預(yù)想的更為嚴(yán)格。盡管這篇博文發(fā)表于一年前,但整個(gè)流程自 Facebook 上市以來似乎并未發(fā)生太大變化。

         Facebook 員工主要由工程師構(gòu)成,人數(shù)多的兩個(gè)團(tuán)隊(duì)分別是 Engineering 和 Ops,總計(jì)占了 Facebook 員工總數(shù)的一半左右。此外,F(xiàn)acebook 還有大量產(chǎn)品經(jīng)理。他們要確保代碼按時(shí)發(fā)布。每一個(gè)產(chǎn)品經(jīng)理負(fù)責(zé) 7 到 10 名工程師。

         Facebook 所有工程師都要接受 4 到 6 周的培訓(xùn),學(xué)習(xí) Facebook 修復(fù)漏洞的方法,聆聽雇員舉辦的講座。在進(jìn)入“訓(xùn)練營”(Boot Camp)的工程師當(dāng)中,會(huì)有大約 10% 無法順利通過測(cè)試,終被勸退。

         接受完培訓(xùn)以后,工程師開始接觸 Facebook 數(shù)據(jù)庫。他們可以隨意核對(duì)代碼,對(duì)數(shù)據(jù)庫做出修改。員工們還會(huì)拿到一張“禁做之事”名單,如禁止分享用戶數(shù)據(jù)。盡管如此,F(xiàn)acebook 還出臺(tái)了一系列措施,防止此類事情的發(fā)生。

         同谷歌一樣,F(xiàn)acebook 的企業(yè)文化同樣以工程師為主。一名工程師說:“產(chǎn)品經(jīng)理基本上在這里毫無作為。”工程師可以修改尚未正式上市的產(chǎn)品規(guī)格,在任何時(shí)間提出新的功能創(chuàng)意。

         工程師會(huì)在每月一次的不同團(tuán)隊(duì)例會(huì)上提交他們的成果。產(chǎn)品推廣經(jīng)理和產(chǎn)品經(jīng)理會(huì)出席這些會(huì)議,但不被鼓勵(lì)暢所欲言。“如果產(chǎn)品經(jīng)理在例會(huì)上暢所欲言,工程師們會(huì)向領(lǐng)導(dǎo)層反應(yīng)說,‘上次會(huì)議上他們有關(guān)產(chǎn)品的意見太多了’。”

在 Facebook,工程師想做什么,基本上都由他們自己決定。他們會(huì)找到主管,說:“這是我想做的五件事情。”產(chǎn)品經(jīng)理會(huì)說服工程師當(dāng)場(chǎng)試一試,讓他們親身體驗(yàn)這些項(xiàng)目的效果,但他們多數(shù)情況下不會(huì)對(duì)每位工程師的偏好橫加干涉。

         工程師們不會(huì)爭(zhēng)論某項(xiàng)功能是否值得嘗試,而是開發(fā)出原型機(jī)。接下來,工程師會(huì)用一周的時(shí)間開發(fā)某項(xiàng)功能并進(jìn)行測(cè)試,以確定它是否值得推出成品。通常情況下,新功能都是由 Facebook 員工親自測(cè)試。整個(gè)過程由一款名為“Gatekeeper”應(yīng)用控制。這是 Facebook “黑客”文化的主要組成部分——快速開發(fā)和推出產(chǎn)品,淘汰沒有市場(chǎng)前景的產(chǎn)品。

         在 Facebook,每個(gè)人都想?yún)⑴c后端產(chǎn)品的開發(fā)。可伸縮性和基礎(chǔ)架構(gòu)是工程師感興趣的兩個(gè)問題。所以,工程師很難對(duì)實(shí)時(shí)消息等前端產(chǎn)品感到興奮,相反,每個(gè)人都希望從事像 News Feed 算法這樣的后端產(chǎn)品。這種做法與其他消費(fèi)類科技企業(yè)的慣例背道而馳,在這些企業(yè),員工都希望參與前端產(chǎn)品的研發(fā)工作。

         Facebook 創(chuàng)始人兼 CEO 馬克扎克伯格(Mark Zuckerberg)會(huì)親自對(duì) News Feed 每個(gè)代碼更新把關(guān)。在 Facebook,所有重大升級(jí)的代碼都進(jìn)行強(qiáng)制評(píng)估,任何一個(gè)改動(dòng)都至少由一人把關(guān)。但是,無論工程師對(duì) News Feed 做出任何改動(dòng),都將由扎克伯格親自把關(guān)。

         Facebook 工程師負(fù)責(zé)測(cè)試產(chǎn)品功能,修復(fù)產(chǎn)品漏洞,對(duì)發(fā)布以后的產(chǎn)品進(jìn)行維護(hù),但他們并不是官方的質(zhì)保團(tuán)隊(duì)。不過,F(xiàn)acebook 仍然有負(fù)責(zé)質(zhì)量評(píng)估的工程師,并積極鼓勵(lì)每位工程師報(bào)告產(chǎn)品漏洞。

正常情況下,代碼升級(jí)會(huì)在每周二發(fā)布。Facebook 有專門的評(píng)估工具,告訴工程師代碼更新的風(fēng)險(xiǎn)有多大。

         運(yùn)營團(tuán)隊(duì)會(huì)逐步推出代碼更新。Facebook 共有大約 6 萬臺(tái)服務(wù)器,運(yùn)營團(tuán)隊(duì)會(huì)逐步將更新后的代碼發(fā)布到少數(shù)幾臺(tái)服務(wù)器上,確保它能起作用。開始是 6 臺(tái)服務(wù)器,接著慢慢增加。如果需要做出修改,那么這項(xiàng)工作會(huì)由提交代碼更新的工程師在線下完成。修復(fù)工作完成后,代碼會(huì)再次在那 6 臺(tái)服務(wù)器上先試用,接著增加到更多的服務(wù)器上。

         在代碼更新發(fā)布期間,運(yùn)營團(tuán)隊(duì)會(huì)通過 IRC 和其他實(shí)時(shí)聊天工具一對(duì)一通知工程師,他提交的代碼是否需要修改。如果修復(fù)以后的結(jié)果仍然難以令運(yùn)營團(tuán)隊(duì)滿意,當(dāng)事工程師會(huì)被“當(dāng)眾羞辱”,雖然李沒有提供有關(guān)這方面的具體細(xì)節(jié),但他說如果這種情況經(jīng)常發(fā)生,工程師會(huì)被炒魷魚。