Uber首席系统架构师:快速扩张决定Uber今天的工程师文化

10月16日,EGO“研发梦工厂:番茄工作法+Uber团队管理实战案例”在2015QCon上海的分会场顺利举行,现场邀请到了Uber首席系统架构师、Voxer联合创始人Matt Ranney,为大家带来了Uber的工程师文化。

我想给大家分享一下我们Uber的文化和管理,这些在全球也都是关注度很高的内容。

先分享我们近期的一些运营数据,现在Uber覆盖全球61个国家340个城市,每天完成3,000,000次乘车,全球员工4,000人,其中工程师1,000多人。

之所以需要这么多人、这么多工程师,一个是因为Uber的发展非常迅速,另外也是因为我们雄心勃勃,我们想要成为全球领域的供应商,因此需要在全球不同的市场提供服务,而每个市场又有自己的独特性,所以不管是业务、工程设计、还是技术服务,我们都需要如此多的人员去支持Uber的快速成长。

当然要雇佣这么多人,过程中我们需要去面试更多的人,这就需要花费非常多的时间,而且,仅仅在一场面试中,我们很难了解这个工程师到底行还是不行,所以每一个面试者要经过我们很多工程师的面试,这样我们现在在职工程师就要花很多时间去面试这些新人员,这也成为他们工作的主要部分,对他们来说也是一个挑战。

Uber的文化

促使我们快速向前奔跑的驱动力之一,是希望能为城市带来更加便利的生活,提高人们的生活质量,这也是我们一直致力于做的。Uber一直在全球拓展业务,发展非常快,而这种快速发展也决定了Uber的文化。

1. MERITOCRACY

这意味着在所有的点子中,我们会选择最好的那一个,无论这个点子来自于谁,也就是英雄不问出处,只要它是好点子就行。

同时,在Uber,我们鼓励员工挑战高层,我们鼓励大家不要害怕去向自己的老板挑战,只要你有好的方法、只要你认为你的想法能帮助到公司,你都可以提出来。

我刚开始在Uber工作的时候,Uber缺少很多基础架构,这个阻止了Uber的发展,所以我不得不向高层去挑战,一开始他们不高兴,但是最终他们意识到这么做是正确的,当然交谈过程并不是非常愉快,但是我们还是要这么做。

2. LET BUILDERS BUILD

Uber的另一个文化是给员工一种真正的授权,尽量让真正做产品的人能有自主的权力,去开发这些产品、去发展公司,而尽量减少官僚主义。

3. ALWAYS BE HUSTLIN’

在Uber,我们倡导的并不是最快,而是要最有创意地去解决问题。你可以不找到一个问题的最佳解决方案,但你可以想各种各样的点子,最后用各种各样的创意去解决问题。

可以举一个例子,早些时候,世界上有些城市并不想要Uber进入他们的城市,所以他们会尝试去黑我们的系统。我们就想出了一个办法,我们包括很多工程师花了一个通宵的时间,另外我们还使用了其他的技术供应商来帮助我们重新打造另外一个版本的基础架构,通过这种方法防止他们来黑我们的系统,所以我说要很有创意的来解决问题。

4. CUSTOMER OBSESSION

也就是客户至上,我们客户是乘客和司机,我们所做的一切都是为了让他们的生活更加便捷、更加好,所以我们所做的一切决定都是为了他们,为了帮他们解决问题。

这几天我在上海使用Uber,我非常震惊的是,在上海Uber带给用户的体验要比在美国糟糕很多。我一直在跟我们的工程团队沟通,如何解决这个问题。我们如何才能让中国的用户拥有其他地方一样好的体验。所以在很短的时间里面,以及很少的邮件沟通之下,很多工程师都积极参与到这里面了,因为我们工程师都希望全球各地的用户都能够体验到Uber的好处。

5. SUPERPUMPED

这其实是我编出来的一个词,指的是一种态度,要超级有热情地对待工作,就像打了鸡血一样,在工作中要有非常高的积极性。

