當前位置:
首頁 > 最新 > 從 0到300,Instagram 創始人 CTO 分享工程團隊成長的經驗

從 0到300,Instagram 創始人 CTO 分享工程團隊成長的經驗

關鍵時刻,第一時間送達!

作者丨Engineering

譯者丨ekse

最初,Instagram 被 Facebook 收購時公司只有六個工程師,且都是全棧。本文Instagram 創始人兼 CTOMike Krieger分享了創業初期並在資源有限的情況下,人才招聘、技術專攻的實踐經驗,將時間、精力用在最有價值的地方。以下為譯文:

不管怎樣 Instagram 所奠定的里程碑還是很不可思議的。從整個初創企業生態系統的建立到吸引科技巨頭 Facebook 的注意,且花了一億美元來收購,僅僅用了一年半的時間。但從 2012 年被收購時的每月 3 千萬的月活用戶到兩年後 2 億的月活,到現在的 7 億,用戶數量指數式的增長,這都是難以置信的結果。

事實上,聯合創始人兼 CTO Mike Krieger 有著他們自己的一系列的里程碑,具體與如何擴展技術團隊和獲取最多的關注緊密相關。在被收購的時候,他們只有六個全棧開發工程師。現在他是 300 多位工程師團隊的舵手,可以迅速推出新功能和產品。在短短的 7 年時間裡,Krieger 從新手管理者逐漸成長為可以帶領多層組織的專業工程師,其中他們很多都是當前領域中最優秀的。

本文中,他分享了創業中獲得的經驗——這些也是他自己想回到 2010 年,告訴他自己的一些事情。此外,他也分享如何優雅的從一個早期團隊轉變到一個更加成熟的技術團隊;如何引入新的管理層次;怎麼為不斷改進和創新製造動力,希望給同行提供一定的借鑒。

組建初創團隊來滿足早期需求

為了讓一個創業團隊發展起來,有幾個東西需要有充足的準備——勤勞、精力和解決問題的能力。是否需要專業的工程師?通常情況下不需要。在這個階段全棧工程師更勝任,Krieger 根據他的經驗給全棧工程師定義了一些很重要的特徵和能力,這樣他們才能夠幫助公司進入到下一個階段:

1、需要懂得什麼時候剪氂牛毛

Krieger 說:「你聽過『剪氂牛毛』這個行話嗎?有時編程需要解決一些超級複雜的技術問題。但是最終很多時候你會得到一連串的任務來完成這個技術難題,例如,『我需要讓這個 iPhone 的 App 在我的設備上也能運行,這意味著我需要生成配置的概要文件,接著我需要註冊一個賬戶,然後還有連續不斷的東西。』最後,你這就是在剪氂牛毛來完成最初的想法,然後你發現你已經離它越來越遠。」

當你在組建全棧工程師團隊的時候,你需要那些準備好了而且願意頂住風險直至最後的人。你需要的是那些願意學習新技術的人,這些技術可能會在他們的工作職責描述之外。

為了找到這樣的人,下邊列舉一些你可以嘗試的面試問題:

聊一聊最近的業餘項目或者工作項目;在實際項目中處理過什麼樣的「氂牛毛」?

是否做過跨學科的項目,或者一開始還不熟悉的項目?

2、知道什麼時候氂牛毛是不值得剪的

話雖如此,在創業公司初期沒有比工程師的時間更寶貴的東西了,因此每個人都需要確保自己聰明地利用時間。Krieger 說:「人們可能沉醉在剪氂牛毛的過程中。」一個高效的全能工程師知道何時該抽身而出,繼續往前推進。

Krieger 回憶了早期 Instagram 的日子,那時他剛獲得了現在還認為是最好的建議:監控一切。

最開始,會花費四到五個小時的時間來嘗試搭建一個領先的免費網路監視工具——Nagios。「最後我重新構建這個產品。因為我決定修復這個並不完美且有些複雜的警告解決方案,整體來看,我當天就可以完成,接著再去做其他的事情。」

