首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个好的程序员比一个平庸的程序员效率高10倍

一个好的程序员比一个平庸的程序员效率高10倍
EN

Software Engineering用户
提问于 2012-12-16 09:27:54
回答 4查看 62.7K关注 0票数 53

我读过一篇采访一位伟大的程序员(不是用英语),他在采访中说,“一个伟大的程序员可以是平庸程序员的10倍”,给出了为什么优秀的程序员薪水很高,为什么编程公司为他们的员工提供了很多便利。他们的想法是对优秀的程序员有很大的需求,因为上述原因,这也是为什么公司花很多钱给他们带来的原因。

你同意这个说法吗?你知道什么客观的事实可以支持它吗?

编辑:这个问题与经验无关;如果你谈论一个有1年经验的伟大程序员,那么S/他应该比一个平庸、有1年经验的程序员更有效率。我同意,从某些年的经验开始,事情开始消散,但这不是问题的目的。

EN

回答 4

Software Engineering用户

发布于 2012-12-16 11:03:29

一个真正糟糕的程序员可以有零下的效率(他们引入的bug需要更长的时间来修复,而不是仅仅为他们做所有的工作)。

一个真正伟大的程序员可以做一些糟糕而普通的程序员根本无法实现的事情,不管你给了他们多少时间。

因此,由于这些原因,很难谈论“10倍的生产力”或“100倍的生产力”。

但是,要记住的是,大多数程序员的雇主不需要他们去做普通程序员无法处理的困难任务。大多数正在编写的代码是网站、业务应用程序、内联网应用等,其中大部分并不难。在这种环境中,富有成效的程序员是最善于理解和实现用户需求的人,而不是能够编写最聪明代码的人。

事实上,大多数程序员的雇主会更好地与一个优秀的程序员,而不是一个伟大的程序员,因为伟大的人会感到无聊和离开。必须在程序员和工作之间找到一个很好的匹配。

票数 92
EN

Software Engineering用户

发布于 2012-12-31 20:27:00

我的回答是“是的,但要小心你如何使用这个指标”。

一个程序员,我们可以说,是一个功能最优的程序员,是一个为功能而创建并导致比他表现较差的兄弟更少需要修复的错误的程序员。我不难相信,这些人可以在10倍左右完成别人的工作,尤其是当你认为一个小时内做出的一个好的或坏的选择很容易产生10个小时的影响时,程序员大多数时候都会做出许多这样的选择。

但是..。

你在测量这个时一定要小心。我真的不相信大多数关于生产力的度量,因为我看到了无数的例子,几乎每一个已知的度量都没有考虑到一些我认为对团队生产力至关重要的事情。因此,我通常不喜欢这么硬的数字,因为“生产力”。以下是一些例子:

  • 代码行(LOC) --这是一个普遍令人讨厌的度量标准,因为一个轻率的程序员可以生成许多可怕的、冗长的、低效的、难以调试的代码行,而一个优秀的程序员可以在更长的时间内创建一些优雅、易于修复的代码行,但这些代码行总的来说是一个更好的选择。
  • 产生的bug和/或修复的时间--每个人都会产生一些bug,而最昂贵的错误通常是由一系列错误的决策产生的,而问题的产生者只是多米诺效应中的最后一个。此外,您的伟大调试器并不总是您伟大的设计师-你需要两者。
  • 几乎任何衡量标准,都有优秀的开发人员在团队中如此痛苦,以至于一个“超级高效”的开发人员将赶走10个基本上是优秀的开发人员,而我很少看到有人能做好所有事情,所以我们需要一个以上的人参与这个项目。
  • 我们不可能轻易地解释那些在问题严重之前就意识到问题的人,尤其是当问题是进程中的一个缺口-- CM错误、构建效率低下、测试上的空白、安全缺陷--在你意识到他们把你从灾难中拯救出来之前,这些往往是浪费时间--这是无法衡量的。
  • 此外,我认为,在一个我称之为“凝聚力建设者”的团队中,有一些人是必要的--他们很少是生产力的绝对佼佼者,他们通常仍在20%以上,他们做的非常宝贵的工作是帮助新员工,联系点,确保正确的问题被问出来,让合适的人被圈住,他们写道(未被问到!)每个人都提到的关键文档,因为它不仅是正确的文档,而且是以正确的方式组合在一起的。如果你想让10个人高效地工作,你绝对需要这些人中的一个,如果你把10个超级开发人员放在一个房间里,你就不会得到它。

许多测量系统都试图将这些因素考虑在内,但我还没有看到其中有一个考虑到了所有这些问题,所以我从来没有对“优秀的开发人员比平庸的开发人员生产率高10倍”这样的因素留下过深刻的印象,因为我不得不怀疑,这个度量标准是否真的解释了一个成功的、正在进行的产品或一个成功的、蓬勃发展的团队所需要的所有工作。

所以我要提醒的是-你打算用这个指标做什么?我将使用这样的工具来了解,正确的工具和人才可能会导致工作的完成方式有很大的不同,但是如果你试图优化一个团队,每个人都会产生10倍的“典型”输出,那么你一定会遇到挫折。更好的方法是找到一种方法,让你的团队通过更好的合作来完成他们之前所做的2-3X。

票数 20
EN

Software Engineering用户

发布于 2013-01-03 11:15:19

在他的书“软件工程的雏形”中,劳伦特·博萨维特描述了对10倍生产率要求的研究。他发现它背后没有可靠的数字--这个说法已经从猜测变成了“确定的事实”,通过一个电话游戏,接二连三地引用了更具体的主张。这篇博文包含了关于10倍索赔的章节,并包含了相关的引文和错误引文,它是软件工程中的事实与民俗

他所发现的是这样的:1968年有人做了一项研究,比较解决特定调试问题的人,发现其中一些人的调试速度比其他人快10倍。由此我们可以得出结论,有些人更擅长解决这个问题,或者我们可以得出结论,有些人是幸运的,或者是各种各样的事情。一些人选择引用这句话(这些都是释义)“一项研究(Sackman等人,1968年)发现一些程序员的工作速度比其他程序员快10倍”。后来变成了“研究表明优秀的程序员比平均水平好10倍”,最后,“大家都知道,程序员的生产力在个体之间相差10倍”。然后有人收集了所有这些引文,错误地引用了一个原始来源,说“许多研究人员相信…”。。

当然,如果断言的准确性改变了,那就不是电话游戏了:乘数可达11倍及以上也是。

票数 10
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/179616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档