译:解谜 10 倍程序员神话

“10 倍程序员” 的概念诞生于 《人月神话》一书中,在国外一度成为热议话题。所谓的 “10 倍程序员” 究竟又是怎样的呢?是否真的是一个人干十个人的活呢?

本文来自于 IT 之家,原文地址: https://payne.org/blog/the-myth-of-the-myth-of-the-10x-programmer/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website

正文

我在 DEC 的第一份工作是为 Aplha 处理器编写 “设计验证测试”。这些测试使用汇编语言编写,用于测试 CPU 是否正确执行操作,管理人员预计使用 6 - 8 周来开发一套特别复杂的测试。但我仅花了 3 天,用 C 语言编写了一个程序来自动生成测试。

我并不是为了炫耀而讲这个故事,而是为了引出 “10 倍程序员”。如果你也编写代码,相信你一定听说过有一些程序员的效率是其他人的十倍。这一概念最早来自于 Fred Brooks 的《人月神话》,并自此以后就被广泛讨论。

有时,学者们也会带着数据加入讨论,其中就包裹了卡内基梅隆大学软件工程研究所的研究人员,他们最近指出:

[ … ]虽然有些程序员比其他程序员更好或更快,但这[10倍]差异的规模和有用性被大大夸大了。 经验本身显然是重要的,但它的价值是有限的。

他们研究测量了 “努力程度“(完成工作的时间)、代码行数、Bug 数等十项有关编程的指标:

[. .] 每种解决方案都涉及简单的输入、输出、模块化以及控制和循环逻辑的使用。 每个故事的大小相当于一个或两个小型敏捷用户故事,需要两个或更多小时才能实现。 学生记录主要活动的时间,需要完成的解决方案,通过所有必要的测试,包括计划,设计,编码,测试和个人审查。

而我的经历与这项研究一致:在解决明确定义的问题方面,我不知道有谁会比他们的同行快 10 倍。

但这些数据也说明了为什么争论仍在持续:高效的开发者(10 倍或 n 倍)在更高的层面上解决问题。他们的生产力不会从一个简单的测试中体现,就像世界级的足球明星的技术水平不会说从他们的 100 米短跑中体现一样。

那些高效的开发者会处理严重的问题,并在必要的设计、架构以及“造轮子还是使用现有库”的决策上带来经验和判断。他们抽象出关键点,并在项目的生命周期中为项目带来好处。他们会寻找那些没有写在计 CS 教科书上的捷径,比如像 Infocom 使用虚拟机将他们的文字冒险游戏移植到一些旧系统的电脑上。(或编写代码来编写 CPU 测试)

我认为 10 倍开发者,就像顶级运动员、音乐家、作家那样,一定存在。只是你不会通过代码测试来找到他们。


译:解谜 10 倍程序员神话
https://konta9.github.io/2020/03/14/2020/译_解谜 10 倍程序员神话/
作者
Konata
发布于
2020年3月14日
许可协议