類似的,你可能也會遇到一些可以自己完成的東西。但是一個好的解決方案已經存在的話,你也應該這樣嗎?「早期我們認為,『我們知道怎麼實現推送通知。但是 Urban Airship(領先的移動應用互動、移動分析、移動數據集成的營銷解決方案) 已經存在』」。那麼,現在把你的驕傲放在一邊,時刻讓注意力保持在真正的目標上。「目標不是實現 Nagios 或者 Munin(Linux監控工具)。真正的目標是推動產品,這樣你才能讓人們使用它。」

以下就是 Krieger 判斷一個人是否會剪氂牛毛上癮的檢測辦法:

Krieger 和團隊會讓工程師花幾個小時的時間來開發一些東西,例如簡單的手機 App 或者後端系統,如果他們有問題可以向 Instagram 團隊請求協助。他說:「這可以幫助那些花費很長時間來搭建編程環境的工程師。」注意他們是否聰明的利用了他們的時間,而不是只關注結果。

3、注重行動導向

你不能一次完成所有事情,那麼哪些是創業公司首要的、哪些是第二位和以及第三任務?這些都需要我們自己來理清。在 Instagram 的早期,Krieger 和他的團隊在 Google Doc 上以主題的方式記錄日誌。

「其中一個主題就是成為世界上最快的圖片分享 App。圍繞著這個主題我們做了什麼呢?接著,我們想讓這些圖片看起來不可思議,超出我們對手機照片期望。圍繞這個我們又做了什麼呢?把不相關的事情都放到一邊。然後讓滿足要求的工程師們來實現。」

Google Doc 是用來跟蹤團隊任務的一個產品的最佳可行方法,確保團隊的每個人都能參與到公司最終要達到的目標里來。它被分解成很多天,然後幾天圍繞著一個主題。每個主題中沒完成的任務就自動遷移到第二天。最高優先順序的任務被會標記。這樣的話,在混亂中就不會搞丟任務了,同時人們也可以很容易的評論和提問,他們的注意力也會一直關注在下一個他們需要完成的目標上。

儘早建立一個團隊是很重要的,你可以通過這樣類型的系統來推動團隊,並將重點放在與公司成功相關的無休止的任務中。這意味著不要僱傭或者同那些只做自己的事情而不關注公司的長遠計劃的人一起工作,或者那些浪費時間去選擇不需要很大壓力就可以完成的任務的人。

下面這些問題就可以用來向員工提問從而判斷他們是否適合行動為導向:

講一件個人特別引以為傲,平衡了功能完整性、優化和時間的任務。Krieger 說:「你需要的是一個微妙的答案而不是一個絕對的回答。例如『我們只有在準備好以後才發布產品』或者『我們每個任務都在截至日期前完成了』這兩個回答我都聽過。

招聘有激情的、靈活的全棧工程師

雖然大公司的優勢是擁有機械化的招聘團隊,但創業公司也有自己的優勢:他們可以跳出盒子,有的人可能不滿足公開的職位要求。但是 Krieger 回憶起他和聯合創始人 Kevin Systrom 招聘的第一個工程師,Shayne Sweeney,就是一個典型的例子。「他沒有完成大學學業。他完全就是一個自學成才的程序員。我們遇見他完全是因為我們在 Dogpatch 實驗室的 38 號辦公,而他剛好在我們對面。但是他散發出一個創業公司所需的氣質。『我有一個想法,我會學任何知識,想盡辦法來實現它。』

雖然他坐在你對面,但是你怎麼去評估他有這種類型的動力?在 Krieger 的經驗中,作為基本的個性特質,一般和明顯好奇是緊密相關聯的。所以對於創業者來說,注意尋找對話中自然流露出來的求知慾。「我們感興趣的候選人是那些會說,『這個周我對 Go 這個遊戲非常感興趣,所以我做了一個 Go 的原型來學習這個東西」而不是「我所在的公司使用 React,所以我才用 React的。』」

你可以採取一些策略,在面試的時候提給面試者來推斷出是否具有好奇心。Krieger 說:「特別是在創業早期,我喜歡問,你對哪些業餘項目感到很興奮?你上一次掉進兔子洞是在哪個特定的項目中?學到了什麼?」

當人的眼睛發光的時候,就是有什麼東西讓他感興趣,你找到了激情,而不是需要一份職業的人。創業早期你需要很多的激情,因為任務肯定不會掉進小盒子里。

