写点什么

再谈 10x 程序员

  • 2017-06-19
  • 本文字数:2253 字

    阅读完需:约 7 分钟

在之前的一篇文章中,Redis 之父 Salvatore Sanfilippo 列出了 10x 程序员应该具备的 9 种素质。Salesforce 的首席工程师 Rudy Rigot 从另一个角度解读 10x 程序员。以下内容翻译自作者的博文。

最近,我一直在为一个矛盾的想法感到烦恼:我感觉某一天的工作效率高得离谱,但我也发现我花在工作上的时间并没有减少。而这又催生了另一个矛盾的想法:我看到一些成功的软件公司追捧神奇的 10x 程序员,同时也鼓励那些花很多时间在个人事情上从而避免被掏空的员工。

这些悖论让我感到相当疑惑,我绞尽脑汁,最后得出一个结论,这个结论很好地解释了这些看起来似乎是对立面的现象。

我之所以用“似乎”这个词,是因为我认为它们其实并不算是真正的对立面。简单地说,虽然我们使用相同的词汇描述程序员的效率,但其实我们讨论的是两种非常不同的效率。

  • 一方面,效率是指在最短的时间内交付最多的产出。这个可以通过代码量(提交次数、代码行数等)或与开发相关的工作量(文档页数、其他可交付的东西等)来衡量。工作时间越长就意味着更多的产出。
  • 另一方面,效率是指使用最短的时间和最少的投入产出最多的业务价值。这个可以通过程序员的工作能够为利益相关者(客户、同事等)带来多少真正的利益来衡量。我一直认为,程序员的职责不在于解决技术问题,而是通过技术手段解决业务问题。

之所以会出现混淆,是因为大多数工作的投入和产出在一定程度上是呈线性关系的。最简单的例子:如果你在工厂上班,那么你工作时间越长,你就会生产出越多的产品。更多的时间等于更多的价值。但在软件开发工作中,时间和价值不一定划等号,而且我敢说,有时候它们甚至是相互对立的。

时间和价值之间不能完全划等号,有很多原因。有时候一个问题把你卡住了,你抓狂了整整一个礼拜,感觉一事无成,直到最后找出问题的根源,并在 10 分钟内解决了问题。你可能花一个小时来自动化一个流程,虽然你因此搁置了其他的一些工作,却为其他团队每周节省了数个小时的时间。你可能突然冒出一个想法,为公司的结账通道引入了一个新的变化,从而提升转化率,哪怕是 1% 的转化率也可能意味着数百万的利润。

有时候,时间和价值是相互对立的(更多的工作时间意味着更少的价值产出),因为如果以“业务价值”KPI 为前提,那么你的产出将取决于很多难以掌控的未知因素。你可能花了一整天尝试解决某些问题,然后回家休息了一个晚上,第二天早上回来继续工作,居然在 5 分钟之内把问题解决了,或许你会因此认为充分的休息更为重要。

“10x 程序员”和“快速进展”

现在让我们回到“10x 程序员”的话题上来。作为一个“老油条”,我认为 10x 程序员只是神一般的存在,或许你们也是这么认为的。不过,如果是以业务价值作为 KPI,那么 10x 程序员是可能存在的。我可以告诉你们的是,现今有很少工程师能够真正给他们的公司带来业务价值。他们解决技术问题,只是因为它们很有趣或者很有挑战性,他们缺乏这方面的经验,而且不是以价值为驱动,所以他们容易跑偏,而他们的领导也不懂得如何更好地调整他们的工作优先级。如果是以价值作为 KPI,那么那些正在创造业务价值的工程师就有可能是 Nx 程序员!

如果是以这样的 KPI 为前提,那么“快速进展并突破”可以理解为“在最短的时间内提升创造业务价值的能力,不要太过满足于已经创造的价值,它们仍然有提升的空间”。如果“提升创造业务价值的能力”意味着减少工作量并获得充足的休息以便产出高能的价值,那么“快速进展并突破”也并不会给你带来任何压力或投入更多的工作时间。

行业现状