这里那我自己做一个例子,我每周要面试7位工程师,这是一个非常大的工作量,但是我还是非常兴奋地能做这些,因为我希望能尽量招到好的工程师加入我的团队,所以我每次面试的时候都非常兴奋。

6. BIG,BOLD BETS

就是大胆的下赌注的意思,虽然说Uber可以成为一个成功的公司、一种成功的模式,但是由于技术的发展是非常快的,如果我们没有办法做好规划,去应对未来5年技术的发展,那我们公司就很有可能被颠覆。所以我们要尽最大的可能去对未来进行投资,这也是我们所做的大胆的赌注,赌未来的走向。

大家可以去了解,实际上Uber的投入非常大的,在技术方面的投入非常大,在自有车辆方面也投入了很多。我们所做的所有投入都是希望能够建立一个非常高效的运营网络,所以再过几年之后,我们相信很难有其他竞争对手和我们比拼了。

Uber的工程师文化

之前谈到的这些文化都是从Uber整体上来说的,都是公司层面的价值观,但我作为一个工程师,也特别希望从工程师角度来讲一讲Uber的工程师文化。

Scalability、Availability与Cost

这三点是我们优先考虑的几个问题,一是可扩展性,也就是近些年来我们一直专注于不断扩展公司的业务,如果我们不能扩展系统的话,就没办法满足来自于全球的需求。比如对Uber来说,一年当中最忙的一天就是新年之前的一个晚上,这一晚上的需求是一年中最高需求的两倍。

现在,Uber已经足够成熟,我们的系统已经能够应对这些高峰值了,所以我并不担心系统的可扩展性,我们现在就要考虑到可用性了,要想一想,在哪些地方、哪些城市能用到Uber,也就是说可用性有多高的比例,我们的服务是完全没问题的,是能够供应得上的。

第三点是成本,以后我们可能会考虑成本的问题,但目前为止我们完全不在意。其实我并不想把这一点让我们投资人看到,因为我不想让他们知道成本是我们最少考虑的,这并不是说成本不重要,但是Uber在这一阶段愿意做一些投入,我们更加关注系统可扩展性,而现在就是更关注到我们服务的可用性。

POWER OF ENTHUSIASM

重要的是这种热情,这关乎到我们到底该选择哪些技术去打造系统,因为我觉得最重要的是能够让我们的开发人员对未来技术是感到非常兴奋的、是非常有热情去做的,不是说他们觉得这个技术很无趣、并不想做。

比如在Uber,我们使用了Node.js的技术,可能很多开发人员觉得这并不是一个好的技术,但是我们却发现公司开发人员对Node.js非常喜欢,所以公司决定去拥抱这个技术、去使用这个技术。

MULTIPLE TRACKS

在Uber,对于工程师而言有两个发展方向,一个可以向技术管理的方向发展,另外他们也可以以个人技术的独立发展为发展方向。这点其实是很多软件公司所忽视的,但是Uber和其他几家公司非常重视这一点,对这两种不同发展方向是有同等路径的,技术人员可以自由选择自己想走的路。

其实管理人员的主要职责就是做管理工作,如果你想要继续编码,你可能更适合当个人工程师,因为作为经理,你要编写很多的文件,参加很多会议,这会是你工作的主要内容。

这是我们列出来的一些职位title,是两个不同方向发展的title,大体上都是一致的。

可以看到第一阶段算是Engineer 1和Engineer 2,因为我们希望他们能够多工作一段时间,有一个更好的技术基础。其实我们并不是在每一个层级上都有相对应的岗位,最主要的是Senior Staff Engineer,我也是其中之一,在管理层面上被称之为Director。相信随着我们所雇佣的员工越来越多,这个基层也会越来越大,还会雇佣到更高级别的人员。

版权所有 转载请注明:

EGONetworks
EGO超级极客邦
全球最具影响力的
高端技术人社交网络
(0)

相关推荐