7月6日消息,據國外媒體報道,Facebook的工程師們是該公司最為寶貴的財產。他們享有極大的自主權,同時他們也被告知需要快速地發布出精確的代碼。那么Facebook里的工程師們究竟是什么樣的呢?
谷歌員工李易(Yee Lee)通過與大量的Facebook代碼工程師交談,在其一篇博文中用巨大的篇幅揭露了Facebook工程師們的代碼發布流程。文中寫到,實際上與大家所想象的流程也相差無幾,唯一不同之處在于Facebook代碼的發布監管更為嚴格。
此篇博文盡管發布于1年之前,但其代碼發布流程自Facebook上市以來也未發生多大的改變。
Facebook的大多數員工都是工程師。其中最大的兩個團隊分別是Engineering和Ops,這兩個團隊的人數占據著Facebook大約一半的員工數。另外,公司內還有許多的產品經理,他們的主要工作是確保代碼能夠及時發布,每一名產品經理負責管理7到10名工程師。
一切都將從boot camp訓練營開始。Facebook所有的工程師都會經過4到6周的培訓,期間他們將學習以Facebook的方法來修復漏洞以及聆聽一些高級雇員舉行的講座。在經過boot camp訓練營之后,大約會有10%的工程師不能順利通過測試,接下來他們就會被勸退。
培訓之后,Facebook工程師們可以進入其內部數據庫。他們經常掛在口頭上的一句玩笑話就是“能力越大,責任越大”。任何一位工程師都可以檢查數據庫中的代碼并且修改這些代碼。
工程師們通常會得到一張“禁做之事”的單子,列明了各種工作中的禁忌,比如禁止分享用戶數據。盡管如此,Facebook還是會有許多監管措施來杜絕此類事情的發生。
與谷歌一樣,Facebook的企業文化也是以工程師主的。一名工程師表示:“產品經理在這兒基本上沒什么作用。”工程師可以修改一些尚在處理期間的產品,并且可以隨時提出新的點子。
在Facebook內部,工程師們在月度跨團隊交流會上會展示他們的產品。產品市場經理與產品經理也會出席這一會議,但不被鼓勵過度發言。
為一個新方案尋找所有的資源是完全出于自愿的,在Facebook里工程師們可以決定自己想干什么。他們可以去找產品經理并且說,“這五件事是我想干的。”通常,產品經理都會游說工程師團隊立即試試他們覺得比較有趣的點子。一般情況下,產品經理都不會干涉工程師的個人偏好。
與其爭論某一個點子是否值得執行,還不如做出原型機。之后,工程師們將會花費一周的時間來開發新產品,并且會測試新產品是否值得推出。整個過程將由一個名叫“Gatekeeper”的應用程序來控制,它是Facebook黑客文化一個主要部分——迅速構建、發布產品,并且淘汰那些無用的產品。
在Facebook里,每個人都想參與后端產品的開發,其中可量測性與基礎架構是工程師們最感興趣的兩個問題。因此,像諸如即時信息之類的前端產品很難激起工程師們的興趣,相反,每位工程師都想從事像News Feed算法這樣的后端產品。這與其他一些公司里截然相反,那兒的員工更希望參與前端產品的開發。
Facebook創始人馬克·扎克伯格(Mark Zuckerberg)會對每一個News Feed代碼更新進行審查。所有重大的更新都會強制進行代碼審查,并且所有的改動都會有至少一人把關。
Facebook并沒有相應的質量保證的職能部門。工程師們將負責測試產品特色、修復漏洞以及成品后期維護。實際上Facebook里有質量保證(QA)工程師,并積極地鼓勵每位工程師報告產品漏洞。
一般情況下,代碼升級會在每周二發布。
其運營團隊一般都逐步地推出代碼升級,Facebook大約有6萬臺服務器,因此運營團隊會將代碼先發布到少數幾個服務器上試運行,看是否能起作用,一般都是6臺服務器,然后慢慢增加。如果需要修復漏洞,那么這項工作將交付于工程師在線下完成,然后再將修復后的代碼重新發布到6臺服務器上,接著進行下一步,如此循環。
在代碼發布期間,運營團隊會使用IRC或其他實時聊天工具單獨通知工程師,告知其提交的代碼是否需要修改。如果工程師的修復結果仍不令人滿意,那么他將會被“當眾羞辱”。李易并未在博文中深入探討這個問題,但他說,如果這種事經常發生,那么這名工程師可能因此而被解雇。
推薦閱讀
動視暴雪此次罕見的舉動自然引發在場媒體的關注!傲可矶ㄖ啤薄ⅰ笆装l”等>>>詳細閱讀
本文標題:揭秘Facebook工程師文化:扎克伯格把關重要代碼
地址:http://m.sdlzkt.com/a/xie/20111229/148438.html