业内软件工程师亲历:亚马逊和优步有什么区别?


640?wx_fmt=jpeg


全文共3005字,预计学习时长6分钟


640?wx_fmt=png


本文的作者是一名软件工程师,曾在亚马逊的多个部门和地区工作了6年半,最近刚从亚马逊跳槽到了优步。过去的这段时间里,他一直在位于西雅图的优步数据研发部门工作。之所以写这篇文章,是为了回答朋友和同事经常问的一个问题:“在亚马逊和优步工作有什么不同?”


以下为全文。


本文仅代表个人观点


一个公司的工程师文化对每个团队和部门来说都是独一无二的,因此无法笼统地定义。本文观点基于我对特定团队和部门的观察,并不代表更为广泛的公司文化。


本人职业生涯中第一次跳槽的原因并未在本文中体现,因此,请勿用我跳槽的原因来解读文章的内容。


从亚马逊到优步


亚马逊和优步的工作文化有许多共同点和不同点。其中一些可以归因于公司的相对规模,而另一些则是由于公司本身固有、独特的DNA。接下来,我将概述遇到的一些显著区别。


DevOps技术


DevOps技术无处不在。在不妨碍快速创新和连续生产发布的前提下,保持服务的高可用性是一个棘手的问题。在谈论亚马逊和优步的大规模运营时更是如此。两家公司都非常注重运营质量,不同的是,亚马逊早已建立了解决问题的成熟流程,而优步仍在尝试哪种策略最适合。


亚马逊的软件工程师需24小时待命,随传随到,运营负担沉重,公司因此而“臭名昭著”。在我看来,事实上每一家重视用户的公司都会非常重视其系统的可靠性,优步也不例外。因此,由于新打造的平台和结构松散的运营流程快速增长,优步的DevOps技术与亚马逊没有什么不同,甚至用的更多。


开放源代码


刚加入优步时,最令我吃惊的是公司对开源软件的使用。优步是一家提倡开源的公司,这不仅反映在其对内部工具和技术的选择上,也反映在回馈社区的行动上。


围绕开源技术构建内部基础设施,这使开发人员可以自由地选择合适的工具,并在需要创新的地方花费精力解决业务问题。这也意味着当你在试图调试第三方库的问题时,会有一个多样化的开发人员网络来帮助你。相比之下,亚马逊则主要依赖内部开发的基础设施和工具来工作,然而在出现问题时,这会缩小正确工具的选择范围,限制支持选项的数量。


优步没有为每一个开发人员配置用于监控、仪表盘、寻呼、招聘等生产工具,而是从提供软件即服务的公司那里获得了许多工具。与内部开发工具相比,这些拥有集中投资组合的小型公司往往能够提供更好的同领域软件。因此,这不仅能为开发人员提供最新且最好的工具来提高工作效率、缩短软件开发的生命周期,还使开发人员可以专注于开发针对优步业务和特点的软件。


工作透明度


在优步,每周都有一次与公司领导层面对面交流的活动,由高管回答员工的问题。此外,在执行链的每一层都有定期的全体会议。


这可以使开发人员清楚地了解到,自身和工作的决策会受到怎样的影响。这不仅可以帮助开发人员把工作和公司的目标更紧密地结合起来,从而确保把精力花在解决正确的问题上;还可以让开发人员看到当前团队或部门之外存在的挑战。此外,再加上对文件的高度重视,能够为开发人员回答关于任何决策(技术上的或非技术上的)可能存在的每一个“为什么”。例如,如果我有一个问题“为什么优步倾向于使用Java?”或者“为什么部门结构是这样的?”,则会有一份详细解释原因的文件,以供查阅。


这种与每一个决策相关的透明度,无论是技术上的还是非技术上的,都令人耳目一新,对团队的入职培训以及了解现有基础架构的状态都是非常有帮助的。相比之下,在亚马逊,只有在必须知道的基础上才有透明度。


没有亚马逊云服务


我怀念那些通过点击一个按钮就能获得一个自动扩展、完全管理的MySQL兼容数据库的日子。在用亚马逊云服务(AWS)工作时,我低估了云基础架构即服务(IaaS)给软件工程师的开发周期带来的便利性。使用云服务是有成本的,在优步,尽管可以使用完成任务所需的任何技术,但必须证明自己支付给云供应商的成本与自己管理/开发的成本是合理的。


