程序员编程生产力相差10倍意味着什么?

在软件工程研究中,被验证得最多的结论就是对于同等经验的两个不同程序员,在效率和质量上可能会有10倍的差距。研究人员还发现,这种差距也适用于团队级别上,也就是说在同一行业内的不同的团队也是如此。

软件开发中的个人效率的变化

首先发现不同人在编程生产力上的巨大差距的研究,是1960年由Sackman、Erikson以及Grant三个人完成的。他们研究了工作经验平 均在7年的专业程序员,并发现最好和最差的程序员写新代码的时间比为20∶1;调试次数是25∶1;程序大小是5∶1;程序的执行效率是10∶1。他们还 发现,程序员的经验和代码质量或效率并没有关系。

在详细地研究了Sackman、Erickson以及Grant的研究结果之后,我们可以发现他们所使用的方法中有很多缺陷,例如把使用低级程序语 言和高级程序语言的程序员合在一起研究等。但是,即便把这些缺陷考虑进来,他们的数据也仍然表明,最好的程序员和最差的程序员之间的差距能达到10倍以 上。

那次研究之后,还有很多其他关于专业程序员的相关研究都证明了一个结论:程序员的水平也分三六九等(具体内容参见本书中的参考文献)。

除些之外,很多轶事传闻也支持这种观点。在20世纪80年代中期,当我还在波音公司工作的时候,有个约80个程序员组成的项目组正面临着无法按时完 成一项关键任务的风险。这个项目对于波音来说至关重要,所以他们把项目上80个人中的一大半换成了另外1个人,而这位仁兄单枪匹马地完成了所有的编程工 作,并按时交付了软件。我并没有在这个项目组中工作,也不认识这位天才,但是这个故事是一位我所信任的人告诉我的,所以我相信这是真的。

这种差距并不仅限于软件行业。Norm Augustine的一份研究指出,在各行各业中,包括写作、橄榄球、发明、警务工作等,都存在一个情况,那就是行业中位列前20%的顶尖人才的产出占到 了该行业总产出的50%,无论这些产出是得分、专利、侦破的案件还是软件 。你可以想想看,这还是有道理的。我们都知道,有的学生就是比其他学生优秀,运动员、艺术家甚至家长也是如此。既然这种差别存在于所有人群中,那么软件开 发又怎么会例外呢?

巨大的差距带来的负面影响

Augustine的研究发现,由于有些人完全没有任何实质的贡献(例如不能得分的前锋、没有专利的发明家、无法破案的警探等),人与人之间的差距的实际情况可能比上文提到的数据还要大。

在软件行业中似乎就是这样。在多个已发表的关于软件开发效率的研究项目中,大约有10%的实验参与者无法完成实验任务。这些研究报告常常会这样说 道:“所以我们从数据集中排除了这些参与者的结果。”但是在现实生活中,如果某个人“无法完成任务”,你就不能简单地“从数据集中排除他们的结果”了。你 或者得等他们完成,或者得另外指派一个人完成他们的工作,等等。这里有一个有趣(而又可怕)的暗示,那就是在软件行业中,差不多有10%的人对项目产出的 贡献是负数。

和此前一样,这也和我们在现实生活中的感受一致。我相信很多人都能够在共事过的人中找出符合这个描述的人。

什么造就了真正的“10倍程序员”

很多人并不喜欢被贴上“10倍”这样的标签,因为他们觉得人们会说:“我们团队中曾有个超级程序员,他牛哄哄的,每个人都不愿和他来往,要是没有他整体效率反而还要高些。”

通常来说,任何对10倍程序员的实用定义都必须考虑这样的程序员对于团队其他人员的影响。我也知道的确有牛哄哄的超级程序员。但更多的时候,那些牛 哄哄的超级程序员其实只是普通水平的一般程序员而已,甚至还达不到普通水平。他们只是用牛哄哄的外表来让自己的表现看上去不那么差而已。我所共事过的真正 的超级程序员们除了技术水平以外,通常还有很好的团队精神(虽然有时也有些例外)。

测量程序员的个人生产力的问题

由于很多研究都指出不同程序员的效率可以有10倍的差距,导致很多人产生了一个想法,那就是测量他们在自己组织内的个人效率。无论如何,这种想法所涉及的测量“活的”程序员的生产力和一般研究中所说的生产力有很大不同。

软件工程研究通常用完成某个任务所需的时间、每小时或每个月能写多少行代码或者其他一些标准来测量生产力。但如果你尝试在商业环境中用这些标准来测量生产力,那就会碰到很多问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
综合小区管理系统管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、车位管理、车位分配管理、出入管理、字典管理、房屋管理、物业费缴纳管理、公告管理、物业人员投诉管理、我的私信管理、物业人员管理、用户管理、管理员管理。用户的功能包括管理部门以及部门岗位信息,管理招聘信息,培训信息,薪资信息等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 综合小区管理系统管理系统可以提高综合小区管理系统信息管理问题的解决效率,优化综合小区管理系统信息处理流程,保证综合小区管理系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理综合小区管理系统信息,包括出入管理,报修管理,报修管理,物业费缴纳等,可以管理操作员。 出入管理界面,管理员在出入管理界面中可以对界面中显示,可以对招聘信息的招聘状态进行查看,可以添加新的招聘信息等。报修管理界面,管理员在报修管理界面中查看奖罚种类信息,奖罚描述信息,新增奖惩信息等。车位管理界面,管理员在车位管理界面中新增。公告管理界面,管理员在公告管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值