靈活性在開始階段也是相當重要的,這意味著不需要僱傭那麼多很有能力候選人(選那些合適的就可以)。

Krieger 說:「記得我面試過一個小夥子,他是我見過的最厲害的 iOS 工程師之一。但是在我們的交談中,他強調:『你也知道,我不會去做服務端的工作。我認為那樣會浪費我的時間。』這個就是一個有效的意見」。麻煩的是,對於那個時候的 Instagram 來說,這種心態過於專業了。「我們不想讓他們豎面牆在那裡,然後說這裡有個東西需要服務端來開發。」

僱傭那些可以在不同領域間切換的人,那樣可以保持工程師團隊的敏捷性。同時也幫助你避免了很多陷阱。Krieger 講到:「我記得和 Kevin Rose 討論 Digg 的時候,他說他們早期犯下最大的錯誤就是找了當時最滿足他們正要在用的技術的人。這個問題有兩個原因。第一就是你想擴展你的技術。第二就是如果人們把他們自己的工作固定限制的太窄,比如說一直使用 PHP,你最終可能就會做出一個錯誤的技術選擇。」

他最後一個建議就是優先採取多樣化的方式來僱傭員工,而不是用新公司通常會做的那樣。僱傭一個多元化團隊的優勢是多種多樣並且充分的覆蓋了最近的科技論文。但是在瘋狂的早期,創業公司可能會認為這些教訓並不適用於他們,或者說這些都排在優先列表的最後一位。

Krieger 說:「我們沒有過多的強調在創業早期要僱傭多樣化團隊。」這讓公司一旦成長起來,婦女和沒有多少代表性的少數民族和背景越來越難。他還說:「如果你正在面試你的第一位女性工程師,她很興奮的想:『哇,這個團隊好大,還有那麼多的男生』,這就讓隔閡更高了。這些確實有發生,如果你可以避免這些問題,你們就可以有著更好的狀態。」

那麼儘早的建立多元化的團隊,你們會進入良性循環。Krieger 說:「一旦有女生加入到團隊中,我們就可以招到更多的女生,從創造事件到面試再到寫技術博客都是可見的,這些都是為了讓我們成為強大的團隊。」不要忽視對這些發聲的價值。假設這些是一個優先事項,在面試的時候不會給候選人建立聯繫或者吸引你真正想要的候選人的興趣。直到他們聽到或者從你那看到兩次或者三次,或者直到你的團隊展示出了你的願景,他們可能才會成為你的候選者。

不要放棄對專業化的需求

接下來的 Instagram 的故事是矽谷傳奇的一部分:2012 年這個只有 13 個人的公司被 Facebook 收購了。從那以後,Krieger 和 Systrom 就可以單獨招聘或者從 Facebook 的訓練營中招聘。他們有著品牌標誌,然後突然迎來了很多帶著不同期望的候選者。當然不是每個初創企業都有這些條件,但是無論你的情況怎樣,接下來的多元化和專業化都會在你的團隊中發生。

隨著功能和需求的增加,團隊感覺需要一些專業的專註於某些技術的工程師,比如說 iOS 和 Android 工程師,他們可以把產品分解成很多模塊,從而使得產品比以前更好。這在一個創業公司的生命周期中相當常見時刻。這意味著你需要朝著這個方向前進:

你正在發明一些超出你所工作平台提供能力的東西。

你開始朝新的市場遷移,這些需要深入調整代碼。以 Instagram 的例子來說,就是讓視頻在爆發的市場上正常的工作。

你的代碼塊已經很龐大了,需要技術來引領未來的成長。

隨著越來越多的專業工程師(例如 iOS 和 Android 工程師)加入 Instagram,現在的團隊是可以做的,全棧工程師第一次遭遇專業化。

Krieger說:「我們知道有規範的方式來完成這些事情。有時它很教條;有的時候它卻有個很好的理由。」他回憶了一個很簡單的甚至很無聊的例子:Instagram 是他和 Systrom 的第一個大型的 Python 項目,所以他們很早就在一起規定了一些代碼約定。「後來的 Python 工程師就會說:『為什麼你的等號兩邊都有空格呢?』我們只是覺得這樣看起來不錯。他們會想:『沒有人那樣做呀。』」