640?wx_fmt=jpeg

图片来源:pexels.com/@cadeau-maestro-467606


工作场所的社交互动


由于优步位于西雅图的工程办公室里员工人数较少,工作氛围团结友好,在这里,同事之间不仅仅是同事关系,还有密切的个人交往。午餐时间的社交和文化活动给大家带来一种归属感。相比之下,亚马逊在小的功能单元中运作,员工的社交活动仅限于“双披萨团队”(除非你额外努力去加入公司级别的大型活动,但是,这些活动也总是人满为患)。


工程难题


这两家公司在要解决的工程难题方面没有太大不同。在这两个公司,由于规模和可用性要求(也许在不同的领域,AWS的要求可能比优步的要求更高),都有现有解决方案无法解决的业务用例。两个公司的业务问题可能有所不同,但是从工程的角度来看,最终,工程人员所设计的系统在更大的范围内工作,比现有的解决方案更可靠、更简单、更快捷。这些解决方案都是针对特定的业务用例而定制的,而两个公司的业务用例可能都是复杂多样的。也许,最大的区别在于解决难题的工程师数量。解决一个问题,在亚马逊会用“双披萨团队”,在优步可能只会用一个开发人员。


参与战略决策和路线图规划


在亚马逊,这个话题很大程度上受所在部门和执行领导层所设定的方向影响。我参与过各种各样的项目,有自上而下的强制性项目,在这些项目中,程序员对决策背后的数据缺乏了解,有采用工程主导的圆桌讨论会的项目,程序员全面参与对技术产品进行2-5年计划。在优步,与程序员相关的内部产品,从找出差距到定义成功指标,每一个决定都由程序员做出。由于我在优步的曝光有限,这很正常,似乎是优步的常态(它是一个平台公司,而不是产品公司),并且与亚马逊相比,在优步,个人拥有更多的自主权。


远程办公


在亚马逊的西雅图总部工作时,只需通过10分钟的步行就可以联系到所有的股东、合作伙伴、上游部门;而在优步,股东和其他部门分布在不同的地区。这一点对于在两家公司工作的团队来说太过具体了,但这却是我在工作中感受到的一个巨大变化。个人必须做出额外的努力才能整合远程部门和利益相关者等的协同合作。视频电话不能完全取代面对面会议和讨论,偶尔的跨办公室访问也不能取代在同一个办公室里办公的基础优势。


开拓创新


优步鼓励软件工程师寻找并解决他们当前工作领域和团队章程之外的问题。如果工程师确定了一个他想要解决的工程问题,并且该问题的解决将使优步受益,那么即使这个问题不在团队的所有权范围之内,管理层仍然会允许他花时间来解决这个问题。相比之下,在亚马逊,各部门只关注自身,很难看到其他部门面临的困难,因此解决一个问题可能需要多个部门合作。


640?wx_fmt=jpeg图片来源:pexels.com/@proxyclick


办公室午餐/零食(这很重要!)


亚马逊不为员工提供免费午餐,办公室也没有销售健康午餐的咖啡馆,而优步的公司不仅提供免费的午餐,还每日轮换。即使从整体来看,这种差异并不重要,但事实上,可以在办公室吃午餐,并且拥有全天随叫随到的零食供应,能够提高员工的工作效率。因为他们再也不用花半个小时在闹市区拥挤的餐馆里找吃的,也不需要饿着肚子回家吃饭了。


展望未来


作为一个“优步人”(这是优步对新员工的称呼),当我从优步毕业,并在这里积累了一些经验之后,我开始欣赏这家公司的核心价值观,以及这些理念在日常工作中的体现,而这也正是亚马逊擅长的。作为一名开发人员,这些原则有助于我们进行决策,并保持整个部门的观点一致。


640?wx_fmt=jpeg

留言 点赞 发个朋友圈

我们一起分享AI学习与发展的干货


编译组:殷睿宣、孙宇超

相关链接:

https://medium.com/@divijvaidya/amazon-to-uber-from-the-lens-of-a-software-engineer-e5bd1c38caba


如需转载,请后台留言,遵守转载规范


推荐文章阅读


ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017 论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾


长按识别二维码可添加关注

读芯君爱你


640?wx_fmt=gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值