写点什么

谷歌为何能持续创新?工程经理亲自揭秘“工程师文化”

  • 2019-07-12
  • 本文字数:5011 字

    阅读完需:约 16 分钟

谷歌为何能持续创新?工程经理亲自揭秘“工程师文化”


谷歌成立于 1998 年,以搜索起家,到目前为止已经发展了 21 年。在过去的 21 年中,谷歌不断创新,开发了七款产品,拥有超过 10 亿级活跃用户,谷歌的工程师文化一直被认为是优秀且特别的,本文整理自 ArchSummit 全球架构师峰会(深圳站)冯丹的演讲,详细分享了谷歌的工程师文化和产品理念。


大家好,我叫冯丹,现在谷歌担任工程师经理,今天和大家分享我对谷歌工程师文化的理解,以及这种文化如何帮助谷歌不断持续创新发展。


首先做一下简单的自我介绍,我本科就读于南开大学,在美国攻读博士学位,先后就职于亚马逊、Pinterest、谷歌。今天,我的分享主要围绕谷歌展开。


谷歌成立于 1998 年,以搜索起家,到目前为止已经发展了 21 年。在过去的 21 年中,谷歌不断创新,一共开发了七款产品,拥有超过 10 亿活跃用户,特别是安卓,已经拥有超过 20 亿活跃用户,还不包括从安卓衍生出的其他系统。


如果用一句话解释谷歌的过往成长,我认为是谷歌非常相信人才,并依靠他们来推动公司发展。谷歌大规模招募最优秀的人才,而谷歌的责任是为这些人创造最好的环境,帮助他们达到目的并实现梦想,因而推动谷歌发展到下一个阶段。这样说可能比较抽象,接下来,我将介绍谷歌的目标、招募原则以及如何为人才提供最佳环境,最后向大家介绍谷歌的产品理念以及如何完善产品。


首先,终极目标决定公司的核心价值观以及企业文化。作为一家公司,谷歌的终极目标是分析全世界所有信息,让大家无界有效使用(信息)。谷歌内部的不同部门都有自己的目标,这可能和公司的整体目标略有不同,但大方向是一致的。此外,每位员工都有自己的 OKR,“O”代表下个季度的目标,这需要与整个组的目标相结合,“KR“指通过完成哪些事情达到最后的季度目标。


上述指标在日常工作中起到非常重要的作用,尤其是当你想做的事情与最终目标发生严重冲突时,这就需要根据终极目标做出正确判断。回想十年前的 2009 年,谷歌决定撤出大陆市场,这在当时引起极大争议,很多人无法理解为什么谷歌当时选择放弃中国如此庞大的市场,但是谷歌的两位创始人依旧选择坚持目标和企业文化,放弃短期利润。在过去十年,整个世界包括中国都发生了巨大的变化,回头看这件事情具体的细节或许可以有不同的做法,但很庆幸谷歌的创始人选择了坚持自己的文化 。文化的坚持是非常困难的,如果每次发生冲突的时候都选择改变公司的文化,那么公司文化坚持不了太久。

谷歌的工程师文化

在公司文化得以确定后,下一步就是考虑如何大规模招募优秀人才。谷歌招募优秀人才的理念非常特别,未必适合所有公司,但谷歌一直是这样坚持的。谷歌招募人才的理念是:只要你足够优秀和足够聪明,就可能被雇佣。


如果你对美国的教育文化有所了解,就会知道美国教育文化有两个词语不可以用:一是 Stupid;二是 Smart,既不可以评价一个人愚蠢也不能说一个人者聪明的。谷歌有自己的理念,在面试过程中,谷歌会把标准提得非常高,甚至有些面试者觉得谷歌是不是有意刁难他?其实没有,我们仅仅是希望招到最优秀的人才,这就是谷歌甄别人才的标准。


在谷歌,招聘时通常不会只要求满足一个特定职位的需求,谷歌招的所有员工,无论什么职位都要达到整个公司的标准,因为员工入职后短期内可能做这个职位,长期可能公司会有更高的期望,希望可以做些别的东西。此外,一个面试官无法确定候选人的去留,所有面试官都需要给出意见,综合这些意见才会对候选者做出最终判断。谷歌相信,优秀的人周围往往会聚集同样优秀的人才,我们非常鼓励这些人的朋友到谷歌面试。我们不仅考量技术能力是否达到标准,也要考虑是否符合企业文化,并认同我们的使命。如果仅仅是技术实力非常强,但是并不认同谷歌的文化,长远来看,这对双方都不利。


