“10 倍工程师”,以一当十的程序员真的存在吗?

2019 年 8 月 19 日 AI前线

作者 | Jason Crawford
翻译 | 刘志勇
编辑 | 刘燕
AI 前线导读:是否存在所谓的 10 倍工程师呢?这个“10 倍工程师”到底是什么意思呢?这个话题引起了人们激烈的口水战,因为它触及了深刻的意识形态话题:是不是有些人比其他人更有才华,为什么是这样(以及它是天生的还是后天努力的),如果是这样,我们又该如何对待他人?

社交媒体上就因此爆发了激烈的争吵:一方面,人们都说 10 倍工程师是一个神话,一切都源于刻板印象,而且不管怎样,难道就没有更重要的事情?比如是否可以编写文档、指导其他工程师,或者仅仅只是做一个好人?另一方面,人们翻着白眼说,当然有 10 倍工程师了。任何不承认这一明显事实的人都被社会正义宣传蒙蔽了双眼,或者是不愿承认自己低人一等的失败者。

更多优质内容请关注微信公众号“AI 前线”(ID:ai-front)

本文最初发布于Jason Crawford个人博客,经原作者 Jason Crawford 授权由 InfoQ 中文翻译并分享。

有些工程师能以一当十,创业如果有幸有这号人加盟,那么成功率就能够大幅提升。”自投资人 Shekhar Kirani 在 Twitter 抛出这一观点来,引发了极大的讨论,有人赞同,但更多的人却是反讽。

截止小编翻译此文时,原始推文已经有 1500 多条讨论,1300 多次转发和 4300 多点赞: 

Jason Crawford 也参与了这一场讨论,分享了他对 10 倍工程师的看法。

Twitter 上有好多人在讨论 10 倍工程师。

是否存在所谓的 10 倍工程师呢?这个“10 倍工程师”到底是什么意思呢?

这个话题引起了人们激烈的口水战,因为它触及了深刻的意识形态话题:是不是有些人比其他人更有才华,为什么是这样(以及它是天生的还是后天努力的),如果是这样,我们又该如何对待他人。因此,社交媒体上就爆发了激烈的争吵:一方面,人们都说 10 倍工程师是一个神话,一切都源于刻板印象,而且不管怎样,难道就没有更重要的事情?比如是否可以编写文档、指导其他工程师,或者仅仅只是做一个好人?另一方面,人们翻着白眼说,当然有 10 倍工程师了。任何不承认这一明显事实的人都被社会正义宣传蒙蔽了双眼,或者是不愿承认自己低人一等的失败者。

让我们现实一点儿吧。首先,让我们来做经验分析。

关于这项研究应该知道什么

对于这个概念及其基础的最好解释是 Steve McConnell 的文章“Productivity Variations Among Developers and Teams: The Origin of 10x”(《开发人员和团队之间的生产力差异:10 倍的起源》)。一下是关于“10 倍工程师”需要了解的关键事项:   

  • 10 倍指的是最好的开发人员和最差开发人员之间的差异,而不是最好的开发人员和一般开发人员的差异。 这会有很大的不同。在我看来,更容易相信最好的开发人员要比一般开发人员的水平高出三倍,而最差的开发人员要比一般开发人员的水平低三倍左右。这样,就可以得到 10 倍的总范围。(请注意,谈论“0.5 倍工程师”是没有任何意义的,因为根据定义,最差的开发人员是 1 倍。)

也许我们应该重新定义“x”为平均值,把最好的工程师称为“三倍工程师”,然后就结束这场争论?   

  • 10 倍的概念是基于研究提出的,但研究并不完美。 在上面的链接中,McConnell 描述了已完成的研究(如果你想深入了解,还可以看看 这篇评论 和 McConnell 的反驳)。我们有理由对这些研究及其与今天的相关性持批评态度:样本量相对较小,而且它们并不总是得到很好的控制。其中一些还是几十年前完成的(第一次是 1968 年),当时计算机、编程语言和开发任务和今天大相径庭。他们有时会使用可疑的生产力指标,例如每天的代码行数,但他们也使用很好的指标,比如完成时间,在某些情况下,代码行被认为是负面的(对于给定的任务,代码行数越少越好)。

