我在谷歌管理一個開發團隊
上圖為本文的作者:Matt Welsh
英文原文:Running a software team at Google
自從我離開哈佛后,經常有人問我現在在谷歌工作是什么樣的情況。我猜想很多人會認為從一個終身教授到一個軟件工程師的轉變存在很大的身份落差。 但除了這個頭銜外,我工作的還是很高興的,而且在這個新角色上,我的工作效率比以前在哈佛任教的 8 年中的任何時候都高——盡管當一名教授和管理一個開發團隊在很多方面都有非常相似的地方。
我在谷歌的西雅圖辦公區帶領一個開發團隊,這個團隊負責手機網站性能方面的一批技術工程。(你可以從我之前的幾篇博客里了解更多的關于我的團隊的背景信息。)最近發布的手機谷歌瀏覽器里的數據壓縮代理支持就是我們比較復雜的項目之一。我們還負責 PageSpeed 系列的技術開發,專注于手機 web 的優化,還有一些其它很酷的技術,只是我不能在這里說。
我的正式頭銜只是“軟件工程師”,這是在谷歌最普通但卻是最讓人垂涎的角色,我說“垂涎”,是因為在谷歌所有重要的決策都是軟件工程師來拍板。 私下里,大家稱呼我為“Tech Lead Manager”,就是說,我不僅要負責技術方面的指導,還要做人事管理工作。在谷歌,“Tech Lead Manager”并不是一個很常見的職位,大多數團隊都有專門人員分別負責技術工作和管理工作。我身兼兩職,部分的原因是辦公室在西雅圖,如果讓團隊向一 個在總部辦公的“專職”經理匯報工作,會有很多不便的地方。而且我非常喜歡身兼這兩職,喜歡這種多樣性。
我的工作主要有 4 個方面:(1) 給團隊制定技術方面的日常工作事項,確保他們能順利完成任務;(2) 自己要寫些程序;(3) 作為團隊和谷歌其它項目組之間的協調人,最后(4) 做一些團隊的“人事管理”,包括招聘,績效考核,晉升獎勵等。
學院里任職的人馬上就能看出這些和做一個教授之間的區別。在學院里帶領一個團隊做學術研究,教授是導師,給研究小組定技術范圍,指導研究生研 究。而在谷歌,這最大的不同是,我不能把團隊里的這些人當成我的“學徒”——就像導師和研究生的關系。事實上,團隊中的大部分人都是比我更強的技術人員, 我完全要依靠他們的努力工作來開發出強壯、穩定的軟件。我的工作是保護團隊中的這些工程師不被打擾,在各方面給他們支持,幫助他們能順利完成任務。
很顯然,這跟學院里的生活有很多不同。跟教授不一樣,我不需要四處募款來讓研究項目能繼續下去。我很少再受到委員會工作、各種考察、寫推薦信、 無意義的會議等方面的打擾。當然,也不需要給學生上課。(我喜歡教學,但如果你想教出好成績需要大量的工作)最重要的,我的團隊的成功與否不是通過隨意的 或常常主觀的個人評審過程決定的——在學院里幾乎所有的事情都靠這種評審。在這里,這是讓我最喜歡的部分。如果我們做的很好,提交了產品,吸引了用戶,那 我們就勝利了。再也不需要為了讓那個幾個評審委員會里性情乖戾的老頭高興而費盡腦筋的琢磨在學術論文里應該使用什么樣的字體。我是有點說跑題了。
我大概要花 50% 的時間來寫代碼。我真的需要每天有一些固定的時間編寫代碼,這樣能讓我安靜下來,清醒頭腦。不像團隊中的其他人,我很難有長時間不被打擾的時間段,所以我 主要開發一些比較簡單的任務,比如寫 MapReduce 代碼來分析服務日志,并生成性能報告。我真的非常喜歡做這樣的事情,這種任務能讓我接觸到海量數據,用各種有趣的方式來拆解、匯總它們。因為我不需要通過 展示高超的編程技藝來獲取晉升機會,所以,那些非常惹眼的新功能都讓團隊中比我強的人去做。
我在團隊軟件開發大方向上會輸出重要的影響,包括設計和架構方面。很大程度上是因為,相比起團隊中的那些小伙,我在系統設計方面有更多的經驗, 當然,在某些我不熟悉的細節問題上,我需要聽從那些實際編碼人的意見。我的很大一部分工作是設置優先級,當在解決某個特殊問題,需要在幾個都不怎么樣的解 決方案間做選擇時,我來拍板。(這也意味著,如果決策是錯誤的,我來承擔責任。)
我估計我所作的人事管理方面的工作跟行業中其他人的做法沒有什么不同:寫周期性的績效考核報告,制定薪水浮動計劃,給團隊招聘新員工,給團隊成員爭取晉升機會。我定期的會和他們每個人交流,幫助他們理解工作上的重點,消除他們的疑慮,指導事業發展方向。
我工作上最大的一個變化要數以團隊代表的身份和谷歌其他團隊接觸,來保證溝通合作順利。我的團隊只是這個大型的 Chrome 項目團隊的一部分,我們和谷歌遍布全球的各種技術部門的開發團隊都有聯系。我經常的會參加一些會議來確定如何跟公司內的其他團隊合作。所以,我的工作永遠 不會覺得無聊。而且我們的會議都是非常高效的(大部分都半小時內能搞定),盡管如此,我的會議量也接近在大學工作時的一半之多。(但比較起來,大學里僅有 10% 的會議能有實質成果。)
盡管事物繁雜,工作量大,我在谷歌的作息時間基本上是朝九晚五。我很少晚上或周末加班,除非是有些事情我非常渴望去做,并且在工作時間外沒有人 會發郵件給我。(因為開發團隊的一個調度程序,最近曾在半夜花了幾小時修改一個產品 bug。)我感覺這是一種從作為教授特有的持續壓力下的工作狀態的解脫。我感覺我的工作產量更大了,而且用了更少的時間,這歸功于干擾分心的事情減少,能 夠維持一個專注的心態。目前我們的工作方法是:如果我們需要完成比正常情況下一周的工作還要多的工作,我們就去招聘更多的人。幸運的時,似乎沒有遇到過這 種情況。