具体如何操作呢?谷歌会做三件事情:首先,随机的选取符合标准的面试官;其次,面试官没有权利做最终决定,只能写下对候选者的看法和候选者对面试问题的回答,谷歌会综合所有意见进行决定;最后,接触录用你的团队,谷歌不会将员工放在固定的位置,相反会询问候选者的兴趣,可能会让候选者从几个团队中选择感兴趣的,然后双方进行了解,如果合适就可能被录用。正是由于谷歌有这样的面试流程,才保证内部的每位员工都非常优秀,包括工程师、产品经理以及项目经理等。


当你通过所有面试并入职成为这家公司的一员,谷歌会不遗余力的地创造更好的环境,以帮助你实现梦想。谷歌有一个非常重要的理念,内部的所有产品永远不会被认为是某个人或者某个团队的,全部都是谷歌的产品,任何人都有机会进行改进,只要这对用户而言是有价值即可。


关于此,谷歌有一个最经典的案例。创办早期,谷歌的创始人发现广告结果非常不好,于是他写了一句话:“搜索结果太差了”,并将其贴在了冰箱上。数位工程师看到后,利用周末的时间找到了解决方案,周一就发给 CEO 表示这个问题应该这样解决。可见,每个人都有权利对谷歌的任何产品进行改动,只要你做的事情是正确的。在谷歌,有一个“20%的项目”的说法,意思是每位员工每周可以花费一天的时间来做与正在做的工作无关的事情。当然,如果你想利用这些时间创业还是很难实现的,成功的可能性比较小,我们内部更多是用来进行不同组之间的项目交流。比如,如果我们需要具备某种技能的程序员,我们可以创建 20%的项目,然后交由其他部门的同事帮忙实现。


在谷歌,如果你有一个好的想法,可以写成提案交给委员会,如果该提案被认定非常好并可用来创业。谷歌可以给你六个月时间,在内部寻找合适自己的团队开始创业。在这六个月的时间内,你们整个团队可以把精力全部放在项目上,时间一到,委员会将再次进行评估,并决定是停止还是另外再多给六个月。谷歌的人工智能电话机器人就是这样演变而成的,起初,谷歌内部的一位员工在为家人改签机票时,发现需要耗费一两个小时才可完成,于是他提出希望用人工智能的方式自动给航空公司打电话完成这个过程的想法,整个项目从最初较为粗糙的订餐软件开始逐渐演变成如今的人工智能电话机器人。


关于产品的想法,通常有两个渠道可以获得:自上而下和自下而上。相较而言,谷歌更多强调自下而上,我们经常强调不需要一个很大的团队做很创新的事情,有些事情可以从小就开始做,并逐渐做大。


在日常工作中,谷歌不仅鼓励工程师做自己的事情,同时鼓励大家思考未来,比如怎样将产品提高 10 倍。举例来说,以前,大家出行更多是绿皮火车,如今更多是高铁,从绿皮火车到高铁,速度提升了数倍,但很难从绿皮火车直接演变成今天的高铁,因为它们整体设计都是不一样的。这就是谷歌一直在强调的,工程师需要思考这个行业未来五年可能的样子,以及技术是否会发生变化,每位谷歌的工程师不仅需要思考下个季度做什么,经常也会讨论五年之后做什么。


作为一名谷歌的工程师,经常会被问到一个问题:会不会担心五年后失败?失败其实很常见,毕竟五年后的情况很难预测。但是,如果一家大公司从来没有失败,很可能意味着从来没有做过创新和探索未知领域,不乏有公司日复一日做同样的事情,直到一家新兴公司在某时出现将其取代。


如果你是谷歌的员工,谷歌的所有资源对你来说都是完全开放的,可以接触到所有源程序、文档,几乎可以参加所有会议,除非涉及商业机密,或者是与其他公司合作,内部活动都可以参加。谷歌的文化鼓励大家充分交流,可以随意找完全和你没关系的人说想了解他们的产品,他们会很乐意与你分享。在谷歌内部,大家不会认为这件事情已经说过就没必要再说一遍了,只有通过不断交流才能碰撞出火花,才能不断创新。


