写点什么

再谈 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:003542
用户头像

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

关注

评论 1 条评论

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

法线贴图的视线原理

3D建模设计

纹理处理 材质贴图 法线贴图

香港站群多IP服务器,扩展您的在线业务,全球影响力加倍

一只扑棱蛾子

站群服务器

什么是LED贴膜屏?

Dylan

技术 广告 3D LED显示屏

Office下载 办公软件Office 2019 mac永久激活版

mac

办公软件 苹果mac Windows软件 office 2019

软件测试/测试开发丨利用人工智能ChatGPT自动生成架构图

测试人

人工智能 软件测试 ChatGPT

数据驱动,智能运营:2023全球商业创新大会精要

用友BIP

2023全球商业创新大会

基于Java+vue开发的企事业移动培训考试平台

金陵老街

java 架构

苹果Mac电脑3D家居设计 Live Home 3D Pro 激活中文版

胖墩儿不胖y

3D Mac软件 家居设计软件 三维家居设计

凹凸贴图和法线贴图的区别

3D建模设计

纹理处理 材质贴图 凹凸贴图 法线贴图

位移贴图的实现原理

3D建模设计

纹理处理 材质贴图 位移贴图

多元变现产品全新升级,百度内容变现新解法

彭飞

Flink Batch SQL Improvements on Lakehouse

Apache Flink

大数据 flink 实时计算

微软推出统一 Copilot AI 助手;谷歌拟自主研发 AI 芯片;苹果拟在国内引进新的 OLED 供应商丨RTE开发者日报 Vol.55

声网

如何保障汽车嵌入式软件的质量与安全?您需要了解ASPICE标准

龙智—DevSecOps解决方案

汽车软件开发 汽车软件 ASPICE OEM

以创新抵御经济环境压力:自动化测试ReadyAPI帮助企业平衡软件质量与成本控制

龙智—DevSecOps解决方案

自动化测试

阻碍财务共享助力财务转型的三个坑,要绕行!

用友BIP

财务共享

网络爬虫使用什么特点的http代理?

巨量HTTP

http代理

NSDT孪生场景编辑器系统介绍

3D建模设计

数字孪生 建模 模拟仿真

流行的机器学习算法——线性回归

小魏写代码

菜单栏图标管理 Bartender 5 for mac最新

mac大玩家j

Mac软件 菜单栏软件 菜单栏管理软件

2023 届的字节跳动技术新人,个个都是宝藏同学

字节跳动技术范儿

字节跳动 offer 校招

脱颖而出!云起无垠荣获第二届“陇剑杯”优胜奖

云起无垠

软件测试/测试开发丨ChatGPT在测试计划中的应用策略

测试人

人工智能 软件测试 测试开发 ChatGPT

TiDB binlog故障处理之drainer周期性罢工

TiDB 社区干货传送门

故障排查/诊断

【ODPS新品发布第2期】实时数仓Hologres:推出计算组实例/支持JSON数据/向量计算+大模型等新能力

阿里云大数据AI技术

大数据 阿里云

企业微信 API 接口调用教程:从入门到精通

Liam

后端 后端开发 API 开放 API 企业微信开发

如何正确地计算经过时间(elapsed time)

redcoder54

Java 时钟同步

软件测试/测试开发丨利用人工智能ChatGPT编写晋级报告

测试人

人工智能 程序员 软件测试 ChatGPT 晋级报告

对话在行人|承德水务:通过数智化实现“一滴水的闭环管理”

用友BIP

对话在行人

一篇聊聊Mybatis插件开发

互联网工科生

sql 数据 mybatis

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