我在谷歌管理一個開發團隊

aqee發表於2013-05-12

  自從我離開哈佛後,經常有人問我現在在谷歌工作是什麼樣的情況。我猜想很多人會認為從一個終身教授到一個軟體工程師的轉變存在很大的身份落差。但除了這個頭銜外,我工作的還是很高興的,而且在這個新角色上,我的工作效率比以前在哈佛任教的8年中的任何時候都高——儘管當一名教授和管理一個開發團隊在很多方面都有非常相似的地方。

上圖為本文的作者:Matt Welsh

  我在谷歌的西雅圖辦公區帶領一個開發團隊,這個團隊負責手機網站效能方面的一批技術工程。(你可以從我之前的幾篇部落格裡瞭解更多的關於我的團隊的背景資訊。)最近釋出的手機谷歌瀏覽器裡的資料壓縮代理支援就是我們比較複雜的專案之一。我們還負責PageSpeed系列的技術開發,專注於手機web的優化,還有一些其它很酷的技術,只是我不能在這裡說。

  我的正式頭銜只是“軟體工程師”,這是在谷歌最普通但卻是最讓人垂涎的角色,我說“垂涎”,是因為在谷歌所有重要的決策都是軟體工程師來拍板。私下裡,大家稱呼我為“Tech Lead Manager”,就是說,我不僅要負責技術方面的指導,還要做人事管理工作。在谷歌,“Tech Lead Manager”並不是一個很常見的職位,大多數團隊都有專門人員分別負責技術工作和管理工作。我身兼兩職,部分的原因是辦公室在西雅圖,如果讓團隊向一個在總部辦公的“專職”經理彙報工作,會有很多不便的地方。而且我非常喜歡身兼這兩職,喜歡這種多樣性。

谷歌西雅圖辦公區

  我的工作主要有4個方面:(1)給團隊制定技術方面的日常工作事項,確保他們能順利完成任務;(2)自己要寫些程式;(3)作為團隊和谷歌其它專案組之間的協調人,最後(4)做一些團隊的“人事管理”,包括招聘,績效考核,晉升獎勵等。

  學院裡任職的人馬上就能看出這些和做一個教授之間的區別。在學院裡帶領一個團隊做學術研究,教授是導師,給研究小組定技術範圍,指導研究生研究。而在谷歌,這最大的不同是,我不能把團隊裡的這些人當成我的“學徒”——就像導師和研究生的關係。事實上,團隊中的大部分人都是比我更強的技術人員,我完全要依靠他們的努力工作來開發出強壯、穩定的軟體。我的工作是保護團隊中的這些工程師不被打擾,在各方面給他們支援,幫助他們能順利完成任務。

  很顯然,這跟學院裡的生活有很多不同。跟教授不一樣,我不需要四處募款來讓研究專案能繼續下去。我很少再受到委員會工作、各種考察、寫推薦信、無意義的會議等方面的打擾。當然,也不需要給學生上課。(我喜歡教學,但如果你想教出好成績需要大量的工作。)最重要的,我的團隊的成功與否不是通過隨意的或常常主觀的個人評審過程決定的——在學院裡幾乎所有的事情都靠這種評審。在這裡,這是讓我最喜歡的部分。如果我們做的很好,提交了產品,吸引了使用者,那我們就勝利了。再也不需要為了讓那個幾個評審委員會裡性情乖戾的老頭高興而費盡腦筋的琢磨在學術論文裡應該使用什麼樣的字型。我是有點說跑題了。

  我大概要花50%的時間來寫程式碼。我真的需要每天有一些固定的時間編寫程式碼,這樣能讓我安靜下來,清醒頭腦。不像團隊中的其他人,我很難有長時間不被打擾的時間段,所以我主要開發一些比較簡單的任務,比如寫MapReduce程式碼來分析服務日誌,並生成效能報告。我真的非常喜歡做這樣的事情,這種任務能讓我接觸到海量資料,用各種有趣的方式來拆解、彙總它們。因為我不需要通過展示高超的程式設計技藝來獲取晉升機會,所以,那些非常惹眼的新功能都讓團隊中比我強的人去做。

  我在團隊軟體開發大方向上會輸出重要的影響,包括設計和架構方面。很大程度上是因為,相比起團隊中的那些小夥,我在系統設計方面有更多的經驗,當然,在某些我不熟悉的細節問題上,我需要聽從那些實際編碼人的意見。我的很大一部分工作是設定優先順序,當在解決某個特殊問題,需要在幾個都不怎麼樣的解決方案間做選擇時,我來拍板。(這也意味著,如果決策是錯誤的,我來承擔責任。)

  我估計我所作的人事管理方面的工作跟行業中其他人的做法沒有什麼不同:寫週期性的績效考核報告,制定薪水浮動計劃,給團隊招聘新員工,給團隊成員爭取晉升機會。我定期的會和他們每個人交流,幫助他們理解工作上的重點,消除他們的疑慮,指導事業發展方向。

  我工作上最大的一個變化要數以團隊代表的身份和谷歌其它團隊接觸,來保證溝通合作順利。我的團隊只是這個大型的Chrome專案團隊的一部分,我們和谷歌遍佈全球的各種技術部門的開發團隊都有聯絡。我經常的會參加一些會議來確定如何跟公司內的其他團隊合作。所以,我的工作永遠不會覺得無聊。而且我們的會議都是非常高效的(大部分都半小時內能搞定),儘管如此,我的會議量也接近在大學工作時的一半之多。(但比較起來,大學裡僅有10%的會議能有實質成果。)

  儘管事物繁雜,工作量大,我在谷歌的作息時間基本上是朝九晚五。我很少晚上或週末加班,除非是有些事情我非常渴望去做,並且在工作時間外沒有人會發郵件給我。(因為開發團隊的一個排程程式,最近曾在半夜花了幾小時修改一個產品bug。)我感覺這是一種從作為教授特有的持續壓力下的工作、工作、工作狀態的解脫。我感覺我的工作產量更大了,而且用了更少的時間,這歸功於干擾分心的事情減少,能夠維持一個專注的心態。目前我們的工作方法是:如果我們需要完成比正常情況下一週的工作還要多的工作,我們就去招聘更多的人。幸運的時,似乎沒有遇到過這種情況。

  英文原文:Running a software team at Google

相關文章