为什么软件工程师的薪水和生产力如此不成比例

  文/Mr. Jamie

  算起来软件工程师大概是全世界最特別的一种职业,因为一个最好的 programmer 和一个最烂的 programmer,生产力相差至少 10 倍,有时候甚至可以高达 100 倍。这在其他的职业几乎是没听过的——像 Jordan (麦可‧乔丹)这样强的篮球运动员,平均一场比赛的生产力,顶多也只是菜鸟板凳的 10 倍。即使是其他脑力、创意密集的行业,例如:IC 设计、建筑、商品设计等等,生产力的差別也都是在 10 倍的这个级别,很少达到 100 倍的。

  但又为什么,当 Jordan 的薪水是 NBA 菜鸟的 100 倍,一流建筑师的费用是菜鸟的 1,000 倍时,最好的软件工程师,他们所赚得的却往往连新人的 5 倍都不到?这个问题我一直想不透。它也不是坏事,因为很久以前当我第一次发现了这个现象后,我就学会要花 3 倍的价钱去雇一个 10 倍强的工程师——多么划算的一个买卖啊!只是这件事情发生的原因,让我非常的困扰。第一,它一点都不符合经济学上「边际效应递减」的原则,你看其他职业,例如上面提到的 NBA,当你要雇用一个生产力 10 倍的球员,你必须付出 100 倍的成本。更重要的是,它一点都不公平,生产力 10 倍的人,就算没有拿 100 倍的薪水,少说也应该要拿 10 倍的薪水。

  直到昨天,读了 John D. Cook (强‧库克)的这篇文章:「Why programmers are not paid in proportion to their productivity」,才给我了一个天大的启发。

  原来,这个发生的原因主要有两个——John 其实也是引述 Joel Spolsky(乔‧史波斯基,有名的 Joel on Software 作者)的说法:

  第一,虽然全世界的工程师优劣差很多,但是同一家公司的工程师优劣却是差不多的,因为一流的工程师不可能长期忍受跟一群蠢蛋一起工作,所以迟早会离去,于是久而久之这家公司的工程师品质就会趋向一致——这也就是为什么你必须要花很多力气在团队上面

  而另一个更重要的原因,是一个好工程师的生产力,其实很难被察觉。如果你要判断一个业务好不好,那很简单,看看他的业绩就行了。你要看一个建筑工人的生产力,那也很简单,看看他多快把房子盖好就行了。以此类推,如果你要知道到一个软件工程师的生产力,就看看他写了几行程序…

  大错特错!!

  一个软件工程师生产力最高的时候,是当他可以少写几行程序的时候。当他可以用一些现成的东西,在很短的时间内拼凑出你需要的产品、解決方案的时候;当他可以跟你明确的沟通,不会浪费时间在开发错误的东西上的时候;当他可以正确的解读数据,然后快速的修正产品的时候。这些…

  通通不是用几行程序代码去衡量的!!

  问题是当一个优秀的工程师,快速的把产品凑出來,或者是很有效率的沟通时,老板的反应是什麼?99.9%都没有办法联想到这就是极致生产力的表现,然后说:「嘿!我应该帮他加薪 10 倍!」所以,难怪好的工程师往往没办法获得合理的报酬。

  因此,如果你是创业团队,该怎么做?当然是用力的利用这个市场不平衡,把优秀的、在大公司郁郁不得志的工程师,通通都吸收到你的团队来。而这也就刚好解释了为什么 EZTABLE 会说:我们在找的是「人」,而不是技术

  PS. 意犹未尽的人,这里有一篇 Hackers vs. Coders 的故事。

  PPS. 我超喜欢下面的讨论,比文章本身还精彩,大家千万不要错过。

  (Image via scobleizer, CC license)

it知识库为什么软件工程师的薪水和生产力如此不成比例,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。