当前位置: 首页 > 科技观察

一位在谷歌工作十年的老工程师:我宁愿把团队交给别人_0

时间:2023-03-15 01:20:50 科技观察

我在谷歌待了10年半,离开时的头衔/职位是StaffSoftwareEngineer/Manager。大致分为三个阶段:前两年专注于Linux桌面搜索产品和谷歌的开源项目;中间三年在谷歌中国相关产品上投入了大量精力,比如输入法、谷歌音乐等;KnowledgeGraph范围内的工作离不开最近GoogleSearch和GoogleNow的重大变化。期间写了很多代码,团队也带了好几个。另外,我长期在GoogleDoodles团队作为20%的开发者帮助开发那些好玩的首页涂鸦——嗯,这是真的,很多好玩的Doodles都有我的小小贡献。你学到了什么?好吧,它们有很多,而且非常复杂。让我只挑出四个最重要的。分化是第一次真正生活在一个分化的世界里。国内的教育风向来不喜欢差异化。个人爱好、冒险精神、特立独行等词,总会让家长、老师、领导、官员操蛋。从童年到成年,我基本上生活在一个试图把所有孩子都关在尺子、盒子和笼子里的世界里;你可以想象像我这样的70后,当他踏入谷歌时的感受。Google、Apple、Facebook、Twitter……对于员工来说,这些公司本身就是一种鼓励差异化生存的大家庭、大社会。其中,谷歌一直扮演着领导者的角色,这是在谷歌工作值得骄傲的事情。差异化最大的好处就是你有机会遇到各种了不起的人,然后,当你和那些在人生观、生活方式、个人爱好甚至行为习惯上有着巨大差异的人一起工作时,你会真正感受到你的自己生活的世界一点都不单调,有太多有趣的人和有趣的事等着你去发现。在谷歌,看到任何差异都不足为奇。小小年纪,既有蜷缩在角落写代码、讨厌与人交流的社交恐惧症患者,也有活力四射的社交明星。办公室里,有上班带狗的贴心人,有重视家庭的好父母,有通宵达旦工作的梦想家,有沉迷于奇怪爱好的技术极客……以爱好为例,在我的工作当中我以前的同事们,爱玩的爱好有:每天在车库里造怪形自行车,请无薪假帮别人竞选总统,每个周末去一个我从来没去过的地方住在这里旅行照片、研究古音韵学、下海考察海洋生物、长期倒卖二手摄影器材、写科幻小说、尝试超大气层跳伞、打破世界纪录……当然要尊重差异,而且你无法阻止任何人早睡晚起,每天只花两个小时做其他人可以在十二小时内完成的事情。在更大范围内,谷歌对LGBT社区的支持是众所周知的。一开始,我更多的是把这种支持理解为“政治正确”层面的东西。没过多久,我就意识到我的理解是多么肤浅。有一次,一对同性恋情侣在谷歌旧金山办公室公司餐厅的浪漫求婚视频火了一把,感动了很多同事。后来我才记起我曾在硅谷的一次会议上遇到过一对幸福的夫妻。还有一次,我的整个团队都收到了一封来自一位高管的电子邮件,宣布他的性别发生了变化,说从那天起,每个人都需要称呼他为“她”。与许多人的理解相反,发生在你身边的这些事情并不时不时提醒你LGBT群体的存在。相反,你经历的越多,你就越不会去关注他们——他们或者他们是人类普通的一员。我看不出太大区别。去年在YouTube上看谷歌宣传的纪录片《HUMAN》时,我很清楚Diversity这个词已经融入了我的血液,我的大脑和纪录片制作人的大脑没有差距。那时,我会看着屏幕上那些陌生的面孔,陷入沉思。我认为这个世界上最荒谬的事情之一就是人类的进化显然受益于基因和性格的差异。很多人其实是在嘲笑别人和自己的不同,想方设法的逼着别人去改变。我通常是固执和无知的。性取向、爱情、婚姻、家庭、工作和事业都是如此。谷歌员工经常面临一个典型的困境:因为很多同事早早离开谷歌去筹资、创业、上市、发家致富,像我这样在谷歌工作了十年的普通工程师却成了另类——问我“为什么?”没有离开谷歌的人”,眼中难掩不屑;另一方面,在家人眼里,我打算离开谷歌无异于亲手砸了这份黄金工作,留下稳定的收入和丰厚的福利待遇,还得带着不确定性去工作。其实,如果我们理解了“多样性”的重要性,这个困境就不会再成立了。既然有人选择了快节奏平凡的生活,我为什么不能辞去工作,追随自己的兴趣,从不同的角度去认识世界与自己的关系呢?为什么“慢生活”一定是一种逃避?宇宙是巨大的,而人类是渺小的。安全感是废话,活得有特色才是最重要的。在我改变看技术的心态去谷歌之前,我是在为中国的银行业做商业软件开发,为工商银行、中国银行等大公司做软件。这与谷歌以最终用户为导向的互联网背景大相径庭。以前看技术,觉得是身外之物,是工具,是砖头,是解决用户需求的必需品。这种心态并没有错,只是我不自觉地把自己放在了一个技术跟风的位置上。那时,我花了很多时间拼命地了解、学习和追赶新技术,生怕落后。从这个语言追到那个语言,从这个框架追到那个框架,从这个模型追到那个模型,从这个平台追到那个平台……根本停不下来。那时,我只是一个技术的“使用者”,就像搬砖盖房子一样。如果我天天不关心今年流行什么样的砖,明年流行什么样的房子结构,后年流行什么样的房子外观,我肯定会被拒绝。客户和其他程序员称之为“老式”。在谷歌挽起袖子后,我意识到以前的自己心胸狭窄、小气,是井底之蛙。原来,过去追求的很多顶尖技术,基本上都是谷歌工程师主导或参与的。而且,谷歌内部还隐藏着很多外界不知道的神奇东西。最重要的区别是——我现在是引领技术潮流的大团队的一员。以前我一直在学习别人怎么设计房子,别人推荐什么材料建房子。现在,顶尖的房屋设计专家和材料专家都在身边,我很快就能指导别人建造像他们一样的房子。这种感觉就像跳进了一个大宝库,清楚地知道自己不是小偷,而是宝库的主人。偷宝藏与创造宝藏之间的区别是微妙的。心态一下子变了,从技术的“使用者”变成了技术的“主人”。比如有一段时间解决C++的ABI相关问题,突然想起C++标准委员会相当一部分人在谷歌工作,大会在谷歌总部开了一年——那直接把同事和C++都拉过来了,权威决策者开个会讨论一下还不行吗?同样,Linux内核的维护者、Python的发明者、UNIX的元老、GoogleBrain的创造者……在这么多牛人的公司工作,你肯定不好意思单方面请教,但每当你有机会,你总是希望自己能像那些伟人一样为技术的发展做出贡献,哪怕只是一点点。再比如,MapReduce、Bigtable、TensorFlow等技术,这些最初由谷歌创立,对业界影响深远的技术,不仅是谷歌之外的工具,更是谷歌这一大群人的作品和骄傲。谷歌工程师。因为每个人都是主人,有什么不开心的地方,可以去修补源码,提交自己的补丁或者新功能,甚至推翻重做。别小看推翻重做,虽然很难,因为你要在说服老板和用户的同时找到足够多的开发人员,但事实上,谷歌重塑了一次、两次、三次的框架、工具和库在内部,接口和服务比比皆是。稍有分歧,就会创建一个新版本和一个新系统。这种缺陷不仅带来了无数的流程困惑,也带来了比山还高的良性竞争——表面的混乱之下,良性竞争带来的技术发展飞跃往往超乎想象。在谷歌,有数以万计的工程师。不能说人人都渴望成为技术大师,但志存高远的人大有人在。因为谷歌走在技术前沿,有抱负的工程师真的没脸做纯技术追随者。当然,我并不是说在谷歌没有人去做那些不太酷的“酷工作”,而是说大多数人都有一种竞争心态,即使是在做比较简单的技术工作时,他们也常常会思考如何做出世界级的效果。以面试为例。一个工程师想出了一道月球相关的面试题,把算法、编程、设计、维护等问题放在太阳系的背景下,层层提问。我在一次内部面试技术培训中用这个问题作为样本。结果,参与讨论的工程师们发表了两种截然相反的意见。有人说这道题设计的精巧,天马行空,也有人批评这道题与实际相去甚远。事实上,谷歌的技术书呆子们几乎每天都在现实和未来愿景这两个极端的对位、矛盾和转换中工作。常说的“仰望星空,脚踏实地”远非形容谷歌工程师的两面性。一方面,工程师很清楚自己的代码如何参与到这个地球乃至这个银河系最前卫、最大胆的计算机系统中,以及如何在十年后为搜索引擎、手机等东西做出贡献。或具有人工智能、量子计算机、基因工程、自动驾驶汽车等的机器人;另一方面,工程师“极客”和“书呆子”的一面,往往在外人难以察觉的工作细节中流露出来——这里有十多年专注于优化的编译语言专家、工具专家,设计最好的代码审查系统,亲自实现软硬件原型的技术总监,坚持为地球上每一种人类语言提供输入输出解决方案的国际化团队……这就是心态上的差异,或者说,技术领域的差异。它烙印在谷歌工程师的基因里,别人想学也未必学得来。“管理”这个词的含义有时对工程师来说很难管理,因为大多数人都有新的想法、很多想法、高远的眼光和强烈的个性。在谷歌,有时工程师很容易管理。只要鼓励他们把一件看似平凡的事情做成世界级的标准,他们的执行力就足够好,不需要被监管。在谷歌作为技术经理领导团队与在其他公司领导团队完全不同。这可能与技术团队的平均水平有关,但根本上是管理境界的问题。记得以前在别的公司,我在开发过程管理上花了不少功夫。现在想想,大多都是繁文缛节,程式化,教条化,像ISO9000这样最极端的流程认证,让大家疲于奔命。效果可能不会太好。到了谷歌,我发现了一个秘密,不管有多少规章制度,不管有多少流程,都不如一套简单易用的工具来得有效。比如以前的CodeStyle和CodeReview,把技术经理气死了,可是屡次命令,五次申请都无法执行。顶多流行三天,大家就服从了。在谷歌,这不完全是一个体制问题。刚进来的工程师没有通过ReadabilityReview,不能方便的自主提交代码,这是代码管理工具设置的硬限制。这直接把工程师送到评审委员会去“再教育”,没错,真的是“再教育”,连Python之父GuidovanRossum都费了好大劲才通过了Python的ReadabilityReview语言代码。接下来,在提交新代码之前,各种静态和动态检查工具会自动运行,帮你报告一系列的样式错误、编译错误、单元测试错误和简单逻辑错误。在进入同行评审阶段之前纠正低级错误。整个CodeReview在一个非常方便的web工具中完成,写代码和review代码的人可以很方便地在线互动、讨论,甚至修改代码。工具的“强制性”保证了系统的实施,工具的“便捷性”最大程度减轻了工程师实施系统的负担,两者相辅相成。当然,谷歌内部也不乏对系统敷衍的人,但与其他公司相比,谷歌确实做得更好。说到管理,在谷歌领导技术团队的人其实很痛苦。我已经两次把团队交给别人了,很乐意做一些简单的代码工作。原因很简单,头衔是Manager,但不能指手画脚,Google最好的teamleader都在一线带领大家一起工作,除了主动照顾脏的、累人的、大家都不想做的家务活。此外,你还得做管理者必备的非技术性工作,比如给大家写评论、定奖金、帮大家申请升职、和有心理负担的人谈话……一个人做两份工作就是吃力不讨好,对团队成员的晋升没有决定权(这也是好事)。这种Manager的活我不喜欢干,谁干谁干。不过,不管你喜不喜欢,谷歌截然不同的管理既明显混乱又无序,而且运作良好,着实让人惊叹。严格来说,聪明人聚在一起,只需要激励,不需要管理。Google的做法主要强调了这一点。老实说,我加入谷歌时,工程师只有3000人左右,无序管理、自发管理、扁平化管理是主流。谷歌越做越大后,大公司的病也如约而至。流程变得越来越复杂,层级越来越多,职责重叠和模糊,不同团队之间的管理风格也存在差异。但即便如此,谷歌基因中打破成见、抵制办公室政治、抵制繁文缛节的管理风格,依然可以在众多团队领导身上找到——这是谷歌身上的一个健康因素,一个至关重要的因素,也是弥足珍贵的。对了,最近华人圈子里一直在说不写代码/不会写代码的CTO。很多出身谷歌工程师的CEO/CTO都在朋友圈晒出自己的代码,以示态度。我个人对技术经理会不会写代码没有任何倾向,不管会不会写都能当好经理,但如果以“不会写代码”为荣,那是完全不能接受的。这是底线。我在谷歌面试过很多Manager和Director候选人,测试过对方写代码的能力或者至少讨论过一段代码——不是说他在管理过程中一定要写代码,而是怕他不会能和谷歌工程师交流,和谷歌技术基因不能共存。在谷歌做技术管理,学不到什么成文的规矩,能学到什么主要靠“悟”。看职业的心态许多人来到谷歌是为了更高的薪水。所以,我在这里只谈我自己。只有当我开始在谷歌工作时才有这种感觉。而且,那种感觉越来越清晰,越来越有吸引力,以至于十年后,我几乎把这种感觉当成了我工作的第一动力。怎么说呢,这种感觉可能很多人都有,大致描述就是:在整个职业生涯中,至少有一部分(甚至是一小部分)的时间可以用来纯粹为了快乐而工作。一个公司适不适合你,主要看这个公司能不能满足这个需求,或者能满足这个需求到什么程度。我在谷歌从事不同的项目,有时很辛苦,有时很痛苦,有时压力很大,当然也很有趣。但是普通的项目不能让我享受那种纯粹的快乐和快乐。所以,在过去的五六年里,我把20%的时间都花在了GoogleDoodles上,它既有趣又适合我。在项目中。涂鸦,嗯,主页涂鸦,一个纯粹为了让用户开心而设立的项目。这个项目不仅需要画图的美术师,还需要编写动画、音效和游戏代码的成员。不仅好玩,而且很有品位和文化。因为参与其中,我有机会在谷歌总部与一些了不起的艺术家一起工作,这真的很有趣。有一次我做了一个谷歌生日涂鸦,大家选了一个美国孩子过生日玩的游戏叫Pi?ata。在电脑上实现这样的游戏需要简洁的美术风格、支持JavaScript的物理引擎、流畅高效的动画引擎。这些都是技术细节,所以我不会在这里讨论它们。但是除了技术,我们这群追求快乐的人都在叫嚣要亲自玩一个真正的皮纳塔。那次在山景城,在谷歌总部有一个霸王龙骨架的空地上,我们把一个真正的皮纳塔挂在树上,轮流用竹竿敲打它,直到打到一片糖果地。十几位艺术家和工程师高兴得像孩子一样。那是一种非常纯洁、简单、快乐的体验。不管你在工作中有多少烦恼,你至少要为自己留出这样的空间。不管你叫它心情之家还是什么名字都无所谓,再小也一定要有这样的空间。对我来说,在参与Doodles项目的过程中,可以与Doodles所纪念的伟大科学家和艺术家进行跨时空交流,可以随时与正在设计制作的小动画、小游戏进行互动。拥有涂鸦的乐趣,这确实是一件美妙的事情。幸运的是,谷歌可以为像我这样追求幸福的人提供合适的机会。不幸的是,(我确定)许多公司从不考虑员工的需求。这大概是公司的基因决定的,不能勉强。正是因为我在谷歌十年的工作经历,我才毫不犹豫地将我职业生涯中最重要的追求定义为“快乐”。十年的职业生涯,除了快乐,还有厚重的历史感。尤其是谷歌中国这十年,我有幸经历了历史,也算是我人生中的一场大风雨。不幸的是,许多历史无法详细描述或评估。所谓春秋文体,既是史家的政治妥协,也是从更高维度审视历史的大智慧。总的来说,我喜欢一种不被动、本质上逃避世俗的“慢生活”。“快乐”和“多样性”是这种生活的力量源泉。离开谷歌后,我坚信今生就是我的未来。思绪越来越多,身心越来越老。下一个十年,请慢慢来。