最後你想引領大家朝著工業標準的方向前進,因為這樣可以讓新人更輕鬆的融入到團隊中。(是的,Krieger 最後還是回去把他的 Python 代碼改來和其他人的看起來一樣。)你可能會以你早期零散的方式來抵制某種程度的專業化。放棄這種嘗試。你僱傭了專業的人是有原因的,所以讓他們帶來他們的經驗吧。

我把基礎設施都連接起來,考慮到我那個時候的理解層次,系統的健壯性讓我感到驚訝。但是在有的時候,你需要有人來檢查瀏覽代碼從而可以構建出一個真正的牆而不是你做的一個腳手架。

當把現在的團隊分成日益專業化的結構時,他們通常都會關注自己。「即便是我們的全棧工程師也偏好某一個領域。」這是一個簡單的方式來給工程師解釋成熟的組織需要什麼,這樣他們就看了就自然而然的明白了。有的明確的標明了 iOS,其他的是基礎設施等等。一旦你注意到這一點,讓他們坐下來用心交談,如果他們開放的話,你就可以充分的開發他們的大腦了。承認他們的技能是多麼的稀缺,以及他們可能會給公司帶來的好處。

專業化也不是就意味著拋棄讓你發展起來的那些靈活性,或者幫他們放的高高在上。Krieger 說道:「那些早期的全棧工程師已經擴展了他們的事業,這已經讓他們成為了更好的工程師。」

拿第一個招聘的人 Shayne 來說。「有一次我們想嘗試讓我們測試閉環的更快。構建和發布花費了很長的時間。最後的解決方案就是基礎架構一個,這個需要寫大量的 Python 腳本。我沒從基礎架構團隊找一個工程師來,我對 Shayne 說:「你了解端到端的東西,你自己找到一些辦法來創建一個 MacBuildServer 吧。」

那些有著深度的端到端知識的開發人員就是一個很好的資源,比那些專業的人更有優勢。他們可以讓團隊中其餘的人工作更高效。

在你能勝任之前你需要一個管理者

正如你團隊里的工程師需要成長一樣,你的領導能力也需要成熟。在最初,你的領導能力可能很平庸。不必要的管理陷阱會損壞作為小公司最大資產的開發敏捷性。同時也不是說創始人可以放任團隊讓他自己發展。

在你有真正的管理動作之前,必須具備管理能力。

那麼「管理行為」的效果會怎樣?舉一個簡單的例子:一對一。Krieger說:「我們開始做這些工作的時候已經有一年半至兩年的時間了,現在會發出感嘆『哇,原來有這麼多內容沒有人去討論。』」最後是 Instagram 在 Benchmark 的夥伴 Matt Cohler 支持下才有了動力。

回想起來,Krieger 知道壓力在編譯階段,但是他們都會幸運的及時發布。「但是它也是一個拓展我眼界的時刻。當你是一個創始人的時候,你會暗地裡開心,或者那不是你問的一個問題,因為這個公司是你的小孩,你會努力讓他成長,有人加入就意味著增加了成功的可能,但是他們也是活生生的,有著呼吸的人,有著慾望和需求和很多問題。當我們開始有更多的管理的時候我們才從全棧工程師變成專家。回憶起來,我覺得我可以做的更快。」

實施管理行為本身是很重要的,但是它也是一個有價值的衡量標準。當你是一個創始人或者早期的領導人時,當你不滿足你當前產品的需求,和管理任務時,就是時候找另外一個管理人了。當你認為你有 90% 的可能性確認需要一個人的時候,你就確實該有一個管理者了。

Krieger 說:「我在 Instagram 和其他我給過建議的公司,一次又一次的見過,一旦你增加了一個管理的職位,一個你可能也不知道是給什麼準備的,你發現你只知道需要完成任務里最高優先順序 5% 的內容。另外的 95% 卻因為沒有指定人則沒有完成,對於我們的管理者,應該加速我們的招聘流程,規劃任務,考慮 App 的未來規劃。我用一周的一天時間來思考這些東西是遠遠不夠的。」

以下是他對從公司內外選擇管理者的建議:

