在谷歌和推特兩家公司工作情況比較 - ma.nu
2021年,我在谷歌工作了14年後加入了Twitter。以下是我到目前為止注意到的一些差異的小想法:
核心子域與外包
Twitter外包的東西比Google要多得多。
谷歌喜歡用他們自己的解決方案來處理幾乎所有的事情。他們甚至曾經有自己的人力資源系統(名字叫GHR),直到他們轉而使用Workday。谷歌有他們自己的錯誤跟蹤系統、電子郵件、日曆、線上辦公套件、程式碼審查系統、內部溝通和社會互動工具,你可以說出這些。
Twitter使用谷歌日曆、電子郵件、辦公套件、Jira(錯誤跟蹤器、專案管理)、Okta(單點登入)、Phabricator(程式碼審查)、Sentry(錯誤監控)、WorkDay(人力資源、目標設定、同行評審)、Splunk、Office Timeline、Duo(身份驗證--當我第一次加入並被告知要在手機上安裝Duo時,我感到有些困惑,因為我以為那是指谷歌的影片聊天應用程式)。
這也適用於更多的技術性東西和使用開放技術。
一方面,這使得Twitter不像谷歌那樣是一個 "技術孤島";另一方面,在Twitter上驗證上千種服務可能有點不方便(單點登入工具使其大部分不費力,但並非總是如此)。
程式碼的 所有權
程式碼的 "所有權 "是一種常見的模式,以防止不良修改。
如要進行任何修改,你需要成為你要修改的那段程式碼(或超集)的所有者,或者得到所有者的批准。
我在谷歌看到的大多數專案中,所有權的 "顆粒度 "水平要低得多,這意味著一個軟體的各個部分和子部分可以由不同的人擁有。一般的經驗法則是,你在一個專案上的時間越長,你在所有權樹上 "冒泡 "的次數就越多,可以改變或批准對更大塊內容的修改。
到目前為止,Twitter有更多的 "全部或沒有 "的方法。一旦你成為網路應用程式程式碼(分別是iOS客戶端、Android客戶端等)的所有者,你可以對任何部分進行修改(有幾個例外)。
程式碼評審
Twitter的程式碼審查過程既快,又需要更多的努力。
谷歌的內部程式碼審查工具為你提供了一個簡單而自動化的方法,為一個給定的修改新增一組建議的審查者。它考慮到了程式碼所有權、時區、不在辦公室的人等等。因此,你一般只需按下一個按鈕,就可以認為你的修改會在一個合理的時間框架內得到審查。
在Twitter,"程式碼所有權 "的限制將被強制執行,但由你來指定審查員(作為小組或個人)。一旦你這樣做了,你需要明確地要求審查,可以在Slack頻道上,也可以給指定的人(我做了一個簡單的瀏覽器擴充套件,讓它更容易一些)。反過來說,你通常可以更快地得到評審。
文件
我沒有客觀的資料來證明這一點,但我覺得Twitter的工程師們在給他們的程式碼新增註釋和文件方面不太勤奮。
我想說的是,谷歌的大多數團隊在這方面遠遠不夠好,但witter的情況更糟糕。
例如,一個好的做法是為每個頂層的 "類"(假設是物件導向的程式設計模型)提供一個簡短的描述,說明它的作用。
駭客周
谷歌有其著名的 "20%專案 "政策已經有很長一段時間了;它現在已經奄奄一息了。我很喜歡Twitter的 "駭客周",因為它清楚地表明,人們不需要在那一週裡在他們的主要專案上取得進展。不過,這顯然不完全是20%。我想知道每個季度的 "駭客周 "會產生什麼。
溝通
Twitter 上的一切都發生在 Slack 上。一對一聊天、不需要開會的團隊討論、全體會議上向領導提出的問題、程式碼審查請求、社交閒聊等。我什至不費心去參加的情況並不少見幾天檢查我的工作電子郵件;
這在大多數事情都是透過電子郵件完成的谷歌是永遠不會發生的(有些人也使用即時訊息,但這些討論不會被假定為將來存檔/保留)。
在 Twitter,與其他內部屬性相比,您更有可能透過搜尋 Slack 找到與您的問題相關的資訊。
不利的一面是,如果 Slack 在任何重要的時間段內停機,那將是生產力/知識的重大損失。
相關文章
- 透過coca A/B功能比較兩個詞的搭配 對於一詞多義的情況
- NoClassDefFoundError的兩種情況Error
- 在Linux中,如何比較兩個檔案差異?Linux
- 兩集合比較判斷
- js 深比較和淺比較JS
- 在谷歌、Facebook等頂級科技公司工作需要哪些技能谷歌
- AppsFlyer 收購 devtodev 和 oolo 兩家科技公司APPdev
- kubernetes ingress 在物理機上的nodePort和hostNetwork兩種部署方式解析及比較
- 推特將在兩週內禁止加密貨幣廣告加密
- 比較兩個table是否相同
- JavaScript比較兩個時間JavaScript
- kookeey、Luminati 和 Smartproxy 海外代理的特點和優缺點分析比較
- 成都現在的情況
- Oracle date 型別比較和String比較Oracle型別
- AppsFlyer 重磅收購 devtodev 和 oolo 兩家科技公司APPdev
- 比較兩個陣列是否相等陣列
- ORACLE expdp在表空間較多的情況下執行非常緩慢Oracle
- not in 和 not exists 比較和用法
- TCP和UDP比較TCPUDP
- Redis 和 Memcached 比較Redis
- Java和JavaSciprt比較Java
- etcd和redis比較Redis
- Mybatis中Foreach動態SQL標籤(map和list兩種情況)MyBatisSQL
- 我國虛擬現實產業發展情況及推進工作思路產業
- Go和Python比較的話,哪個比較好?GoPython
- PyCharm與VSCode兩種IDE比較 - towardsdatasciencePyCharmVSCodeIDE
- pandas比較兩個文件的差異
- matlab比較兩個矩陣是否相等Matlab矩陣
- Javers 比較兩個類的差異
- python如何比較兩個字串是否相等Python字串
- 記maven專案的兩個奇怪情況Maven
- 從哪些指標衡量客服的工作情況指標
- C++ - 比較兩個浮點數大小C++
- PyTorch和TensorFlow比較 - thegradientPyTorch
- ==和equals方法的比較
- ImageMagic 和 GraphicsMagick 的比較
- ArrayList和LinkedList的比較
- 比較器-Comparable和Comparator