总体而言,我认为,有明显的证据表明,个人和团队之间,生产率存在很大的差异。   

  • 10 倍是个粗略的平均值。 不同的研究和测量发现了不同的范围,一般在 5 倍到 25 倍之间。再加上刚才讨论的研究的局限性,则意味着我们只能粗略地说“大致数量级”。所谓的“10 倍”并不精确;它只是一种简练的方式,用来记住生产力的差异是存在的,并且差异巨大。

  • 这些研究,只针对那些实际完成任务的开发人员。 他们的数据并没有考虑到那些没有完成任务的人(在一些研究中约占 10%)。他们也不能考虑到软件的真实成本,这些软件名义上已经开发完成,但漏洞百出,缺陷太多,或很难维护,以至于不得不由其他人重写。这甚至还没有提到软件缺陷造成的损失,这些缺陷影响了公司的销售,使公司蒙受损失,甚至将生命置于危险之中。不过,所有这些因素只会强化这一基本观点。

  • 10 倍的数字仅与工程生产率的具体衡量指标有关。 它并不是为了完全捕获一个工程师对一个组织的价值,也不能用于这个目的。尽管如此,这些仍然是有意义的、重要的措施。

  • 据我所知,这些研究并没有解决造成这些差异的原因。 至少,McConnell 的调查并没有涉及以下重要问题:一个人的生产力水平会随着时间的推移而保持稳定吗?它是否因环境而异?工作环境对生产率的影响有多大?它是否随任务的不同而随机变化,是否取决于某个特定的“顿悟”时刻的运气?它会随时间增长吗?它可以学习或者可以教授吗?(他说,1968 年的最初研究发现,“程序员的经验与代码质量或生产率之间并没有任何关系”,但这并不意味着生产力不能随着时间的推移而增长,只是它并不一定会增长。)

我所相信的

以下是我的想法,不仅基于研究,还基于我自己的轶事经历和个人世界观:   

  • 生产力的差异是真实的、巨大的、重要的,而且可能被低估了。 如果差异不是“10 倍”,那么它就足够重要了。我相信这一点部分是因为研究,但部分是因为这种现象比软件要广泛得多。McConnell 自己指出了这一点,引用了 Norm Augustine 的一项研究,“发现在各种职业中,如写作、足球、发明、警察的工作和其他职业,前 20% 的人产生了大约 50% 的产出,无论产出是触地得分、专利、破案还是软件。”

  • 工作环境很重要。在现实世界中,重要的生产力受到工作环境的强烈制约。工程师是否有明确的目标和优先级?他们会买账吗?他们有动力吗?他们彼此信任吗?还有,他们信任管理层吗?他们可以集中注意力吗?他们会参加会议吗?还是在生产环境中扮演“救火员”的角色?他们有良好的基础设施和工具吗?等等。

  • 生产力是天赋和后天技能的结合。 也就是说,它是可以部分地学习的。获得的技能包括一系列的东西,从特定的调试工具到一般的思维模式和解决问题的方法。这些天赋与我们不能(或还不知道如何)识别和交道的智力和其他思维模式有很大的关系。

  • 生产力与经验并没有很强的相关性。 有很多高产的初级工程师,也有非常平庸(甚至更槽糕)的高级工程师。因此,即使生产力是可以学习的,这种学习也不会自动发生,甚至在我们的行业中也不会经常发生。很少有人教授如何提高生产力的技能,那些能够独立学习这些技能的人,也是那些一开始就很优秀的人们。

那又如何?

10 倍的争论到底是关于什么的?这个问题的情感影响在于,它对我们如何招聘、如何奖励员工以及我们如何对待个人产生影响。