当然,并不是所有的公司都会同意我的观点。有些公司是一个极端,比如 Uber、Apple 等,他们希望顶级的工程师能够全力以赴,最大化他们的产出,以便达成他们想要的业务价值。而另一个极端,比如 Facebook、Salesforce 等,他们坚持认为工程师应该知道自己应该在什么时候放慢脚步,在必要的时候减少工作时间,以更聪明更周全的方式工作,因为他们相信他们的工程师因此能够在更少的时间里以更少的投入产出更多的价值。

当然,也有同时持有两种观点的公司,他们也很成功,所以我不认为它们哪个会比哪个更正确。我的观点的核心在于:

  • 后者并不是悖论,对于这些公司的员工来说,这样做也并非缺乏职业素养。因为软件工作的特殊性,在某些有利条件下产出高能价值是有可能的。
  • 作为软件行业的工程师,你有在这两种文化(以及它们的折中)中做出选择的权利,与其他行业的从业人员相比,我们真的算幸运的。

结论

或许你会问:“10x 程序员都会经常打盹吗”?实际上并不全是,可能是刚好让你给撞上了。不过我所看到的很多“业务价值 10x”的程序员反而经常这样,因为他们很清楚自己的极限,他们知道什么时候该做一些与工作无关的事情,在得到充分休息之后继续回来工作,然后产出高能的业务价值。他们当中有些人会选择打盹,长时间的打盹,而对于你来说,你需要找到适合你自己的方式(在适当的时候出去散步、通过玩游戏放空你的脑袋、和你的小孩一起玩……)。

那么接下来该怎么做?如果你不清楚该怎么在实际工作当中应用这些想法,可以参考这些必杀技:注意观察当你使用少量的代码解决了一个很重要的业务问题时都发生了什么;注意观察日常工作中是什么让你的产能倍增;不断地了解你自己的极限,改进你的健康状况和精神状态,提升你的效率;遵循你找到的这些模式。

查看英文原文 10x engineers take long naps


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-06-19 19:004059
用户头像

发布了 322 篇内容, 共 159.5 次阅读, 收获喜欢 148 次。

关注

评论 1 条评论

发布
用户头像
不要再卷了
2021-08-31 17:54
回复
没有更多了
发现更多内容

第三周

Jove

产品训练营第三章-第一节小结

skylar

【LeetCode】BFS解决二叉树的最小深度

Albert

算法 LeetCode 2月春节不断更

第三章作业

Kalman

产品经理 产品经理训练营

产品经理训练营 - 第二章作业 (二)

joelhy

产品经理训练营

week12 数据应用(一)

杨斌

第三周作业-利益相关者的问题及排序

隋泽

产品经理训练

第三次作业

z

图解Mysql索引的数据结构!看不懂你来找我

Java鱼仔

Java MySQL 数据库

新浪微博利益相关方分析(相关方问题)

🙈🙈🙈

极客大学产品经理训练营

第三周作业

BlueSky

产品经理-第二周作业(2)

LLL777

利益相关者排序

Geek_a32093

OpenCV入门--读图,展示,保存

IT蜗壳-Tango

Python OpenCV 七日更 2月春节不断更

关注产品的利益相关者,想想他们的问题,自己设定一些前提,做个简单的排序。

mas

产品经理训练营--第三章作业

Lucas zhou

产品经理训练营

第三章学习总结

Kalman

产品经理 产品经理训练营

第三周作业

苏格图德

产品经理训练营

最新Wordpress个人博客搭建教程:免费精美主题搭建个人博客

大佬sam

Wordpress 博客部署 2月春节不断更

产品经理训练营第二章作业(二)

猫。

作业3

YING꯭YING

第二章:产品思维和产品意识(下) - 作业 - 为云 g

Weiyung

管理笔记[5]:“态度”决定成败,是一切组织管理的前提

L3C老司机

抽奖助手小程序 利益相关方排序及解决方案

Shine

产品

《未来科技趋势白皮书》概述解读

李忠良

28天写作

创业失败启示录|8分钟,50万,欢乐收场

阿萌

28天写作 创业失败启示录 2月春节不断更

第三次作业及总结

青葵

学习

【作业-03】解决方案的设计与积累

西西里奇

第三周总结

Jove

week13 数据应用(二)

杨斌

产品经理训练营第三次作业

Jobs

再谈10x程序员_语言 & 开发_Rudy Rigot_InfoQ精选文章