根据谷歌的工程师文化,工程师不仅可以对产品和技术提出看法,也可以对公司的各个方面提出建议,从产品到公司运作。谷歌内部经常会进行各种集会,这是一件非常正面的事情,这是员工自由表达自己的想法一种方式,公司每周都会有相应的员工大会,每个部门都会分享最近在做的事情以及未来规划,员工也可以直接向 CEO 提出非常尖锐的问题。每年,谷歌都会对员工进行调研,了解每位员工对所在团队、部门和公司的看法,谷歌会基于此提出更优的方式,以保证这家拥有 10 万人的大公司可以长足发展。

谷歌的产品文化

在这一部分,我想简单介绍谷歌的产品文化。做产品,最重要的就是用户,谷歌经常会思考如何提高用户和合作伙伴的体验,很少考虑与之无关的事情,比如谷歌的开支和营收。有些人可能认为是因为我的职位和部门不需要考虑营收这件事情,一家公司怎么可能不考虑营收。其实不然,即便是谷歌的广告部门也不会经常讨论营收,商业模式一年讨论一两次证明是对的就可以了,不需要花费过多精力。他们的大部分精力应该集中在广告结果的质量上。当然,提高质量可能会带来更多收入,但他们的初衷并不是靠广告挣钱,而是提高用户体验。


总体来说,谷歌非常欢迎竞争,无论内外都是非常开放式的环境,因为只有竞争才能让产品更好,只有竞争才能让谷歌更好。在面对竞争时,有些事情谷歌会做,有些事情谷歌不会做,比如我们不会因为竞争对手做了一件不可取的事情,而做出同样的事情。谷歌会仔细考虑这件事情对用户是否有帮助。有帮助就做,如果没有帮助,即使竞争对手做了,谷歌也不会做。


非常重要的是,谷歌不会做任何一件事情导致竞争对手没有办法与我们竞争。我们始终关心的是用户体验,而不是其他因素。如果谷歌有一个想法,会在最短的时间内和用户分享,并根据用户反馈不断优化,然后思考下一步如何提高。以谷歌地图为例,最初的版本非常简单,在那个还没有智能手机的年代,谷歌地图打印出来的颜色非常淡,这个问题一经提出很快就被解决,在随后的数月内,谷歌地图又加入了众多新功能。谷歌内部的很多产品往往一周就会发布多个版本,这个过程就是在不断修复 Bug 或者加入新功能。


在谷歌,从来不会根据一个人的级别或者职位来判断所做事情的对错,始终通过数据说话,数据贯穿产品开发的整个生命周期。当新的项目或者设计出现时,第一件事情就是询问需要搜集哪些数据,如何利用数据评估项目成败。项目发布之后,我们会通过多个渠道搜集数据进行比较,并询问用户体验。如果符合预期,那么就证明产品是成功的,即便数据与想象的结果不一样,我们依旧选择尊重数据。

谷歌的管理团队文化

在这一部分,我想花点时间分享谷歌的管理团队文化,谷歌通过两个不同的方向评估管理团队:一是培养团队的能力;二是执行力。二者之中,谷歌更加强调培养团队的能力,因为不论产品想法多好,执行力多强,如果没有非常强的团队完成这件事情,最后什么也做不出来。


谷歌招募最优秀的人才,而最优秀的这群人往往都非常有个性。因此,作为团队管理人员,非常重要的一件事情就是必须在团队里面创造包容的氛围,无论员工的个性如何,只要能够完成他的理想,他就应该被接纳,并感觉团队非常安全,可以说想说的话,做想做的事,最后实现目标。


如上文所言,谷歌不会把员工放到固定的位置,每位员工都应该有自己的成长空间。作为管理者,一定要结合员工需求,如果员工需要更好地发展,更好的工作和生活,管理者必须要给员工适合的方案,满足他们的需要。优秀的工程师往往更加关注自己做的事情,有些时候会忽略其他事情,比如不能很好地与他人交流、合作等,谷歌完全可以容忍这些问题,但作为团队管理人员,为了把员工带到更高的层次,必须想办法让他们得到提高。


此外,团队管理人员一般要求对产品具有非常清晰的想法,不管是两年还是五年以后要做的事情,头脑里面都要有非常清晰的想法,以及如何逐步实现这一目标。


