高薪的 10 倍工程师不能带来 10 倍的产出?

Erik Bernhardsson 2019-08-22 12:43:30 553
本文来自 CSDN ,作者 Erik Bernhardsson

高薪聘请的精英人才就能带来更高的价值?

作者 | Erik Bernhardsson

译者 | 弯月,责编 | 屠敏

以下为译文:

在决定打造一支优秀的技术团队时,我有意做了一个决定:高薪聘请精英人才。我认为这样做更有意义,因为这些人拿了高薪,一定会交出物有所值的产出。然而许多CTO却有着截然不同的看法。一直以来这对我来说都是一个谜,直到最近我才豁然开朗。

产出是什么?

在深入展开讨论之前,首先让我澄清一下我所谓的“产出”或“生产力”。我指的并不是工程师能以光速写代码。我说的产出包含一系列的工作,比如帮助同事、引入新的框架、改善流程等等。

当然,我们无法真正衡量产出。但是所有的经理都需要做这样的尝试,否则他们怎么会决定A工程师的年薪为11万美元,却给了B工程师11.5万美元呢?从某种程度上而言,经理们相信自己对每位工程师的相对价值都有精准的认识。

招聘人数

下面让我们来剖析一个经典的管理目标:招聘人数。在常见的工程师招聘流程中,CTO(或其他高层)会大致算出他们需要完成的工作量,与团队已有的工程师人数比较,然后跟首席财务官讨价还价,落实最后的招聘人数以及薪酬范围。然后逐级分配到整个组织中,于是,每个招聘经理都会拿到一个招聘多少人的目标。

假设这位CTO坚持说,他们要在一年内将工程团队壮大到两倍。这项命令会逐层转达到某位初级工程经理。如果你们的面试流程很分散,那么你就会明白公司面临一个重要的问题:初级经理们今年的业绩目标部分取决于他们能招募到多少人。下一步,他们必然会降低招人的标准!

你觉得现实中不会发生这样的事情?可惜,我亲眼目睹了很多次。我亲眼看到招聘门槛节节下滑,因为这些人需要寻求更多资源。经过一段时间后,你就会发现工程团队的平均水平也会逐渐下滑。

避免这种误解

为了正确地解决这个问题,你需要集中化面试和招聘。任何团队都不应该强制实行某个招聘目标,因为如果公司树立激进的招聘人数目标,团队中的每个人都会在激励政策的鼓动下降低标准。

但是,我们来深入剖析一下:为什么要以人数为目标?其背后的潜在假设是:每位工程师的生产力大致相同。实际上,工程师的生产力有天壤之别。

那么,为什么不以某个产出水平为目标呢?当然这是因为工程师身上又没有明码标价,标明这位是2.3倍的工程师,价值14万美元,而那一位是4.5倍的工程师,价值18万美元。你又看不出来!下面让我们先来谈一谈生产力与成本之间的关系,因为我觉得这很重要。

生产力与成本的关系

生产力与成本之间呈次线性的关系,对此你可能会觉得很惊讶。3倍或4倍工程师的成本可能会超过2倍的工程师。这显然不符合线性法则,但我觉得大多数经验丰富的招聘官都会承认二者的关系略低于线性。

举个例子,假设k倍工程师的成本是k0.6,那么我们需要支付给2倍工程师的成本大约在1.5倍左右,而对于10倍工程师,我们需要支付4倍以上的成本。这个指数值是我随便选的,但这里的重点是,生产力与成本的关系小于线性。你可以选任意一个小于1的指数作为这里的参数,而且要注意实际的市场中不存在大于1的指数。没有人会花2.1倍的成本雇佣2倍工程师,他们必然会雇佣两个1倍的工程师。

工程师的生产力与成本的关系图

这看似是一个无脑的选择。那么,为什么并非每个人都愿意花更多钱聘请资深工程师呢?让我们先把招聘人数抛诸脑后,来看一看总产出目标,也许我们应该更关心总薪资,而不是人数。因为你需要努力说服首席财务官,其次这还有可能打乱公司的激励措施。

在谈论招聘人数之前,你们首先需要在薪资范围上达成共识。你略加思考就会发现这是一个奇怪的限制条件——如果工程师的薪资越高,能够带来的投资回报率就越高的话,那么为什么还要限制成本(以及生产力)呢?难道不是多多益善吗?

我一直在努力想清楚这其中的奥妙。然而,事实证明,你可以通过一个简单的模型就可以看出,雇佣两个1倍的工程师更为合理,即使成本高于一名2倍工程师。

功能工厂与任务的间接开销

