从 0 到 300,Instagram 创始人 CTO 分享工程团队成长的经验
最初,Instagram 被 Facebook 收購時公司只有六個工程師,且都是全棧。本文Instagram 創(chuàng)始人兼 CTO Mike Krieger 分享了創(chuàng)業(yè)初期并在資源有限的情況下,人才招聘、技術(shù)專攻的實踐經(jīng)驗,將時間、精力用在最有價值的地方。以下為譯文:
不管怎樣 Instagram 所奠定的里程碑還是很不可思議的。從整個初創(chuàng)企業(yè)生態(tài)系統(tǒng)的建立到吸引科技巨頭 Facebook 的注意,且花了一億美元來收購,僅僅用了一年半的時間。但從 2012 年被收購時的每月 3 千萬的月活用戶到兩年后 2 億的月活,到現(xiàn)在的 7 億,用戶數(shù)量指數(shù)式的增長,這都是難以置信的結(jié)果。
事實上,聯(lián)合創(chuàng)始人兼 CTO Mike Krieger 有著他們自己的一系列的里程碑,具體與如何擴展技術(shù)團隊和獲取最多的關(guān)注緊密相關(guān)。在被收購的時候,他們只有六個全棧開發(fā)工程師。現(xiàn)在他是 300 多位工程師團隊的舵手,可以迅速推出新功能和產(chǎn)品。在短短的 7 年時間里,Krieger 從新手管理者逐漸成長為可以帶領(lǐng)多層組織的專業(yè)工程師,其中他們很多都是當(dāng)前領(lǐng)域中最優(yōu)秀的。
本文中,他分享了創(chuàng)業(yè)中獲得的經(jīng)驗——這些也是他自己想回到 2010 年,告訴他自己的一些事情。此外,他也分享如何優(yōu)雅的從一個早期團隊轉(zhuǎn)變到一個更加成熟的技術(shù)團隊;如何引入新的管理層次;怎么為不斷改進(jìn)和創(chuàng)新制造動力,希望給同行提供一定的借鑒。
組建初創(chuàng)團隊來滿足早期需求
為了讓一個創(chuàng)業(yè)團隊發(fā)展起來,有幾個東西需要有充足的準(zhǔn)備——勤勞、精力和解決問題的能力。是否需要專業(yè)的工程師?通常情況下不需要。在這個階段全棧工程師更勝任,Krieger 根據(jù)他的經(jīng)驗給全棧工程師定義了一些很重要的特征和能力,這樣他們才能夠幫助公司進(jìn)入到下一個階段:
1、需要懂得什么時候剪牦牛毛
Krieger 說:“你聽過‘剪牦牛毛’這個行話嗎?有時編程需要解決一些超級復(fù)雜的技術(shù)問題。但是最終很多時候你會得到一連串的任務(wù)來完成這個技術(shù)難題,例如,‘我需要讓這個 iPhone 的 App 在我的設(shè)備上也能運行,這意味著我需要生成配置的概要文件,接著我需要注冊一個賬戶,然后還有連續(xù)不斷的東西。’最后,你這就是在剪牦牛毛來完成最初的想法,然后你發(fā)現(xiàn)你已經(jīng)離它越來越遠(yuǎn)。”
當(dāng)你在組建全棧工程師團隊的時候,你需要那些準(zhǔn)備好了而且愿意頂住風(fēng)險直至最后的人。你需要的是那些愿意學(xué)習(xí)新技術(shù)的人,這些技術(shù)可能會在他們的工作職責(zé)描述之外。
為了找到這樣的人,下邊列舉一些你可以嘗試的面試問題:
聊一聊最近的業(yè)余項目或者工作項目;在實際項目中處理過什么樣的“牦牛毛”?
是否做過跨學(xué)科的項目,或者一開始還不熟悉的項目?
2、知道什么時候牦牛毛是不值得剪的
話雖如此,在創(chuàng)業(yè)公司初期沒有比工程師的時間更寶貴的東西了,因此每個人都需要確保自己聰明地利用時間。Krieger 說:“人們可能沉醉在剪牦牛毛的過程中。”一個高效的全能工程師知道何時該抽身而出,繼續(xù)往前推進(jìn)。
Krieger 回憶了早期 Instagram 的日子,那時他剛獲得了現(xiàn)在還認(rèn)為是最好的建議:監(jiān)控一切。
最開始,會花費四到五個小時的時間來嘗試搭建一個領(lǐng)先的免費網(wǎng)絡(luò)監(jiān)視工具——Nagios。“最后我重新構(gòu)建這個產(chǎn)品。因為我決定修復(fù)這個并不完美且有些復(fù)雜的警告解決方案,整體來看,我當(dāng)天就可以完成,接著再去做其他的事情。”
類似的,你可能也會遇到一些可以自己完成的東西。但是一個好的解決方案已經(jīng)存在的話,你也應(yīng)該這樣嗎?“早期我們認(rèn)為,‘我們知道怎么實現(xiàn)推送通知。但是 Urban Airship(領(lǐng)先的移動應(yīng)用互動、移動分析、移動數(shù)據(jù)集成的營銷解決方案) 已經(jīng)存在’”。那么,現(xiàn)在把你的驕傲放在一邊,時刻讓注意力保持在真正的目標(biāo)上。“目標(biāo)不是實現(xiàn) Nagios 或者 Munin(Linux監(jiān)控工具)。真正的目標(biāo)是推動產(chǎn)品,這樣你才能讓人們使用它。”
以下就是 Krieger 判斷一個人是否會剪牦牛毛上癮的檢測辦法:
Krieger 和團隊會讓工程師花幾個小時的時間來開發(fā)一些東西,例如簡單的手機 App 或者后端系統(tǒng),如果他們有問題可以向 Instagram 團隊請求協(xié)助。他說:“這可以幫助那些花費很長時間來搭建編程環(huán)境的工程師。”注意他們是否聰明的利用了他們的時間,而不是只關(guān)注結(jié)果。
3、注重行動導(dǎo)向
你不能一次完成所有事情,那么哪些是創(chuàng)業(yè)公司首要的、哪些是第二位和以及第三任務(wù)?這些都需要我們自己來理清。在 Instagram 的早期,Krieger 和他的團隊在 Google Doc 上以主題的方式記錄日志。
“其中一個主題就是成為世界上最快的圖片分享 App。圍繞著這個主題我們做了什么呢?接著,我們想讓這些圖片看起來不可思議,超出我們對手機照片期望。圍繞這個我們又做了什么呢?把不相關(guān)的事情都放到一邊。然后讓滿足要求的工程師們來實現(xiàn)。”
Google Doc 是用來跟蹤團隊任務(wù)的一個產(chǎn)品的最佳可行方法,確保團隊的每個人都能參與到公司最終要達(dá)到的目標(biāo)里來。它被分解成很多天,然后幾天圍繞著一個主題。每個主題中沒完成的任務(wù)就自動遷移到第二天。最高優(yōu)先級的任務(wù)被會標(biāo)記。這樣的話,在混亂中就不會搞丟任務(wù)了,同時人們也可以很容易的評論和提問,他們的注意力也會一直關(guān)注在下一個他們需要完成的目標(biāo)上。
盡早建立一個團隊是很重要的,你可以通過這樣類型的系統(tǒng)來推動團隊,并將重點放在與公司成功相關(guān)的無休止的任務(wù)中。這意味著不要雇傭或者同那些只做自己的事情而不關(guān)注公司的長遠(yuǎn)計劃的人一起工作,或者那些浪費時間去選擇不需要很大壓力就可以完成的任務(wù)的人。
下面這些問題就可以用來向員工提問從而判斷他們是否適合行動為導(dǎo)向:
講一件個人特別引以為傲,平衡了功能完整性、優(yōu)化和時間的任務(wù)。Krieger 說:“你需要的是一個微妙的答案而不是一個絕對的回答。例如‘我們只有在準(zhǔn)備好以后才發(fā)布產(chǎn)品’或者‘我們每個任務(wù)都在截至日期前完成了’這兩個回答我都聽過。
招聘有激情的、靈活的全棧工程師
雖然大公司的優(yōu)勢是擁有機械化的招聘團隊,但創(chuàng)業(yè)公司也有自己的優(yōu)勢:他們可以跳出盒子,有的人可能不滿足公開的職位要求。但是 Krieger 回憶起他和聯(lián)合創(chuàng)始人 Kevin Systrom 招聘的第一個工程師,Shayne Sweeney,就是一個典型的例子。“他沒有完成大學(xué)學(xué)業(yè)。他完全就是一個自學(xué)成才的程序員。我們遇見他完全是因為我們在 Dogpatch 實驗室的 38 號辦公,而他剛好在我們對面。但是他散發(fā)出一個創(chuàng)業(yè)公司所需的氣質(zhì)。‘我有一個想法,我會學(xué)任何知識,想盡辦法來實現(xiàn)它。’”
雖然他坐在你對面,但是你怎么去評估他有這種類型的動力?在 Krieger 的經(jīng)驗中,作為基本的個性特質(zhì),一般和明顯好奇是緊密相關(guān)聯(lián)的。所以對于創(chuàng)業(yè)者來說,注意尋找對話中自然流露出來的求知欲。“我們感興趣的候選人是那些會說,‘這個周我對 Go 這個游戲非常感興趣,所以我做了一個 Go 的原型來學(xué)習(xí)這個東西”而不是“我所在的公司使用 React,所以我才用 React的。’”
你可以采取一些策略,在面試的時候提給面試者來推斷出是否具有好奇心。Krieger 說:“特別是在創(chuàng)業(yè)早期,我喜歡問,你對哪些業(yè)余項目感到很興奮?你上一次掉進(jìn)兔子洞是在哪個特定的項目中?學(xué)到了什么?”
當(dāng)人的眼睛發(fā)光的時候,就是有什么東西讓他感興趣,你找到了激情,而不是需要一份職業(yè)的人。創(chuàng)業(yè)早期你需要很多的激情,因為任務(wù)肯定不會掉進(jìn)小盒子里。
靈活性在開始階段也是相當(dāng)重要的,這意味著不需要雇傭那么多很有能力候選人(選那些合適的就可以)。
Krieger 說:“記得我面試過一個小伙子,他是我見過的最厲害的 iOS 工程師之一。但是在我們的交談中,他強調(diào):‘你也知道,我不會去做服務(wù)端的工作。我認(rèn)為那樣會浪費我的時間。’這個就是一個有效的意見”。麻煩的是,對于那個時候的 Instagram 來說,這種心態(tài)過于專業(yè)了。“我們不想讓他們豎面墻在那里,然后說這里有個東西需要服務(wù)端來開發(fā)。”
雇傭那些可以在不同領(lǐng)域間切換的人,那樣可以保持工程師團隊的敏捷性。同時也幫助你避免了很多陷阱。Krieger 講到:“我記得和 Kevin Rose 討論 Digg 的時候,他說他們早期犯下最大的錯誤就是找了當(dāng)時最滿足他們正要在用的技術(shù)的人。這個問題有兩個原因。第一就是你想擴展你的技術(shù)。第二就是如果人們把他們自己的工作固定限制的太窄,比如說一直使用 PHP,你最終可能就會做出一個錯誤的技術(shù)選擇。”
他最后一個建議就是優(yōu)先采取多樣化的方式來雇傭員工,而不是用新公司通常會做的那樣。雇傭一個多元化團隊的優(yōu)勢是多種多樣并且充分的覆蓋了最近的科技論文。但是在瘋狂的早期,創(chuàng)業(yè)公司可能會認(rèn)為這些教訓(xùn)并不適用于他們,或者說這些都排在優(yōu)先列表的最后一位。
Krieger 說:“我們沒有過多的強調(diào)在創(chuàng)業(yè)早期要雇傭多樣化團隊。”這讓公司一旦成長起來,婦女和沒有多少代表性的少數(shù)民族和背景越來越難。他還說:“如果你正在面試你的第一位女性工程師,她很興奮的想:‘哇,這個團隊好大,還有那么多的男生’,這就讓隔閡更高了。這些確實有發(fā)生,如果你可以避免這些問題,你們就可以有著更好的狀態(tài)。”
那么盡早的建立多元化的團隊,你們會進(jìn)入良性循環(huán)。Krieger 說:“一旦有女生加入到團隊中,我們就可以招到更多的女生,從創(chuàng)造事件到面試再到寫技術(shù)博客都是可見的,這些都是為了讓我們成為強大的團隊。”不要忽視對這些發(fā)聲的價值。假設(shè)這些是一個優(yōu)先事項,在面試的時候不會給候選人建立聯(lián)系或者吸引你真正想要的候選人的興趣。直到他們聽到或者從你那看到兩次或者三次,或者直到你的團隊展示出了你的愿景,他們可能才會成為你的候選者。
不要放棄對專業(yè)化的需求
接下來的 Instagram 的故事是硅谷傳奇的一部分:2012 年這個只有 13 個人的公司被 Facebook 收購了。從那以后,Krieger 和 Systrom 就可以單獨招聘或者從 Facebook 的訓(xùn)練營中招聘。他們有著品牌標(biāo)志,然后突然迎來了很多帶著不同期望的候選者。當(dāng)然不是每個初創(chuàng)企業(yè)都有這些條件,但是無論你的情況怎樣,接下來的多元化和專業(yè)化都會在你的團隊中發(fā)生。
隨著功能和需求的增加,團隊感覺需要一些專業(yè)的專注于某些技術(shù)的工程師,比如說 iOS 和 Android 工程師,他們可以把產(chǎn)品分解成很多模塊,從而使得產(chǎn)品比以前更好。這在一個創(chuàng)業(yè)公司的生命周期中相當(dāng)常見時刻。這意味著你需要朝著這個方向前進(jìn):
你正在發(fā)明一些超出你所工作平臺提供能力的東西。
你開始朝新的市場遷移,這些需要深入調(diào)整代碼。以 Instagram 的例子來說,就是讓視頻在爆發(fā)的市場上正常的工作。
你的代碼塊已經(jīng)很龐大了,需要技術(shù)來引領(lǐng)未來的成長。
隨著越來越多的專業(yè)工程師(例如 iOS 和 Android 工程師)加入 Instagram,現(xiàn)在的團隊是可以做的,全棧工程師第一次遭遇專業(yè)化。
Krieger說:“我們知道有規(guī)范的方式來完成這些事情。有時它很教條;有的時候它卻有個很好的理由。”他回憶了一個很簡單的甚至很無聊的例子:Instagram 是他和 Systrom 的第一個大型的 Python 項目,所以他們很早就在一起規(guī)定了一些代碼約定。“后來的 Python 工程師就會說:‘為什么你的等號兩邊都有空格呢?’我們只是覺得這樣看起來不錯。他們會想:‘沒有人那樣做呀。’”
最后你想引領(lǐng)大家朝著工業(yè)標(biāo)準(zhǔn)的方向前進(jìn),因為這樣可以讓新人更輕松的融入到團隊中。(是的,Krieger 最后還是回去把他的 Python 代碼改來和其他人的看起來一樣。)你可能會以你早期零散的方式來抵制某種程度的專業(yè)化。放棄這種嘗試。你雇傭了專業(yè)的人是有原因的,所以讓他們帶來他們的經(jīng)驗吧。
我把基礎(chǔ)設(shè)施都連接起來,考慮到我那個時候的理解層次,系統(tǒng)的健壯性讓我感到驚訝。但是在有的時候,你需要有人來檢查瀏覽代碼從而可以構(gòu)建出一個真正的墻而不是你做的一個腳手架。
當(dāng)把現(xiàn)在的團隊分成日益專業(yè)化的結(jié)構(gòu)時,他們通常都會關(guān)注自己。“即便是我們的全棧工程師也偏好某一個領(lǐng)域。”這是一個簡單的方式來給工程師解釋成熟的組織需要什么,這樣他們就看了就自然而然的明白了。有的明確的標(biāo)明了 iOS,其他的是基礎(chǔ)設(shè)施等等。一旦你注意到這一點,讓他們坐下來用心交談,如果他們開放的話,你就可以充分的開發(fā)他們的大腦了。承認(rèn)他們的技能是多么的稀缺,以及他們可能會給公司帶來的好處。
專業(yè)化也不是就意味著拋棄讓你發(fā)展起來的那些靈活性,或者幫他們放的高高在上。Krieger 說道:“那些早期的全棧工程師已經(jīng)擴展了他們的事業(yè),這已經(jīng)讓他們成為了更好的工程師。”
拿第一個招聘的人 Shayne 來說。“有一次我們想嘗試讓我們測試閉環(huán)的更快。構(gòu)建和發(fā)布花費了很長的時間。最后的解決方案就是基礎(chǔ)架構(gòu)一個,這個需要寫大量的 Python 腳本。我沒從基礎(chǔ)架構(gòu)團隊找一個工程師來,我對 Shayne 說:“你了解端到端的東西,你自己找到一些辦法來創(chuàng)建一個 MacBuildServer 吧。”
那些有著深度的端到端知識的開發(fā)人員就是一個很好的資源,比那些專業(yè)的人更有優(yōu)勢。他們可以讓團隊中其余的人工作更高效。
在你能勝任之前你需要一個管理者
正如你團隊里的工程師需要成長一樣,你的領(lǐng)導(dǎo)能力也需要成熟。在最初,你的領(lǐng)導(dǎo)能力可能很平庸。不必要的管理陷阱會損壞作為小公司最大資產(chǎn)的開發(fā)敏捷性。同時也不是說創(chuàng)始人可以放任團隊讓他自己發(fā)展。
在你有真正的管理動作之前,必須具備管理能力。
那么“管理行為”的效果會怎樣?舉一個簡單的例子:一對一。Krieger說:“我們開始做這些工作的時候已經(jīng)有一年半至兩年的時間了,現(xiàn)在會發(fā)出感嘆‘哇,原來有這么多內(nèi)容沒有人去討論。’”最后是 Instagram 在 Benchmark 的伙伴 Matt Cohler 支持下才有了動力。
回想起來,Krieger 知道壓力在編譯階段,但是他們都會幸運的及時發(fā)布。“但是它也是一個拓展我眼界的時刻。當(dāng)你是一個創(chuàng)始人的時候,你會暗地里開心,或者那不是你問的一個問題,因為這個公司是你的小孩,你會努力讓他成長,有人加入就意味著增加了成功的可能,但是他們也是活生生的,有著呼吸的人,有著欲望和需求和很多問題。當(dāng)我們開始有更多的管理的時候我們才從全棧工程師變成專家。回憶起來,我覺得我可以做的更快。”
實施管理行為本身是很重要的,但是它也是一個有價值的衡量標(biāo)準(zhǔn)。當(dāng)你是一個創(chuàng)始人或者早期的領(lǐng)導(dǎo)人時,當(dāng)你不滿足你當(dāng)前產(chǎn)品的需求,和管理任務(wù)時,就是時候找另外一個管理人了。當(dāng)你認(rèn)為你有 90% 的可能性確認(rèn)需要一個人的時候,你就確實該有一個管理者了。
Krieger 說:“我在 Instagram 和其他我給過建議的公司,一次又一次的見過,一旦你增加了一個管理的職位,一個你可能也不知道是給什么準(zhǔn)備的,你發(fā)現(xiàn)你只知道需要完成任務(wù)里最高優(yōu)先級 5% 的內(nèi)容。另外的 95% 卻因為沒有指定人則沒有完成,對于我們的管理者,應(yīng)該加速我們的招聘流程,規(guī)劃任務(wù),考慮 App 的未來規(guī)劃。我用一周的一天時間來思考這些東西是遠(yuǎn)遠(yuǎn)不夠的。”
以下是他對從公司內(nèi)外選擇管理者的建議:
1、從內(nèi)部提拔
Krieger 最開始采用的是這種方式,Instagram 的最初的工程師團隊管理者就是那些團隊中擁有最長工作經(jīng)驗的人。這種方式提供了一些自然的優(yōu)勢,主要是對團隊的其他人很有話語權(quán)。“選擇那些元老級別的人的好處就是他們會招聘現(xiàn)在就給他們匯報的人。這樣感覺就是管理行為了,同時這也成為團隊其他人的動力。”
同時,他承認(rèn)他很幸運因為這種方式行得通,因為這不是自然而然的或者最好的一個選擇。Krieger 說:“根據(jù)工作時間來選擇技術(shù)領(lǐng)導(dǎo)一直都是一個有效的辦法,但不是一個選擇管理者的明智辦法。”如果他們對這個成長路徑有興趣那你就讓他們成為管理者,但是確保一定要溝通了解清楚。
現(xiàn)在,Krieger 確保他所有的管理者都與他們的團隊進(jìn)行了職業(yè)規(guī)劃談話,并且通過找到有興趣或者天賦的管理者來考核他們。“我的理念是,如果我們有工程師感興趣,我們會經(jīng)常讓他們嘗試一下,并給他們一定的指導(dǎo)。”
和新的管理者一起檢查,讓他們知道如果他們需要是有一個退出通道的。即使那些自己認(rèn)為他們想要這個角色的人最終也會發(fā)現(xiàn)這會讓他們感到痛苦不堪。“在過程中設(shè)置一些檢查點,比如說每六個月。‘你是否還很愉快?你還想繼續(xù)嗎?你是否想放棄,回去繼續(xù)做一個獨立的貢獻(xiàn)者呢?’確保人們是以最興奮的方式在工作,如果不是,他們會感到沮喪然后離職,或者他們的團隊會感到不開心。”
2、從外邊招聘
即使你從內(nèi)部晉升,你最終還是需要從外界尋找新的管理者。用 Instagram 的例子來說,這時正當(dāng)基礎(chǔ)架構(gòu)組需要一個管理者,但是這個團隊中沒有一個工程師對這個工作感興趣。他說:“如果內(nèi)部晉升管理者讓人感到害怕,那么雇傭我們的第一位來自外界的管理者則是 10 倍的害怕。那是我們面試的第一位管理員工。”
很少有人會管理著一個年輕的團隊還出來找工作的,所以幾乎沒有候選者或者都很遠(yuǎn)。“如果你正處在這個階段,你通常會為了美好的生活堅持,同時試著發(fā)展你的團隊。”通常情況下,這個你需要找的人是那些以前在這種環(huán)境下成長起來然后現(xiàn)在正管理著一個大的團隊的人。“他們可能感覺和工作有點分離,或者會很興奮的回到以前的那種有很多事做的時期。認(rèn)真的分析判斷他們?yōu)槭裁磿尤肽氵@個又小又復(fù)雜的團隊。”
篩選出那些因為你團隊太小而放棄的人,他們是沒有看到團隊增長的潛力。“如果你在 2012 年的時候?qū)徱?Instagram,我們有大約 8 個人的工程師團隊,每月 3 億的訪問量。你知道我們必須要成長。所以我們不能雇傭那些還需要去實踐的人。”
Krieger 回憶起和 Jim Everingham 的對話,這個人是 2015 年的時候被雇來當(dāng)總工程師的。“他管理著 Yahoo 的一個千人團隊,然后過來加入一個 120 人的團隊。但是他告訴我:‘這個團隊在幾年后就會變成一個 500 人的團隊。’”Krieger被這個數(shù)字震驚了。他說:“但是 Jim 很清楚。”那些很厲害的候選者,你不需要賣掉,因為他們已經(jīng)看到了即將到來的東西。
簡而言之,你需要找到那些有著天才的熱情來構(gòu)建東西的人,他們希望有這么多的激情,在很多情況下他們愿意從龐大的已經(jīng)成熟的團隊到多年來第一次會被要求的地方。但是作為交換,創(chuàng)始人虧欠這些早期的管理者一些開放和坦率。
作為第一次創(chuàng)業(yè)的人,你必須對你所學(xué)的保持誠實。你必須謙虛的告訴比你經(jīng)驗還要豐富的管理者,‘我將會是你的領(lǐng)導(dǎo),因為我運營者整個工程師團隊,但是從你那里學(xué)習(xí)我會很興奮。你已經(jīng)找到了什么可行的辦法了嗎?’
所有的事情小到你怎么安排團隊會議都是因為前期的充足投入。不要嘗試向你的管理人員隱藏你的經(jīng)驗不足;而是利用他們的專業(yè)知識。
“建立那樣的關(guān)系是非常有價值的。能夠說:‘看,我們正在一起學(xué)習(xí)。我知道為什么 Instagram 是這樣運轉(zhuǎn)的。我的直覺是我們應(yīng)該做什么。但是你能夠有經(jīng)驗來完成這個直覺。’”
讓你的團隊接受新的管理
即使你和早期的管理人員有一個輕松的會議記憶,你也需要讓剩下的團隊成員在環(huán)境和發(fā)展上能有快速的成長。對于創(chuàng)業(yè)者來說,不要怕羞。當(dāng)需要雇傭一個管理者的時候,讓每個人都知道這件事。“如果每次都以為什么開始,‘我快不堪重負(fù)了。我們需要人來壯大這個團隊。’這就是為改變做準(zhǔn)備。”
當(dāng)提到招聘的時候,你可以通過幾種方式來進(jìn)行招聘。“你可以采用協(xié)商一致的路徑,你決定讓團隊里的所有的人來面試候選者。你決定把一致同意作為聘用候選者的標(biāo)準(zhǔn)。”雖然這樣,但是這些團隊成員不是管理者,他們的評定通常是根據(jù)他們是否喜歡這個候選者來定的。“這是很困難的,你們可能不會達(dá)成共識。”
Krieger 喜歡一個相關(guān)的但是比較意氣的方式來做這些早期的管理招聘。首先,依靠豐富的領(lǐng)導(dǎo)經(jīng)驗來評估這個候選者的資格;他在 Facebook 上招募其他的管理者,雖然其他公司在投資者或者企業(yè)家中沒有這樣類似的例子。然后,一旦 offer 條款被設(shè)定但是還未簽字之前,把候選者帶到辦公室體驗一整天。
Krieger 說:“你很少從當(dāng)前的團隊中感覺到他們的快樂和興奮,畢竟這是一個改變。團隊以前都是直接向你匯報。現(xiàn)在他們卻向另外一個人匯報。但是你至少可以獲得紅色警告,‘不要雇傭這個人’這樣的信息。”
你不太可能得到那種破壞交易的反應(yīng),但是保持對事實的敏感,因為你的工程師們可能還有顧慮,同時他們的顧慮可能還不盡相同。“我曾和這樣的執(zhí)行教練一起工作多年。其中她告訴我的一件事就是如果有人在某個領(lǐng)域被耗盡,那么你就可以在另外一個領(lǐng)域給他很豐富的東西,這樣的想法是沒有用的。就像是如果有人對他們熱愛的生活感到沮喪,然后你跟他說,‘你的工作是很棒的。’這并不是讓他們感到失落的原因。”
(順帶的指導(dǎo)是 Krieger 最推薦給新領(lǐng)導(dǎo)的建議。“我從沒有管理,到管理過一個團隊,到管理幾十個團隊,再到幾百個。我不可能在沒有指導(dǎo)的情況下完成這件事情。”通過 Facebook 的管理輔導(dǎo)計劃,他和 Maggie Hensle 搭配合作。)
尤其是當(dāng)你想增加你的第一個管理者或者兩個的時候,問問自己:這會怎么影響團隊中的每個人。“當(dāng)我們雇傭了我們的第一個管理者,我們的一個工程師說:‘看,我剛從一家兩年換了八個領(lǐng)導(dǎo)者的公司過來。我會在兩個月過后又換另外一個領(lǐng)導(dǎo)嗎?’那個人需要我提供信心。所以我說:‘不會,我認(rèn)為他會在這里待很長一段時間的。這里就是接下來的計劃。這些是我會傳達(dá)給他的優(yōu)先級別。讓我們保持我們的結(jié)對工作吧。’”
此外,提醒早期的團隊這些改變都是積極的,對公司來說如此,對他們個人來說也如此。Krieger 說:“告訴他們,‘你也會從這個人那里學(xué)到新的東西。你也將會得到成長’,我想我早期的工程師們都完全贊同,因為現(xiàn)在他們都已經(jīng)成長起來了。”
從個人身份轉(zhuǎn)移到團隊身份
隨著團隊的成熟,你不能僅僅是改善你的工程師的角色。你同時也在創(chuàng)建一個團隊層的新的身份。“人們會感覺以前所有的事情都是他們處理,但是現(xiàn)在不是這樣了。現(xiàn)在他們有了一個團隊。”當(dāng)那發(fā)生的時候讓他們重新把重點放在影響上。Krieger 說:“我會告訴人們,‘你現(xiàn)在正在做得特性,當(dāng)它發(fā)布出去它會帶來更多的用戶,比你開始在這里工作的時候還要多’”
這些不只是嘴上的功夫。隨著增長帶來更多的機會,這不僅塑造了你公司的產(chǎn)品,而且塑造了公司的文化。Krieger 識別了兩個重要的關(guān)鍵的階段,每個階段對公司的影響都很大:
從全能工程師到平臺團隊
當(dāng)你處在矛盾的邊緣,你在這個平臺雇傭和培養(yǎng)的工程師,會定一個工程師文化來作為長期的口號。“顯然,早期的工程師讓公司發(fā)展起來。但是事實上在這個舞臺上我們擁有今天的成功的工程師團隊,我把它歸功于設(shè)定了正確的環(huán)境和正確的質(zhì)量標(biāo)準(zhǔn)和正確的工程師企業(yè)文化。”
早期,你的剪牦牛毛的全棧工程師可能沒有志向或者寬度來思考為了將來的擴展來考慮架構(gòu)。雖然當(dāng)你招到更厲害的專家的時候,創(chuàng)造這種期望也是很重要的。“你需要創(chuàng)建一個人們可以操作的通道,而不是一個絕對混亂的過程,否則兩年后你就會有大量的技術(shù)債務(wù)。”對于 Instagram 來說就是圍繞平臺培養(yǎng)個性。
“我們圍繞著Instagram的 iOS 工程師或者 Android 工程師或者基礎(chǔ)架構(gòu)工程師都創(chuàng)建了很強的個性。我想讓人們思考,‘我們現(xiàn)在只有 8 個 Android 工程師,但是幾年后我們將會達(dá)到 30 到 40 個。我們現(xiàn)在需要做什么來為以后解決問題做準(zhǔn)備?’”
通過圍繞平臺來組織,Krieger能夠重新把團隊的注意力拉回到質(zhì)量上來。“以 Android 為例,從最開始想出一款超高質(zhì)量的,精美的 Android 應(yīng)用,在那個時候已經(jīng)超過了平臺可以支持的程度。”重點就是告訴他們怎么工作,他們雇傭了誰。
Krieger 說:“我們一開始考慮的是做簡單的事情,努力做簡化,而不是過度的抽象。為了達(dá)到目的,我們應(yīng)該為結(jié)果感到驕傲而不是為抽象感到驕傲。”這些的價值觀,跟 Instagram 的成功密切相關(guān),在公司發(fā)展到這個階段就反應(yīng)了出來。
人們經(jīng)常會看到你根據(jù)平臺來分組,作為一個產(chǎn)品團隊成長路上必要的罪惡的階段。我認(rèn)為這正是當(dāng)你在塑造工程師文化的時候。
從平臺團隊到產(chǎn)品團隊
幾年后,Instagram 已經(jīng)過了把平臺作為他們工程師核心單元的時期。現(xiàn)在他們開始圍繞產(chǎn)品團隊在構(gòu)建個性。
當(dāng)?shù)竭_(dá)這個遷移階段,控制好時間就是關(guān)鍵。做的太快你會失去文化構(gòu)建的中間階段。然而做的太慢也會導(dǎo)致意見不統(tǒng)一。Krieger 說:“我們做這個切換的時候大約有 150 位工程師,其實已經(jīng)有點晚了。我認(rèn)為這個臨界點,最明顯的標(biāo)志就是我們需要改變了,就是當(dāng)你的產(chǎn)品經(jīng)理和技術(shù)經(jīng)理開始互相討厭的時候。”
在這個轉(zhuǎn)換之前,產(chǎn)品經(jīng)理負(fù)責(zé)的每個新的產(chǎn)品都會去找每個技術(shù)經(jīng)理,從團隊中找到一批工程師來做這個產(chǎn)品。Krieger 說:“那么現(xiàn)在你和四個工程師經(jīng)理和至少四個工程師一起完成一件事情,你已經(jīng)選了最好的人,給他們分配了人力資源。”但是沒有一個人對企業(yè)正在做的事情有清晰廣泛的認(rèn)識。“每個人都想做全局的優(yōu)先級決定,但是他們的認(rèn)識有局限性。”
根據(jù)產(chǎn)品來組織團隊,Krieger 重新恢復(fù)了目標(biāo)導(dǎo)向的效率。與最初的全棧工程師到專家的文化類似,Krieger 發(fā)現(xiàn)很大程度上都是個人選擇。“你正在做的事,是把以前的盲從變成現(xiàn)在的明確,例如我們會說:‘誰愿意去做更新改造?’鑒于我們通常有一批對各種平臺都敢興趣的團隊,現(xiàn)在他們就在一起工作了。”
當(dāng)你圍繞著你的核心產(chǎn)品在創(chuàng)建團隊的時候,你將很可能發(fā)現(xiàn)問題就是沒有人超級感興趣,他們都說還可以。“現(xiàn)在你需要采取下一步行動,就是去招聘那些感興趣的人,比如說,增加 iOS 開發(fā)人員。”
在七年后且 300+ 員工的今天,Instagram 的工程師企業(yè)愿景,從使用 Google Doc 來分解任務(wù)的時候就從未改變。“你必須時刻的一次又一次的問自己,我們的目標(biāo)是什么?我們在解決什么問題?除了我們自己沒有人在意我們是怎么做到的。他們關(guān)心的只是產(chǎn)品的質(zhì)量。作為指導(dǎo)準(zhǔn)則我們總是組織工程師團隊來分擔(dān)生產(chǎn)高質(zhì)量的產(chǎn)品的任務(wù),在一天結(jié)束的時候,不管公司和平臺有多大,這才是我們都應(yīng)該共同努力的方向。”
總結(jié)
以上是生活随笔為你收集整理的从 0 到 300,Instagram 创始人 CTO 分享工程团队成长的经验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring-Data-JPA尝鲜:快速
- 下一篇: AR热度不在? NO! 三星开发者大会将