1、從內部提拔

Krieger 最開始採用的是這種方式,Instagram 的最初的工程師團隊管理者就是那些團隊中擁有最長工作經驗的人。這種方式提供了一些自然的優勢,主要是對團隊的其他人很有話語權。「選擇那些元老級別的人的好處就是他們會招聘現在就給他們彙報的人。這樣感覺就是管理行為了,同時這也成為團隊其他人的動力。」

同時,他承認他很幸運因為這種方式行得通,因為這不是自然而然的或者最好的一個選擇。Krieger 說:「根據工作時間來選擇技術領導一直都是一個有效的辦法,但不是一個選擇管理者的明智辦法。」如果他們對這個成長路徑有興趣那你就讓他們成為管理者,但是確保一定要溝通了解清楚。

現在,Krieger 確保他所有的管理者都與他們的團隊進行了職業規劃談話,並且通過找到有興趣或者天賦的管理者來考核他們。「我的理念是,如果我們有工程師感興趣,我們會經常讓他們嘗試一下,並給他們一定的指導。」

和新的管理者一起檢查,讓他們知道如果他們需要是有一個退出通道的。即使那些自己認為他們想要這個角色的人最終也會發現這會讓他們感到痛苦不堪。「在過程中設置一些檢查點,比如說每六個月。『你是否還很愉快?你還想繼續嗎?你是否想放棄,回去繼續做一個獨立的貢獻者呢?』確保人們是以最興奮的方式在工作,如果不是,他們會感到沮喪然後離職,或者他們的團隊會感到不開心。」

2、從外邊招聘

即使你從內部晉陞,你最終還是需要從外界尋找新的管理者。用 Instagram 的例子來說,這時正當基礎架構組需要一個管理者,但是這個團隊中沒有一個工程師對這個工作感興趣。他說:「如果內部晉陞管理者讓人感到害怕,那麼僱傭我們的第一位來自外界的管理者則是 10 倍的害怕。那是我們面試的第一位管理員工。」

很少有人會管理著一個年輕的團隊還出來找工作的,所以幾乎沒有候選者或者都很遠。「如果你正處在這個階段,你通常會為了美好的生活堅持,同時試著發展你的團隊。」通常情況下,這個你需要找的人是那些以前在這種環境下成長起來然後現在正管理著一個大的團隊的人。「他們可能感覺和工作有點分離,或者會很興奮的回到以前的那種有很多事做的時期。認真的分析判斷他們為什麼會加入你這個又小又複雜的團隊。」

篩選出那些因為你團隊太小而放棄的人,他們是沒有看到團隊增長的潛力。「如果你在 2012 年的時候審視 Instagram,我們有大約 8 個人的工程師團隊,每月 3 億的訪問量。你知道我們必須要成長。所以我們不能僱傭那些還需要去實踐的人。」

Krieger 回憶起和 Jim Everingham 的對話,這個人是 2015 年的時候被雇來當總工程師的。「他管理著 Yahoo 的一個千人團隊,然後過來加入一個 120 人的團隊。但是他告訴我:『這個團隊在幾年後就會變成一個 500 人的團隊。』」Krieger被這個數字震驚了。他說:「但是 Jim 很清楚。」那些很厲害的候選者,你不需要賣掉,因為他們已經看到了即將到來的東西。

簡而言之,你需要找到那些有著天才的熱情來構建東西的人,他們希望有這麼多的激情,在很多情況下他們願意從龐大的已經成熟的團隊到多年來第一次會被要求的地方。但是作為交換,創始人虧欠這些早期的管理者一些開放和坦率。

作為第一次創業的人,你必須對你所學的保持誠實。你必須謙虛的告訴比你經驗還要豐富的管理者,『我將會是你的領導,因為我運營者整個工程師團隊,但是從你那裡學習我會很興奮。你已經找到了什麼可行的辦法了嗎?』

所有的事情小到你怎麼安排團隊會議都是因為前期的充足投入。不要嘗試向你的管理人員隱藏你的經驗不足;而是利用他們的專業知識。

「建立那樣的關係是非常有價值的。能夠說:『看,我們正在一起學習。我知道為什麼 Instagram 是這樣運轉的。我的直覺是我們應該做什麼。但是你能夠有經驗來完成這個直覺。』」