凡是招聘“便宜”的工程师的人都有一个共识:很多任务都非常简单、毫无挑战性可言,而且还非常无聊。也许初级工程师不介意整天调整WordPress的主题,但高级工程师需要更多挑战。在这个领域的最末端,有一类被人们谑称为“功能工厂”的公司,我们可以想象在那里工作的工程师都是非常缺乏经验的人,他们挥舞着汗水成日里不是更新HTML的表格,就是添加跟踪像素。

我不是很相信这个论点。高级工程师总会找到办法自动化简单的任务,减少重复工作。

然而,我赞同应该招聘经验不足的工程师,其中的理由与任务的间接开销有关。让我们来看一个简单的模型:

假设我们有两名工程师,其中一位是名叫Norm的普通工程师,而另一位是2倍工程师Twanda。假设他们都在同一家公司工作,Norm花了50%的时间做实际的工作,剩下的时间都是“任务的间接开销”。也许是有一堆票务需要处理(例如Jira、Github请求、等待CI等)。这是每个任务都不可避免的间接开销。

与Norm相比,Twanda的效率有多高?2倍?当然没有!Twanda创造了4/3倍的价值!一般来说,如果1倍工程师在“任务的间接开销”上花费的时间为C的话,那么k倍工程师的产出为:1 / ( c / k + 1 − c )。

请注意,开会所占用的时间对两人的影响是不一样的。假设在公司里90%的时间都在开会,那么2倍工程师仍然可以完成2倍的工作(在开会之外10%的时间里)。我的这个模型只研究与任务相关的间接开销。

通过上述这个模型我们可以看出,在间接开销很高的环境中,高产工程师的大部分生产力都会被磨灭。你还不如想办法最大限度地降低任务的间接开销,高效员工就会带来大量收益!

高产工程师的成本效益分析

下面,我们通过上述的大量假设来计算每个k倍工程师的产出/成本比。我们知道产出公式为:1 / ( c / k + 1 − c ),成本公式为:k0.6,那么产出/成本比为:

对于任意的c,我们都可以计算出最优的k!然后,取k的导数将其设为零。经过化简,得出k的公式为:

下面绘制k与c的关系图,我利用对数绘制出了如下漂亮的曲线:

花费在实际工作上的时间比例

漂亮!下面让我们挑几个点来分析一下:

  • 极端情况:如果任务的间接开销为100%,那么最划算的结果是聘请0倍工程师。

  • 如果任务的间接开销为80%,那么最划算的结果是聘请0.2倍工程师。

  • 如果任务的间接开销为40%,那么最划算的结果是聘请1倍工程师。

  • 如果任务的间接开销为20%,那么最划算的结果是聘请3倍工程师。

  • 如果任务的间接开销为7%,那么最划算的结果是聘请10倍工程师。

  • 极端情况:如果任务的间接开销为0%,那么最划算的结果是聘请∞倍工程师。

所以,说到底你应该努力的方向是:减少任务的间接开销!

让你的技术团队发挥最大价值

上述我们讨论了工程师在生产力与成本方面的差异,以及如何让工程师们发挥最大价值。总结起来,我们需要从两个方向努力:

  1. 建立高标准的集中招聘流程

  2. 将任务的间接开销降至最低

如果你不具备这两点,那么即便聘请水平再高的人才也没用,还不如聘用一群普通的工程师算了。Xavier Amatriain在一篇博文中得出了与本文类似的结论:不要妄想你可以吸取Netflix文化的精华直接套用在自己的创业公司上。最好还是老老实实地从改善开发流程和招聘流程着手!

在写这篇博文之前,如果你问我为什么有些公司愿意花巨额资金招聘精英人才,而有些公司却不愿意,我可能会说是前者更注重尖端技术,而且精英人才确实物有所值,而那些不愿意花重金的公司使用的都是一些现成的框架,即便重金聘请来高端人才也无用武之地。

虽然如今我依然认为这种说法没有错,但我认为本文提到的模型反映出了更为确切的因果关系。例如,谷歌(以重金聘人才闻名)有很多高难度的工作,因此他们的工程师会长期面临挑战。降低任务的间接开销可以让他们的工程师带来更多的价值。而对于有大量小项目(导致任务的间接开销很大)的公司来说,应该理智地避免花重金聘请顶级人才。

事后看来,这一切都非常“显而易见”,也许你也有同样的感受。但至少在本文中,我们的论点背后有数学演算的支持!

原文:https://erikbern.com/2019/02/21/headcount-targets-feature-factories-and-when-to-hire-those-mythical-10x-people.html