|
2013-01-17 作者: 來(lái)源:經(jīng)濟參考網(wǎng)
|
|
|
|
不斷發(fā)展、改進(jìn)公司的內部工具,可以極大地提高每個(gè)員工的工作效率,可以減少運營(yíng)人員的數量。這樣既改善了整體協(xié)調,又減少了整體開(kāi)支。 為幫助工程師更好地進(jìn)行產(chǎn)品開(kāi)發(fā),Facebook對內部工具(Tools)是非常非常關(guān)注的。招聘我進(jìn)公司的總監黃易山,就是這方面一個(gè)最有力的倡導者。他極力強調,公司要把最好的人才放到工具開(kāi)發(fā)那一塊,因為工具做好了,可以達到事半功倍的效果,所有人的效率都可以得到提高,而不僅僅是工程師。 Facebook有兩個(gè)工具組。一個(gè)叫研發(fā)工具組(Dev
Tools),專(zhuān)門(mén)負責研發(fā)工具的開(kāi)發(fā)和維護,包括所有有助于工程師開(kāi)發(fā)速度和質(zhì)量的工具,主要服務(wù)對象是內部工程師。另外一個(gè)叫網(wǎng)站支持和工具組(Site
Support and
Tools),主要負責公司里所有通用工具的開(kāi)發(fā)和維護,關(guān)注的主要是如何方便用戶(hù)和Facebook的交流以及Facebook內部的溝通,主要都是通信工具,服務(wù)對象是用戶(hù)和所有員工。 研發(fā)工具有哪些呢? 新的工程師剛加入Facebook時(shí),需要分配自己的開(kāi)發(fā)服務(wù)器,公司就做了一個(gè)工具來(lái)管理分配所有的開(kāi)發(fā)專(zhuān)用服務(wù)器。在一個(gè)頁(yè)面上,你可以很清晰地看到所有的開(kāi)發(fā)服務(wù)器,包括哪些人是現在的使用者、什么時(shí)候申請分配的、服務(wù)器的操作系統版本、配置信息等。對于空余的服務(wù)器,你可以一鍵申請,并自動(dòng)初始化該服務(wù)器。這讓剛加入的菜鳥(niǎo)們可以迅速地獲得自己的研發(fā)活動(dòng)空間。 工程師最重要的工作就是寫(xiě)代碼。針對代碼管理,公司也開(kāi)發(fā)了很多工具。我在這里介紹部分工具供參考。Facebook的代碼庫管理是通過(guò)一種叫GIT的開(kāi)源管理系統,為此開(kāi)發(fā)了一些工具來(lái)集成GIT。比如有一個(gè)工具是在提交代碼之前自動(dòng)檢測所修改的代碼是否符合公司代碼規范,如果不符合,該工具會(huì )自動(dòng)警告,但把決定權交給工程師。Facebook提倡對修改的代碼寫(xiě)測試案例,在代碼提交時(shí)自動(dòng)檢測是否存在覆蓋這些修改的測試案例,如果沒(méi)有則會(huì )警告,但工程師仍然可以強制提交。但這種情況下,代碼若出錯給網(wǎng)站帶來(lái)巨大危害的話(huà),工程師可能會(huì )被嚴厲批評,因為這本是可以避免的錯誤,是人性的狂傲忽視了工具的提醒。在代碼審查(Code
Review)方面,Facebook做了一個(gè)可視化的工具,現已開(kāi)源,叫Phabricator。工程師可以在頁(yè)面上非常方便地針對每一段(單行或者多行)代碼進(jìn)行交互討論;負責審查的工程師可以接受代碼改變,可以提出疑問(wèn)要求原作者繼續修改,可以提出自己不適合以退出該代碼審查,等等。只有代碼被明確接受后,才能被工程師提交到服務(wù)器端的代碼庫,這一點(diǎn)被集成到提交工具中強制執行。這些工具的基本理念就是,凡是被很多人不斷重復的好習慣,要將其自動(dòng)化,綁定到工具之中。以“Don’t
Make Me
Think”(別讓我多想)的方式來(lái)推廣好習慣。 Facebook的代碼發(fā)布是灰度發(fā)布,所以開(kāi)發(fā)了一個(gè)方便設計灰度發(fā)布的工具。在這個(gè)工具中,工程師和產(chǎn)品經(jīng)理(也可以授權給其他非研發(fā)人員)可以設計新產(chǎn)品發(fā)布的目標人群特點(diǎn)(比如對年齡、性別、地域、受教育程度等方面的限制)及發(fā)布的人群比例(在0%~100%之間自由調整),所有的改變都不需要修改代碼,只需要在工具頁(yè)面上點(diǎn)擊鼠標即可,讓灰度發(fā)布變得很輕松。 發(fā)布過(guò)程由一個(gè)利用點(diǎn)對點(diǎn)(Bit
Torrent)算法實(shí)現的工具進(jìn)行多線(xiàn)程同時(shí)發(fā)布,更新幾十萬(wàn)臺機器只需要幾十分鐘。由于是不間斷地發(fā)布,對公眾的服務(wù)不可以停,所以Facebook會(huì )將一部分機器從公眾服務(wù)狀態(tài)中拿下來(lái),更新之后再放回,然后繼續下一批,直到所有機器都被更新。這樣就可以保證在任意狀態(tài)下都有足夠多的機器來(lái)支持用戶(hù)訪(fǎng)問(wèn)。整個(gè)過(guò)程都是通過(guò)工具自動(dòng)實(shí)現的。而監控這個(gè)發(fā)布過(guò)程的進(jìn)展,也有一個(gè)工具用于監測并且將其進(jìn)度可視化,你可以很方便地看到哪些服務(wù)器更新了,現在正在更新哪些服務(wù)器,整個(gè)網(wǎng)站的進(jìn)度是百分之幾,等等。 發(fā)布之后的數據監測更是重點(diǎn),Facebook做了很多工具使之變得容易。數據收集只要1~2行代碼即可完成,數據的整理、分類(lèi)和存儲皆在后臺的上萬(wàn)臺服務(wù)器上自動(dòng)完成,數據的可視化報表只需要通過(guò)一個(gè)頁(yè)面工具點(diǎn)點(diǎn)鼠標設置便可即時(shí)生成,不需要任何代碼。數據波動(dòng)的自動(dòng)警報也可以設置,可以自動(dòng)發(fā)郵件、發(fā)短信,可以要求24小時(shí)全球輪班的站點(diǎn)穩定工程部門(mén)(Site
Reliability
Engineering)按照你既定的反應方案去解決。如果還不行,最后會(huì )打電話(huà)給你,直接把你從床上拽起來(lái)。在Facebook工作的四年半時(shí)間里,這樣的事件至少在我身上發(fā)生了10次。 還有一種工具是人為的,我們組經(jīng)常用,就是把最最重要的目標及相關(guān)的任務(wù)、目標日期、負責人等信息寫(xiě)到白板上,掛在離我們最近的墻上。每天一抬頭就可以看到,每次開(kāi)會(huì )都會(huì )路過(guò),時(shí)刻提醒我們最最重要的事情是什么,這種工具對我們組非常有效。 網(wǎng)站支持和內部通信工具有哪些呢? 在如何處理用戶(hù)和Facebook之間通信這個(gè)問(wèn)題上,針對常見(jiàn)的問(wèn)題(尤其是關(guān)于如何使用某項功能的問(wèn)題),Facebook在用戶(hù)提交時(shí),嘗試將其引導到網(wǎng)站幫助或FAQ的頁(yè)面。但這并不能滿(mǎn)足所有人的需求,尤其是和個(gè)人特殊情況相關(guān)的問(wèn)題,仍然有很大一批用戶(hù)會(huì )堅持提交問(wèn)題,這時(shí)候Facebook內部處理工具就要把問(wèn)題自動(dòng)分配(Routing)到最相關(guān)的運營(yíng)組,比如,和支付欺詐相關(guān)的問(wèn)題應當自動(dòng)分配給反欺詐運維組的那十幾個(gè)人。然后,工具會(huì )提供常見(jiàn)的通用解決方案,比如,若選擇退款,可以做到一鍵退款,絕大多數回信內容自動(dòng)產(chǎn)生(用戶(hù)姓名、原問(wèn)題等個(gè)體信息都會(huì )自動(dòng)嵌入),運維人員可以選擇要不要修改內容,然后發(fā)送。如果針對某一個(gè)功能的問(wèn)題突然多起來(lái),工具會(huì )自動(dòng)發(fā)現并提醒運維人員手動(dòng)查看,運維人員可以根據實(shí)際情況決定要不要工程師介入尋找并修復可能的問(wèn)題根源。所有用戶(hù)問(wèn)題的回復率、回復滿(mǎn)意度、交互次數等信息都會(huì )被統計或抽樣統計,以保證客戶(hù)服務(wù)的質(zhì)量。 另外一個(gè)重要工具是招聘工具。Facebook有一套專(zhuān)門(mén)的做題系統(Puzzle
System)嘗試去篩選可靠的工程師。這套系統是一個(gè)專(zhuān)門(mén)的招聘工程(Recruiting
Engineering)組做的,包括題庫的管理和更新、自動(dòng)提交系統和打分系統等。如果在解題這個(gè)環(huán)節脫穎而出的話(huà),公司獵頭(Recruiter)會(huì )給工程師打電話(huà),安排他下一步的電話(huà)面試。另外一種獲得電話(huà)面試的途徑是通過(guò)內部推薦。所有的內部推薦都是通過(guò)專(zhuān)門(mén)的人才提交工具上傳簡(jiǎn)歷,這個(gè)工具和整個(gè)招聘系統結合,并注明這是一個(gè)內部推薦、誰(shuí)是推薦人。而整個(gè)面試過(guò)程里,包括誰(shuí)應該參與面試,誰(shuí)實(shí)際參與了面試,每一步面試官對應聘者的評價(jià)和打分,都在工具里被很好地記錄和顯示出來(lái)。當然還有必不可少的權限控制——只有參加面試的人員才能夠看到關(guān)于應聘者整個(gè)流程的所有資料。最后,該工具允許打印所有的相關(guān)資料以幫助決策委員會(huì )在討論該應聘者時(shí)擁有全部的相關(guān)數據。 還有一個(gè)重要的工具,就是每六個(gè)月一次的業(yè)績(jì)評價(jià)工具。這個(gè)工具允許員工對自己評價(jià)、員工互相評價(jià)、員工和老板之間互評等,還要考慮權限的管理。這并不是一個(gè)很容易開(kāi)發(fā)的工具,一開(kāi)始是內部開(kāi)發(fā),但后來(lái)還是決定使用Rypple來(lái)提供專(zhuān)業(yè)的業(yè)績(jì)評價(jià)工具。 從這些工具可以看出,Facebook是一家工具驅動(dòng)的公司,但這并不表示所有工具都要公司自己開(kāi)發(fā)。必須清楚的是:工具開(kāi)發(fā)是手段,而不是目的,Facebook的目的是打造一個(gè)最好的社交網(wǎng)站。因此,對于某個(gè)需要的工具,如果有更專(zhuān)業(yè)的人做得更好的話(huà),Facebook非常樂(lè )意付費購買(mǎi)他們的服務(wù),而把精力集中在核心產(chǎn)品上。這就是為什么Facebook會(huì )花大筆錢(qián)購買(mǎi)數據庫軟件MySQL的支持服務(wù)。 還有很多其他工具。Facebook希望通過(guò)工具來(lái)解決所有可能想到的問(wèn)題,比如,要請假有相應工具,你可以說(shuō)明休息多長(cháng)時(shí)間,需要讓哪些人知道這些情況等;所有新想法的提出、討論,讓網(wǎng)絡(luò )頭腦風(fēng)暴變成了可能;各種電子設備如電腦、手機等IT服務(wù)的請求和處理,通過(guò)工具來(lái)解決……能夠想到的地方就盡可能用工具。與物理工具不同,計算機工具可以實(shí)現“杠桿效應”的反復累積,通過(guò)組合這些“杠桿效應”可以達到更高的層級。 因此,公司的工作效率,影響到你需要雇用的員工數,影響到公司的成本究竟是多少,并將直接影響到公司內部產(chǎn)品的獨創(chuàng )性。黃易山就認為,工具團隊不應該是一個(gè)由二線(xiàn)員工組成的“事后諸葛亮”的后勤部門(mén),公司里最有才華的工程師應該用公司自己的工具來(lái)工作,并且企業(yè)文化里要優(yōu)先反映這些。編寫(xiě)出優(yōu)秀的工具并繼續加以改善、更新,這比尋找下一個(gè)偉大的創(chuàng )意更重要。 我最近跟國內一些技術(shù)公司的高管們討論過(guò)有關(guān)工具的話(huà)題,有些人非常贊同,也想通過(guò)工具來(lái)解決很多工程性問(wèn)題。比如你要在公司里推廣一些規范性的規則,一種傳統的方法是反復強調,另一種是開(kāi)發(fā)出好用的工具,把這些東西固定化在里面,借助工具進(jìn)行強制性推廣,就能解決很多問(wèn)題。Facebook沒(méi)有專(zhuān)門(mén)的軟件質(zhì)量測試人員,都是工程師自己進(jìn)行。公司就有這方面的工具,把測試過(guò)程中重復性的工作集中起來(lái),自動(dòng)化實(shí)現,只有一些必須要個(gè)性化處理的部分由工程師具體再去做。我在開(kāi)發(fā)反欺詐系統時(shí),將欺詐案例識別直接拋給人工處理當然是最簡(jiǎn)單的方式,但我們希望通過(guò)自動(dòng)處理來(lái)解決大部分欺詐案例,而把精力放在那些確實(shí)需要單獨處理的特殊案例上,最后決定的方向是“進(jìn)行自動(dòng)處理”和“建立反饋機制”,設計出用于用戶(hù)報告(外部工具)和案例審查(內部工具)的工具。這樣一來(lái),我們也可以自動(dòng)采集客戶(hù)支持部門(mén)的處理意見(jiàn),并集成到下一輪的機器學(xué)習中去,工具會(huì )越加精確、聰明,且與時(shí)俱進(jìn)。 Facebook在
2005~2006年的發(fā)展中,公司根據不斷增長(cháng)的用戶(hù)數量,聘請了成比例的客戶(hù)服務(wù)人員。當后來(lái)有1000萬(wàn)用戶(hù)時(shí),公司的客戶(hù)服務(wù)人員還不到20個(gè)。到Facebook的用戶(hù)數量達到1億時(shí),很明顯,公司不能用相同的速度來(lái)增加員工數量,所以公司讓內部方案團隊與客戶(hù)服務(wù)分析師更加緊密地配合,推出了更具創(chuàng )新性的工具和用戶(hù)界面,極大地提高了客戶(hù)服務(wù)部門(mén)的工作效率。通過(guò)內部工具團隊研發(fā)的產(chǎn)品,客戶(hù)服務(wù)部分析了目前已完成建立的工作并創(chuàng )建了定制方案,方法是讓電腦去做可自動(dòng)化處理的部分并優(yōu)化用戶(hù)體驗,這樣客戶(hù)服務(wù)分析師就可以專(zhuān)注于人工最擅長(cháng)處理的事務(wù)。 不斷發(fā)展、改進(jìn)公司的內部工具,可以減少招聘運營(yíng)人員的費用,讓每個(gè)員工的效率更高,這樣既改善了整體協(xié)調(員工數量少意味著(zhù)協(xié)調更容易進(jìn)行),又減少了整體開(kāi)支。如今,Facebook每一位工程師服務(wù)的用戶(hù)數均超過(guò)100萬(wàn)人,隨著(zhù)用戶(hù)數量的持續增長(cháng),這種效率優(yōu)勢將更加明顯。 不過(guò)有一個(gè)現實(shí)問(wèn)題是,工具團隊要招聘新員工有一定難度。Facebook的用戶(hù)已經(jīng)達數億,而且還在不斷增長(cháng),如果你開(kāi)發(fā)的是直接面向用戶(hù)的產(chǎn)品,每天有那么多人在使用,那成就感顯然非常棒。而你要說(shuō)服新員工去開(kāi)發(fā)內部工具,稱(chēng)這樣可以帶給工程師以及其他同事更高的效率、最終幫助公司做出更好的產(chǎn)品,這個(gè)理由顯然缺乏吸引力。所以,工具團隊在招聘上花了很多工夫,想各種辦法找到合適的人。 一種方式是用一些通過(guò)提高效率的具體案例和數據來(lái)做理性說(shuō)服,這需要在開(kāi)發(fā)工具的同時(shí)檢測工具使用前后的效率變化。當然,為了吸引內部最好的人才愿意到工具團隊,企業(yè)文化中也一定要著(zhù)重反映出這一點(diǎn):公司將內部工具視為持續的重要投資,以保持公司的領(lǐng)先地位。集中精力努力說(shuō)服幾位頂尖工程師加入工具組,具有很好的示范效果和磁鐵效應。如果真正做到如此重視,最優(yōu)秀的工程師是愿意加入工具團隊的,這樣可以大大提升同事們的效率,從而更好地服務(wù)于用戶(hù),這也是一種外部用戶(hù)所感受不到的成就感。
|
|
凡標注來(lái)源為“經(jīng)濟參考報”或“經(jīng)濟參考網(wǎng)”的所有文字、圖片、音視頻稿件,及電子雜志等數字媒體產(chǎn)品,版權均屬經(jīng)濟參考報社,未經(jīng)經(jīng)濟參考報社書(shū)面授權,不得以任何形式刊載、播放。 |
|
|
|