讓你的團隊接受新的管理

即使你和早期的管理人員有一個輕鬆的會議記憶,你也需要讓剩下的團隊成員在環境和發展上能有快速的成長。對於創業者來說,不要怕羞。當需要僱傭一個管理者的時候,讓每個人都知道這件事。「如果每次都以為什麼開始,『我快不堪重負了。我們需要人來壯大這個團隊。』這就是為改變做準備。」

當提到招聘的時候,你可以通過幾種方式來進行招聘。「你可以採用協商一致的路徑,你決定讓團隊里的所有的人來面試候選者。你決定把一致同意作為聘用候選者的標準。」雖然這樣,但是這些團隊成員不是管理者,他們的評定通常是根據他們是否喜歡這個候選者來定的。「這是很困難的,你們可能不會達成共識。」

Krieger 喜歡一個相關的但是比較意氣的方式來做這些早期的管理招聘。首先,依靠豐富的領導經驗來評估這個候選者的資格;他在 Facebook 上招募其他的管理者,雖然其他公司在投資者或者企業家中沒有這樣類似的例子。然後,一旦 offer 條款被設定但是還未簽字之前,把候選者帶到辦公室體驗一整天。

Krieger 說:「你很少從當前的團隊中感覺到他們的快樂和興奮,畢竟這是一個改變。團隊以前都是直接向你彙報。現在他們卻向另外一個人彙報。但是你至少可以獲得紅色警告,『不要僱傭這個人』這樣的信息。」

你不太可能得到那種破壞交易的反應,但是保持對事實的敏感,因為你的工程師們可能還有顧慮,同時他們的顧慮可能還不盡相同。「我曾和這樣的執行教練一起工作多年。其中她告訴我的一件事就是如果有人在某個領域被耗盡,那麼你就可以在另外一個領域給他很豐富的東西,這樣的想法是沒有用的。就像是如果有人對他們熱愛的生活感到沮喪,然後你跟他說,『你的工作是很棒的。』這並不是讓他們感到失落的原因。」

(順帶的指導是 Krieger 最推薦給新領導的建議。「我從沒有管理,到管理過一個團隊,到管理幾十個團隊,再到幾百個。我不可能在沒有指導的情況下完成這件事情。」通過 Facebook 的管理輔導計劃,他和 Maggie Hensle 搭配合作。)

尤其是當你想增加你的第一個管理者或者兩個的時候,問問自己:這會怎麼影響團隊中的每個人。「當我們僱傭了我們的第一個管理者,我們的一個工程師說:『看,我剛從一家兩年換了八個領導者的公司過來。我會在兩個月過後又換另外一個領導嗎?』那個人需要我提供信心。所以我說:『不會,我認為他會在這裡待很長一段時間的。這裡就是接下來的計劃。這些是我會傳達給他的優先順序別。讓我們保持我們的結對工作吧。』」

此外,提醒早期的團隊這些改變都是積極的,對公司來說如此,對他們個人來說也如此。Krieger 說:「告訴他們,『你也會從這個人那裡學到新的東西。你也將會得到成長』,我想我早期的工程師們都完全贊同,因為現在他們都已經成長起來了。」

從個人身份轉移到團隊身份

隨著團隊的成熟,你不能僅僅是改善你的工程師的角色。你同時也在創建一個團隊層的新的身份。「人們會感覺以前所有的事情都是他們處理,但是現在不是這樣了。現在他們有了一個團隊。」當那發生的時候讓他們重新把重點放在影響上。Krieger 說:「我會告訴人們,『你現在正在做得特性,當它發布出去它會帶來更多的用戶,比你開始在這裡工作的時候還要多』」

這些不只是嘴上的功夫。隨著增長帶來更多的機會,這不僅塑造了你公司的產品,而且塑造了公司的文化。Krieger 識別了兩個重要的關鍵的階段,每個階段對公司的影響都很大:

從全能工程師到平台團隊

