

我在谷歌管理一个开发团队
source link: http://www.androidchina.net/5552.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

自从我离开哈佛后,经常有人问我现在在谷歌工作是什么样的情况。我猜想很多人会认为从一个终身教授到一个软件工程师的转变存在很大的身份落差。但除了这个头衔外,我工作的还是很高兴的,而且在这个新角色上,我的工作效率比以前在哈佛任教的8年中的任何时候都高——尽管当一名教授和管理一个开发团队在很多方面都有非常相似的地方。
我在谷歌的西雅图办公区带领一个开发团队,这个团队负责手机网站性能方面的一批技术工程。(你可以从我之前的几篇博客里了解更多的关于我的团队的背景信息。)最近发布的手机谷歌浏览器里的数据压缩代理支持就是我们比较复杂的项目之一。我们还负责PageSpeed系列的技术开发,专注于手机web的优化,还有一些其它很酷的技术,只是我不能在这里说。
谷歌西雅图办公区
我的正式头衔只是“软件工程师”,这是在谷歌最普通但却是最让人垂涎的角色,我说“垂涎”,是因为在谷歌所有重要的决策都是软件工程师来拍板。私下里,大家称呼我为“Tech Lead Manager”,就是说,我不仅要负责技术方面的指导,还要做人事管理工作。在谷歌,“Tech Lead Manager”并不是一个很常见的职位,大多数团队都有专门人员分别负责技术工作和管理工作。我身兼两职,部分的原因是办公室在西雅图,如果让团队向一个在总部办公的“专职”经理汇报工作,会有很多不便的地方。而且我非常喜欢身兼这两职,喜欢这种多样性。
我的工作主要有4个方面:(1)给团队制定技术方面的日常工作事项,确保他们能顺利完成任务;(2)自己要写些程序;(3)作为团队和谷歌其它项目组之间的协调人,最后(4)做一些团队的“人事管理”,包括招聘,绩效考核,晋升奖励等。
学院里任职的人马上就能看出这些和做一个教授之间的区别。在学院里带领一个团队做学术研究,教授是导师,给研究小组定技术范围,指导研究生研究。而在谷歌,这最大的不同是,我不能把团队里的这些人当成我的“学徒”——就像导师和研究生的关系。事实上,团队中的大部分人都是比我更强的技术人员,我完全要依靠他们的努力工作来开发出强壮、稳定的软件。我的工作是保护团队中的这些工程师不被打扰,在各方面给他们支持,帮助他们能顺利完成任务。
很显然,这跟学院里的生活有很多不同。跟教授不一样,我不需要四处募款来让研究项目能继续下去。我很少再受到委员会工作、各种考察、写推荐信、无意义的会议等方面的打扰。当然,也不需要给学生上课。(我喜欢教学,但如果你想教出好成绩需要大量的工作。)最重要的,我的团队的成功与否不是通过随意的或常常主观的个人评审过程决定的——在学院里几乎所有的事情都靠这种评审。在这里,这是让我最喜欢的部分。如果我们做的很好,提交了产品,吸引了用户,那我们就胜利了。再也不需要为了让那个几个评审委员会里性情乖戾的
老头高兴而费尽脑筋的琢磨在学术论文里应该使用什么样的字体。我是有点说跑题了。
我大概要花50%的时间来写代码。我真的需要每天有一些固定的时间编写代码,这样能让我安静下来,清醒头脑。不像团队中的其他人,我很难有长时间不被打扰的时间段,所以我主要开发一些比较简单的任务,比如写MapReduce代码来分析服务日志,并生成性能报告。我真的非常喜欢做这样的事情,这种任务能让我接触到海量数据,用各种有趣的方式来拆解、汇总它们。因为我不需要通过展示高超的编程技艺来获取晋升机会,所以,那些非常惹眼的新功能都让团队中比我强的人去做。
我在团队软件开发大方向上会输出重要的影响,包括设计和架构方面。很大程度上是因为,相比起团队中的那些小伙,我在系统设计方面有更多的经验,当然,在某些我不熟悉的细节问题上,我需要听从那些实际编码人的意见。我的很大一部分工作是设置优先级,当在解决某个特殊问题,需要在几个都不怎么样的解决方案间做选择时,我来拍板。(这也意味着,如果决策是错误的,我来承担责任。)
我估计我所作的人事管理方面的工作跟行业中其他人的做法没有什么不同:写周期性的绩效考核报告,制定薪水浮动计划,给团队招聘新员工,给团队成员争取晋升机会。我定期的会和他们每个人交流,帮助他们理解工作上的重点,消除他们的疑虑,指导事业发展方向。
我工作上最大的一个变化要数以团队代表的身份和谷歌其它团队接触,来保证沟通合作顺利。我的团队只是这个大型的Chrome项目团队的一部分,我们和谷歌遍布全球的各种技术部门的开发团队都有联系。我经常的会参加一些会议来确定如何跟公司内的其他团队合作。所以,我的工作永远不会觉得无聊。而且我们的会议都是非常高效的(大部分都半小时内能搞定),尽管如此,我的会议量也接近在大学工作时的一半之多。(但比较起来,大学里仅有10%的会议能有实质成果。)
尽管事物繁杂,工作量大,我在谷歌的作息时间基本上是朝九晚五。我很少晚上或周末加班,除非是有些事情我非常渴望去做,并且在工作时间外没有人会发邮件给我。(因为开发团队的一个调度程序,最近曾在半夜花了几小时修改一个产品bug。)我感觉这是一种从作为教授特有的持续压力下的工作、工作、工作状态的解脱。我感觉我的工作产量更大了,而且用了更少的时间,这归功于干扰分心的事情减少,能够维持一个专注的心态。目前我们的工作方法是:如果我们需要完成比正常情况下一周的工作还要多的工作,我们就去招聘更多的人。幸运的时,似乎没有遇到过这种情况。
转载请注明:Android开发中文站 » 我在谷歌管理一个开发团队
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK