我曾在各种技术型公司工作过:从“传统”商店、咨询公司,到投资银行,再到高增长的科技公司。我还和在初创公司、银行、汽车、大型科技公司以及更“传统”的公司工作的软件工程师进行了交流,并且得到了一些有意思的结论。
我注意到,** 深处硅谷的 公司总是 能 **“明白”一些传统同行不能理解或者不能实践的事情,特别是在欧洲。这些实践可以在公司层面带来更快的创新,使工程师获得更好的职业发展,用更好的词来形容,就是更好的“互惠互利”。硅谷公司可以为员工支付更高的工资,反之,这些公司也会从同一个人身上得到更多的价值。
在本文中,我将使用“类似硅谷的公司”这个词,它指的是那些通过软件工程招聘而产生高杠杆率的现代企业,它们的总部一直设在硅谷——尽管很多新公司已经不再在那里起步了。这些公司在每一位工程师的工作产出上都能与 Facebook、谷歌等公司相媲美。他们采用相似的方法,而且通常能够吸引来自其他“类似硅谷”的公司的人才。
这里有一些关键点,他们比其他公司更懂得人才的价值。
对于“传统”公司来说,开发者的工作就是执行分配给他们的项目——最常见的是 JIRA 票(JIRA Ticket)。这些票由产品经理或项目经理审核,他们拥有完成工作所需的大多数关键细节。开发者们只是按部就班地完成工作,除了一些细节外,几乎没有必要再询问其他事项了。
如果你加入一家“类似硅谷”的公司,你就几乎看不到上面说的那些。有项目,也有项目经理和工程经理。但是大多数情况下,工程师是被期望(而且是被鼓励的!)明确“如何”去做工作,包括做出更大的决定。有些地方,每个项目都有一个工程师领导,他便于分解工作。在其他地方,工程经理或高级工程师也能从事这项工作。不管怎么做,都要激励所有的工程师着眼于全局,自我救赎,解决他们所看到的任何问题。
“类似硅谷”的公司都把工程师的主动出击看做是好事。工程师们常常提出构建服务和功能的建议,或者团队花费专门的时间来偿还团队成员提出的技术债务。经理们很少告诉工程师们应该做什么,或者将他们的工作分解成小块,或者对他们进行微观管理。人们是自我管理的。
在传统公司,开发人员的期望是完成所分配的工作。而在类似硅谷的公司,开发人员的期望是解决企业的问题。那是很大的不同。这影响到所有工程师的日常工作。
在传统的公司,让开发者做别人吩咐的事的理念,通常会导致层级结构的形成。我曾和一家银行的人聊过,这家银行的项目管理的层次有六层。开发人员处于最底层的两个层次。决定可以从第三个层次开始做。基本上,那些做这项工作的人没有发言权——这是设计好的。我是否需要补充一句,这家银行正在为他们的软件部门如何工作而挣扎?
层次分明的世界观。有些传统的公司还是这样运作的。
与之相比,在某些地方,工程师被认为在解决现场问题方面比任何人的能力都强。领导明白,与他们共享所有相关的业务背景,给他们执行空间,这对企业是最有好处的。
交代背景,给予自主决策权,这才是组织有效运作的途径。
传统企业往往认为,一个工程师上班时间是 8 个小时,要用来编写程序。没有在计算机前编程的时间常常被视为一种浪费。为了这一观点,他们付出了昂贵的代价。我听到有人提出过这样的理念:
软件工程师的工资比许多其他职能部门的工资都要高。因此,我们需要相应地利用他们,不要让他们“空转”。“类似硅谷”的公司认为,软件工程师是解决组织问题的最佳人选。在招聘中,他们不仅重视技术能力,而且重视沟通和解决问题的能力。他们的想法更像下面这样的:
软件工程师是我们公司收入最高的人员之一。这是因为他们可以通过编程和解决问题带来一些最大的杠杆作用。我们希望让他们接触到业务,这样他们就可以在做“正常”工作的同时,为业务寻找更多的影响力机会。在实践中,一名积极主动的工程师很容易对那些只被告知要做什么的“工厂工人”产生影响。从最坏的情况来看,当工作要求明确且正确时,双方的产出是相同的。但是,那些被鼓励去解决问题的工程师们,往往在接管工作之前就会停下来思考,发现机会,从而产生更大的影响。这里有一些我在“类似硅谷”的公司问工程师们他们能否做 X 后的几次对话:
对于“类似硅谷”的公司来说,透明度非常重要。尽管也有例外——据说苹果或 Palantir 非常谨慎地根据需要向工程师提供尽可能少的信息,但我注意到,大多数“类似硅谷”的公司都会尽可能多地分享信息。他们以符合 GDPR、 PII 和其他适用于他们的法规的方式进行工作。
员工——不仅仅是工程师——通常能够访问实时业务指标 和数据源来编写自己的查询并创建自定义报告。在 Skyscanner,我们每天都会收到一封每日收入明细表的摘要邮件。在优步,每周都会有一份类似指标的每周增长通讯。
这些信息将随公司的发展和上市而整合。尽管如此,工程师仍然能够获取组织的业务数据,以指导其决策。很多这样的情况在传统公司中都不存在。工程师得到规范,上级才能知道为什么要做出决定——至少,这是一个想法。
而硅谷公司则希望每一位团队成员都了解自己的工作将会影响到企业的哪一部分,以及如何产生影响。团队的目标很少仅仅是交付一个功能:通过发布 Feature1 来减少 2% 的客户流失,或者通过交付 ProjectX 来提高预期每年 1000 万的收入。
鼓励硅谷工程师与公司的其他人进行交流,并与工程师之外的同事建立联系。在实践中,更高级的工程师通常最后都会这么做:从与产品经理一对一的沟通到参加客户调研会议。但是,我看到新加入的工程师们眼都不眨地直接与业务利益相关者合作。
相反地,传统的公司常常使开发者不能与企业的其他部门进行交互。 然而,它不是这样呈现的。他们会说“我们将保护我们的工程师们免受干扰”。但是我听说过这样一个故事:一位工程经理希望邀请团队成员来做产品演示,但是被产品经理拒绝了。这是一个很普遍的借口,“我们需要他们工作,我们不能分散注意力。”
传统企业中的工程师在团队外建立关系时,常常会被告知“不够专注”,“浪费时间”,或做些“与自己无关”的事。在他们的业绩评估中,这种“不寻常的”行为常常被记录为负面行为。
对我来说,公司强行将一些最好的问题解决者塞进“你只想写代码”的框框里听起来很疯狂,但是这确实发生了。试图通过代码行或提交量来衡量工程生产力的公司也会疑惑,为什么他们的工程师不关注产品,或者不了解产品。
如果你是一名工程师,并且对其他团队如何做事有疑问,那么你在传统公司和那些“类似硅谷”的公司会有不同的实践。
传统公司会鼓励分层沟通。这样做不仅是为了“屏蔽”工程师,也是因为这些地方的管理人员更愿意成为信息枢纽,不放弃对这部分的控制。以下是向其他团队提出问题或进行询问的过程,通常如下:
在“传统”/ 分层组织中进行沟通。
“类似硅谷”的公司鼓励工程师与工程师之间的沟通,省去中间人。这在任何情况下都是快速的。若其他团队的工程师不能提供帮助,则流程可回到“传统”模式,即经理协助讨论。
沟通效率更高。
在 2021 年开发是令人沮丧的。不是因为写代码——那是容易的部分!——而是周围的事情。设置依赖关系。部署到生产或测试环境。CI/CD。监控和警报。如果你所在的团队只有几个人,这些都不算大问题。然而,它们仍然不时地出现。
但是,随着公司的发展,开发者的体验变得越来越糟糕。首先要做一些小事情,比如降低构建时间,增加依赖关系,或者需要在不同的服务之间做出改变。在重新定义整个工程的架构之前,它将继续考虑哪些团队拥有哪些服务,而一些小的迁移将影响许多团队。
框架和工具变化迅速,而工具却很少跟上。那些关注解决问题的工程师的公司很快就建立了各种基础结构、平台和 SRE 团队,减少了开发者体验的损失。
尽管雇佣软件工程师只专注于其他更快的工作速度听起来有悖于常理,但在很多地方情况并非如此。这样做的好处是可以帮助这些公司更快地前进,让开发者保持更快乐的状态。
任何一家类似硅谷的公司,如果想要在工程师的报酬方面竞争,就必须创造高杠杆,以使这些工程师所带来的价值超过工资。这一杠杆可以通过规模和业务增长两方面来体现。在不必要的通讯、工具等方面减少浪费的时间,就会增加这种影响力。给工程师足够的自主权,让他们对企业作出(超额)贡献,就是保持这种杠杆效应的方法。
如今,谷歌、Facebook 和其他老牌公司 的高薪,很大程度上是规模化的杠杆效应。在这些公司中,一个工程师经常会打造出很多百万客户使用的功能。这种杠杆效应和增值作用本身就是有回报的。
更高的自主权→更高的杠杆→创造更高的价值→更高的薪酬(在公司盈利的同时)。
类似硅谷的创业公司所做的就是利用软件工程师来发展业务。在广告领域,Fog Creek software 的一位软件工程师就是这样 实现价值百万美元的想法 的。一些工程师和设计师是如何在 Facebook 推陈出新,打造出 Like 按钮 的?这个按钮的商业价值高达数十亿美元:让 Facebook 能够(重新)定位广告,并在其网站之外“追踪”用户。
若上述任何一种情况都是在“传统”的环境中工作,他们的思想将完全停留在观念上。“类似硅谷”的创业公司鼓励工程师提出商业想法,并在实现这些想法的同时也将其付诸实践。每一个人都会因此得到更好的发展:创意型和实践型。
能够充分利用工程师的公司,可以轻松地支付接近于甚至高于市场顶尖水平的工资。一个很好的例子 就是 Basecamp,它充分利用了工程师的优势,这意味着他们还能在保持盈利的情况下为 SF 市场提供全球最高的底薪。
在处理与工程师之间的关系时,不同类型的公司在许多方面有所不同。“类似硅谷”的公司把工程师看作是价值的创造者和创造性解决问题的人。而且传统企业认为他们是工厂工人。
这一想法的分歧导致了一些具有远见卓识的公司可以给予工程师更高的报酬,同时也给予他们更多的自主权。工厂工人们有很明显的附加价值,你可以规划好。如果利用得当,一个有创造力的问题解决者可以带来 10 倍的价值。给予员工更多的报酬,给他们更多的自由,这是非常有意义的,因为这样做可以使他们为企业创造更多的价值。
如果你曾经在类似硅谷的环境下工作,那么你将很难再回到一个“传统”的工作场所,因为每个人都有自己明确的角色,而且当你离开这个角色时,你会感到不满。
对于一个软件工程师来说,一个愉快的工作环境是解决问题的关键,而非工厂里的工人。你今天是什么类型的?
作者介绍:
Gergely Orosz,曾在 Uber 工作 4 年多,领导移动、网络和后端团队。曾构建过大型分布式系统、移动应用和其他应用。
原文链接:
https://blog.pragmaticengineer.com/what-silicon-valley-gets-right-on-software-engineers/
你也「在看」吗?👇