當你處在矛盾的邊緣,你在這個平台僱傭和培養的工程師,會定一個工程師文化來作為長期的口號。「顯然,早期的工程師讓公司發展起來。但是事實上在這個舞台上我們擁有今天的成功的工程師團隊,我把它歸功於設定了正確的環境和正確的質量標準和正確的工程師企業文化。」

早期,你的剪氂牛毛的全棧工程師可能沒有志向或者寬度來思考為了將來的擴展來考慮架構。雖然當你招到更厲害的專家的時候,創造這種期望也是很重要的。「你需要創建一個人們可以操作的通道,而不是一個絕對混亂的過程,否則兩年後你就會有大量的技術債務。」對於 Instagram 來說就是圍繞平台培養個性。

「我們圍繞著Instagram的 iOS 工程師或者 Android 工程師或者基礎架構工程師都創建了很強的個性。我想讓人們思考,『我們現在只有 8 個 Android 工程師,但是幾年後我們將會達到 30 到 40 個。我們現在需要做什麼來為以後解決問題做準備?』」

通過圍繞平台來組織,Krieger能夠重新把團隊的注意力拉回到質量上來。「以 Android 為例,從最開始想出一款超高質量的,精美的 Android 應用,在那個時候已經超過了平台可以支持的程度。」重點就是告訴他們怎麼工作,他們僱傭了誰。

Krieger 說:「我們一開始考慮的是做簡單的事情,努力做簡化,而不是過度的抽象。為了達到目的,我們應該為結果感到驕傲而不是為抽象感到驕傲。」這些的價值觀,跟 Instagram 的成功密切相關,在公司發展到這個階段就反應了出來。

人們經常會看到你根據平台來分組,作為一個產品團隊成長路上必要的罪惡的階段。我認為這正是當你在塑造工程師文化的時候。

從平台團隊到產品團隊

幾年後,Instagram 已經過了把平台作為他們工程師核心單元的時期。現在他們開始圍繞產品團隊在構建個性。

當到達這個遷移階段,控制好時間就是關鍵。做的太快你會失去文化構建的中間階段。然而做的太慢也會導致意見不統一。Krieger 說:「我們做這個切換的時候大約有 150 位工程師,其實已經有點晚了。我認為這個臨界點,最明顯的標誌就是我們需要改變了,就是當你的產品經理和技術經理開始互相討厭的時候。」

在這個轉換之前,產品經理負責的每個新的產品都會去找每個技術經理,從團隊中找到一批工程師來做這個產品。Krieger 說:「那麼現在你和四個工程師經理和至少四個工程師一起完成一件事情,你已經選了最好的人,給他們分配了人力資源。」但是沒有一個人對企業正在做的事情有清晰廣泛的認識。「每個人都想做全局的優先順序決定,但是他們的認識有局限性。」

根據產品來組織團隊,Krieger 重新恢復了目標導向的效率。與最初的全棧工程師到專家的文化類似,Krieger 發現很大程度上都是個人選擇。「你正在做的事,是把以前的盲從變成現在的明確,例如我們會說:『誰願意去做更新改造?』鑒於我們通常有一批對各種平台都敢興趣的團隊,現在他們就在一起工作了。」

當你圍繞著你的核心產品在創建團隊的時候,你將很可能發現問題就是沒有人超級感興趣,他們都說還可以。「現在你需要採取下一步行動,就是去招聘那些感興趣的人,比如說,增加 iOS 開發人員。」

在七年後且 300+ 員工的今天,Instagram 的工程師企業願景,從使用 Google Doc 來分解任務的時候就從未改變。「你必須時刻的一次又一次的問自己,我們的目標是什麼?我們在解決什麼問題?除了我們自己沒有人在意我們是怎麼做到的。他們關心的只是產品的質量。作為指導準則我們總是組織工程師團隊來分擔生產高質量的產品的任務,在一天結束的時候,不管公司和平台有多大,這才是我們都應該共同努力的方向。」

-------- 熱聞回顧 --------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

編寫高質量Python代碼的5個優化技巧
微博遭鹿晗戀情暴擊癱瘓,如何快速提高系統性能?
TIOBE 10 月編程語言排行榜:Swift 正過時?
創建一個分散式網路爬蟲的故事
GitHub的12 個實用技巧,你 get 了幾個?

TAG:CSDN |