在谷歌,很少有人只做纯粹的人事管理,每位管理人员包括我自己都做了很长一段时间的技术。我们非常强调结果,如果所带团队的员工没有办法做好这件事情,管理者必须和团队员工一起把问题解决掉。作为一家庞大的公司,谷歌的挑战就是解决各种问题,如果同一个问题,其他团队已经有解决方案了,就需要寻求其他团队的帮助,或者帮助其他团队,这也是优秀管理者的重要标准之一。


最后,谷歌要求管理人员都对技术有非常深入的了解,只有如此才能明白队员在讨论什么,以及如何提供指导。任何一个问题,谷歌内部这些优秀的人才都会提出各种不同的解决方案,当很难找到最优方案时,管理者此时就需要对这件事情进行抉择,并表明原因。


以上就是我想跟大家分享的全部内容。谷歌不仅希望大家努力工作创造历史,也希望大家可以享受在谷歌的每一天。


嘉宾介绍:


冯丹,为谷歌云构建 SaaS 平台;曾担任 Pinterest 的微服务首席架构师。率领整个软件栈从单体架构迁移到面向微服务的架构体系;前亚马逊 Kindle WhisperNet 的技术领导。


2019-07-12 19:486816

评论

发布
暂无评论
发现更多内容

Nginx服务不行了怎么办,网商银行java面试

Java 程序员 后端

MySQL:第一次看到有人把MYSQL主从复制讲解的这么清楚,mysql教程菜鸟

Java 程序员 后端

Netty中序列化框架MessagePack的简单实现,java技术面试完了复试

Java 程序员 后端

Netty学习之旅------图说Netty线程模型,java项目面试难点

Java 程序员 后端

Netty相关面试题汇总,java从入门到精通第五版电子书下载微盘

Java 程序员 后端

Redis 变慢了?那你这样试试,不行就捶我,mybatis工作原理图

Java 程序员 后端

MySQL 5,java架构师成长直通车

Java 程序员 后端

Netty入门教程——认识Netty,今年最新整理的《高频Java面试题集合》

Java 程序员 后端

Netty进阶:手把手教你如何编写一个NIO服务端,java集合容器面试

Java 程序员 后端

OpenFaaS实战之二:函数入门,mysql集群数据同步原理

Java 程序员 后端

Nginx配置反向代理和负载均衡,疯狂java讲义pdf百度云

Java 程序员 后端

【架构实战营】模块三

衣谷

架构实战营

Netty权威指南:I-O-多路复用技术,java技术点总结

Java 程序员 后端

new-Object()到底占用几个字节,看完这篇彻底明白了!,springboot微服务架构书籍

Java 程序员 后端

Red5搭建直播平台,java淘宝客教程

Java 程序员 后端

MySQL数据库--几种数据迁移的方法详解都在这了!看完必懂

Java 程序员 后端

Oracle最新的Sql笔试题及答案,Java面试真题解析火爆全网

Java 程序员 后端

MySql数据引擎简介与选择方法,和字节跳动大佬的技术面谈

Java 程序员 后端

Netty案例介绍-群聊案例实现,java架构师教程百度云

Java 程序员 后端

Netty进阶:手把手教你如何编写一个NIO服务端(1),Java笔试常见编程题

Java 程序员 后端

OpenYurt v0,linuxshell学习

Java 程序员 后端

MySQL最全整理(面试题+笔记,华为算法工程师面试经历汇总

Java 程序员 后端

Navicat for MySQL 执行sql文件过程分析(导入数据),中软国际Java笔试题

Java 程序员 后端

Nginx + Tomcat 搭建负载均衡,大牛带你直击优秀开源框架灵魂

Java 程序员 后端

RabbitMQ不讲武德,发个消息也这么多花招,nginx实现负载均衡原理

Java 程序员 后端

MySQL 事务隔离级别,java面试常问的设计模式

Java 程序员 后端

MySQL 千万数据量深分页优化,mybatis从入门到精通pdf

Java 程序员 后端

MySQL 数据库开发入门(四),java高薪训练营百度网盘

Java 程序员 后端

MySQL入门篇,java三层架构登录功能实现

Java 程序员 后端

P8级大佬整理在Github上45K+star手册,吃透消化,java算法面试题及答案pdf

Java 程序员 后端

Peter-Java 8中的Lambda表达式,java领域的相关技术领域

Java 程序员 后端

谷歌为何能持续创新?工程经理亲自揭秘“工程师文化”_AI&大模型_冯丹_InfoQ精选文章