写点什么

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

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

关注

评论 1 条评论

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

我的树莓派居然偷偷的学会了日语

IT蜗壳-Tango

IT蜗壳教学 6月日更

6月2日,讲一个鸿蒙的故事

这不科技

华为 鸿蒙

fil云算力系统开发具体流程丨fil云算力开发源码成品

系统开发咨询1357O98O718

网络攻防学习笔记 Day33

穿过生命散发芬芳

网络攻防 6月日更

【译】JavaScript 代码整洁之道-异常处理篇

KooFE

JavaScript 大前端 异常处理 6月日更 整洁代码

面向对象的Python编程,你需要知道这些!

华为云开发者联盟

Python 面向对象 oop 面向对象编程

Tapdata 实时数据融合平台解决方案(五):落地

tapdata

大数据

毕业设计So Easy:珠穆朗玛FM音频电台APP

不脱发的程序猿

android 软件开发 APP开发 毕业设计 移动应用开发

国内首篇云厂商 Serverless 论文入选全球顶会:突发流量下,如何加速容器启动?

Serverless Devs

Serverless 容器 云原生

🏆未来可期,WebRTC成为实时通讯方案的行业标准

码界西柚

音视频 WebRTC 实时通信 6月日更

Tapdata 实时数据融合平台解决方案(四):技术选型

tapdata

大数据

【LeetCode】你能在你最喜欢的那天吃到你最喜欢的糖果吗?Java题解

Albert

算法 LeetCode 6月日更

从零开始学习3D可视化之控制对象(1)

ThingJS数字孪生引擎

物联网 可视化 3D 3D可视化 数字孪生

华为云携手马栏山文创园助力湖南广电荣获国家广电总局多项大奖

华为云开发者联盟

AI 5G 视频 华为云 马栏山

一封MySQL之父Monty的回信,开启彭立勋的数据库之路

华为云开发者联盟

MySQL 数据库 opengauss GaussDB 华为云数据库

智能炒币机器人系统开发案例解析,智能炒币机器人源码设计

系统开发咨询1357O98O718

写给想做程序员的半吊子应届毕业生们

北游学Java

Java Python 求职 秋招

架构实战营 - 模块 5- 作业

carl

Tapdata 实时数据融合平台解决方案(一):现代企业数据架构及痛点

tapdata

mongodb

Tapdata 实时数据融合平台解决方案(二):理解数据中台

tapdata

oracle mongodb

Tapdata 实时数据融合平台解决方案(三):数据中台的技术需求

tapdata

oracle mongodb

架构实战营模块五作业

竹林七贤

带你认识大模型训练关键算法:分布式训练Allreduce算法

华为云开发者联盟

分布式训练 Allreduce算法 集合通信 分布式通信算法 大模型训练

TCP协议

IT视界

TCP 传输协议 网络通信

一文回顾 Java 入门知识(上)

逆锋起笔

Java 后端 javase

AT智能量化炒币机器人系统开发详解案例

系统开发咨询1357O98O718

奇亚Chia挖矿系统开发方案丨奇亚Chia挖矿源码功能

系统开发咨询1357O98O718

云上创新,阿里云视频云分享全场景音视频服务背后的场景探索与技术实践

阿里云CloudImagine

阿里云 音视频 在线教育 视频会议 直播技术

我把 Spring Boot 项目从 18.18M 瘦身到 0.18M,部署起来真省事!

xcbeyond

微服务 springboot 6月日更

webRTC实现音视频通话与屏幕共享

侠客行

WebRTC 屏幕共享 iOS屏幕共享 web屏幕共享

🔎【Java 源码探索】深入浅出的分析HashMap(JDK7)

码界西柚

Java hashmap 6月日更 JDK7

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