以下是我的结论: 

  • 招聘很重要。 努力吸引、发现和留住最优秀的人才。 

  • 环境很重要。 努力营造一个良好的工作环境,如果你发现生产力方面的普遍问题,那可能就是环境的问题。 

  • 奖励生产力。 一个人创造的越多,他就赚的越多。 

  • 但是,不要认为生产力是与生俱来的。 在一个环境中生产力低下的人,可能在另一个项目中或在另一个团队或公司中,生产力更高。在解雇某个人之前,先要确认这个问题。 

  • 培训工程师的生产技能。 我还不知道这样做能有多大的效果,但我认为,我们作为一个行业,甚至没有在这方面进行尝试(我也把自己包括在内)。 

  • 生产力不能为不良行为开脱。 这个应该是不言而喻,大家都明白的道理吧。

而且也没有什么特别的技巧可以“找到”“10 倍工程师”(尽管引发当前讨论的推文很奇怪、很可笑)。“10 倍工程师”并不是什么精灵或者妖精,你不可能通过他们所用终端的颜色、所用键盘上的磨损程度或者其他任何的刻板印象来识别出他们。

这是我用了 6 年的键盘。我想我唯一经常做的就是拷贝。我保证它并不总是来自 Stack Overflow。

 作者介绍

Jason Crawford,目前在 Flexport 任技术经理。曾任 Fieldbook 联合创始人兼 CEO,Fieldbook 是一家主打电子表格数据库的公司(类似 Airtable)。同时还是博客 The Roots of Progress 的博主。此前,还正在 Amazon 和 Groupon 担任团队负责人,并在其他几家初创公司担任联合创始人或早期员工。很久之前,曾帮助 D.E.Shaw Research 制造了一台生物技术超级计算机。

原文链接: “10x engineers”: Stereotypes and research

https://jasoncrawford.org/10x-engineers


你也「在看」吗?👇

登录查看更多
0

相关内容

刘志勇研究员,生于1946年4月,1969年毕业于西安军事电信工程学院通信工程系;1970年至1980年在第六机械工业部汉光机械厂从事计算机控制系统研究设计;1983年在西北电讯工程学院获工学硕士学位(计算机);1983年至1984年在西北电讯工程学院计算机系教学;1987年在中国科学院计算技术研究所获工学博士学位(计算机);其后在中国科学院计算技术研究所从事研究工作,任助理研究员、副研究员、研究员。曾于1988年至1992年及1995年至1996年做为博士后和访问科学家在PennsylvaniaStateUniversity(美国)、UniversityofAlberta(加拿大)、及MassachusettsInstituteofTechnology(美国)工作。1995年3月至2006年4月任国家自然科学基金委员会信息科学部副主任、常务副主任。现任中国科学院计算所前瞻研究中心主任研究员。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
打怪升级!2020机器学习工程师技术路线图
专知会员服务
98+阅读 · 2020年6月3日
专知会员服务
123+阅读 · 2020年3月26日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
阿里技术专家:优秀工程师是怎样炼成的?
51CTO博客
8+阅读 · 2019年6月15日
年薪48万的程序员,他究竟做对了什么?
机器学习算法与Python学习
7+阅读 · 2018年12月28日
如何入门并成为一名出色的算法工程师?
数据工程师的没落
大数据文摘
4+阅读 · 2017年9月20日
干货|如何轻松愉快的理解条件随机场(CRF)?
机器学习研究会
26+阅读 · 2017年8月2日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Logic Rules Powered Knowledge Graph Embedding
Arxiv
7+阅读 · 2019年3月9日
Arxiv
9+阅读 · 2018年3月23日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
打怪升级!2020机器学习工程师技术路线图
专知会员服务
98+阅读 · 2020年6月3日
专知会员服务
123+阅读 · 2020年3月26日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
相关资讯
阿里技术专家:优秀工程师是怎样炼成的?
51CTO博客
8+阅读 · 2019年6月15日
年薪48万的程序员,他究竟做对了什么?
机器学习算法与Python学习
7+阅读 · 2018年12月28日
如何入门并成为一名出色的算法工程师?
数据工程师的没落
大数据文摘
4+阅读 · 2017年9月20日
干货|如何轻松愉快的理解条件随机场(CRF)?
机器学习研究会
26+阅读 · 2017年8月2日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Top
微信扫码咨询专知VIP会员