阅读更多

0顶
0踩

非技术

转载新闻 拿什么来衡量程序员的生产力?

2015-02-06 15:16 by 副主编 mengyidan1988 评论(4) 有4634人浏览
引用
如果你用谷歌搜索“mearsuring software developer productivity”,那么你会发现出来的全都是一些废话,一点用处都没有的废话。
Nick Hodges,《Measuring Developer Productivity》

所以现在你知道了吧,原来我们并没有办法来衡量

老实说,我们现在还没有明确的方法可以衡量程序员以及整个团队的生产力。我们可以确定谁可以依赖,谁比较努力,但却无法证明这些猜想,也没有量化的方法。
我们的代码写得多,所以我们的生产力更高

既然开发人员的工作就是写代码。那么,何不通过衡量代码的多少来衡量其生产力呢——看看他们写了多少行代码?

但是,不同编程语言之间的代码行数是没办法比较的,即使使用的是相同的编程语言,在不同的框架下的程序员之间的生产效率,光看代码写了多少也是无从裁定的。

更根本的问题是,通过衡量所写的代码行数来断定生产力其实没有意义的。很多软件开发中的最重要部分还包含思考和学习——不仅仅是写代码。

最优秀的程序员会将大量的时间用于了解和解决疑难杂症,或帮助他人解决难题,而不是写代码。他们会想方设法简化代码,避免重复。他们会通过实验、建立原型等方式迭代代码,替换原先旧的代码,以获得最佳的解决方案。

所以,光从代码数量上看,还真看不出程序员的生产力水平来。

我们钱赚得多,所以我们的生产力更高

我们也可以通过财务上面的盈利能力来衡量每个团队的产出,或者其他的业务措施,如有多少用户正在使用系统——如果开发人员能为企业赚更多的钱(或节省更多的钱),那么是不是他们的生产力更高呢?

利用财政措施似乎在执行层面上是一个不错的主意,但是却有太多的商业因素是不受开发团队控制的。有些开发团队很垃圾,但他们的产品就是成功了;而有些团队兢兢业业却还是只收获了失败的果实。注重节约成本的理念很有可能会导致许多管理者裁人,企图“少花钱多办事”,而不是投资于真正的生产力提高。

看来此路不通,我们需要寻找其他更有有意义的生产力指标。

我们的开发速度快,所以我们的生产力更高

衡量开发速度——敏捷速度——看起来更像是另一种从团队层面来衡量生产力的方式。毕竟,软件开发的重点是提供可工作的软件。如果你的团队能更快地拿出产品,自然是更好。

但是,速度(一个团队在一段时间内能完成的工作)与其说是衡量生产力的,还不如更精确点说,是用来衡量预见性的:用来衡量一个团队能承受多少的工作。

但是,我们又不得不考虑人员加入或离开等对速度的影响因素。而且,有一点你得清楚,速度只能只能用于衡量已知团队——由于很多因素的不同,速度并不能用于不同团队之间的比较。

保持忙碌的状态就对了

一个我认识的经理曾这样说道,与其试图衡量生产力,还不如

引用
“保持忙碌的状态就对了。只要我们不断地挖掘问题,就一定可以找到瓶颈,解决掉这些难题。”

在这种情况下,我们会衡量——并优化——循环时间。

团队可以使用看板去监控——并限制——正在进行的工作,并确定瓶颈,使用价值流图可以了解需要优化的步骤、排序、延误和信息流。总之一切为了尽快地交货和发布。

但是我们还是不能将交货速度等同于生产力。这是因为只优化交付本身的循环时间/速度很有可能会导致更大的长期性问题,要知道这种方式实质上是在鼓励人们只顾眼前,从而偷工减料,背负技术债务。

我们的软件更好,所以我们的生产力更高

众所周知,软件中出现bug和错误会导致成本显著提高:不仅开发返工成本高了,维护和支持的成本也高了。而最最重要的是,差的软件可能会造成客户的流失,甚至是生意的失败。

要想衡量你正在写的软件是好是坏也很容易:缺陷密度、缺陷逃逸率,以及利用SonarQube之类的工具对代码库进行静态分析。

我们知道如何编写好的软件。但是软件质量是否真的足以定义生产力?

开发人员——衡量和改进IT性能

开发团队试着综合上述一些因素来衡量生产力:交付速度和质量。

但开发人员并不限于创建和提供代码——相反还需要着眼于为端到端提供IT服务的性能指标:交付吞吐量和服务质量。

所以这不只是软件更快、更好的问题,而是需要提供更好更快的服务,在速度和功能之间选择平衡,衡量并提高生产效率和质量。

还有一点,最近有研究表明,企业要想成功:不仅生产力要提高,更重要的是要提高市场份额和盈利能力。

衡量成效,而不是产量

不要再试图去衡量单个开发人员的生产力了。

这纯粹是在浪费时间。

每个人心中都有一杆秤。 对于表现优秀的——鼓励他们继续朝着正确的方向前进,再接再厉。对于那些努力上进的——给予他们帮助。对于那些不适合的——可以请出去了。

衡量和提高团队或组织级别的生产力将会让你收获更加有意义的回报。

所以当涉及到生产力时:

1.衡量关键因素——能对团队和组织起重要作用的因素。
2.设置的指标应该是起积极作用的——可以推动学习和改进,而不是造成团队或个人之间关于产量的恶性竞争。
来自: 码农网
0
0
评论 共 4 条 请登录后发表评论
4 楼 forfunny 2015-02-14 11:21
最后还是一堆废话
3 楼 ICE___ 2015-02-13 11:31
最后还是一堆废话
2 楼 骨之灵魂 2015-02-10 16:03
最后还是一堆废话
1 楼 tangyanbo 2015-02-09 10:40
[i][b][u]
引用
[list]
[*][img][url][flash=200,200][*][*]
[flash=200,200][url][img][/img][/url][/flash]
[/flash][/url][/img] [/list]
[/u][/b][/i]

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 拿什么来衡量一个程序员的生产力

    拿什么来衡量一个程序员的生产力——伯乐在线的一篇文章,有一些共鸣,与大家分享。如果你用谷歌搜索“mearsuring software developer productivity”,那么你会发现出来的全都是一些废话,一点用处都没有的废话。...

  • 我们无法衡量程序员的生产力……还是可以?

    现在我们都应该知道我们不知道如何衡量程序员的生产力 。 没有明确的方法可以衡量哪些程序员在做的更好或更快,或者在团队之间比较生产率。 我们“知道”团队中的明星是谁,我们可以依靠谁来交付,以及谁在挣扎。...

  • 你都不知道自己有多强,衡量程序员生产力的标准是什么?

    如果你用谷歌搜索“mearsuring software developer productivity”,那么你会发现出来的全都是一些废话,一点...所以现在你知道了吧,原来我们并没有办法来衡量程序员的工作效率。 老实说,我们现在还没有明确的方法...

  • 如何衡量程序员水平_我们无法衡量程序员的生产力……还是可以?

    到现在我们都应该知道我们不知道如何衡量程序员的生产力 。 没有明确的方法可以衡量哪些程序员在做的更好或更快,或者在团队之间比较生产率。 我们“知道”团队中的明星是谁,我们可以依靠谁来交付,以及谁在挣扎...

  • 有没有不用加班的程序员?如何衡量程序员的工作量?

    作者 | 伍杏玲头图 | 下载于视觉中国出品 | CSDN云计算(ID:CSDNcloud)在知乎上,有个近四百万浏览的程序员热帖:有没有不用加班的程序员?程序员为什么需要加班大概可总结为...

  • 拿什么来衡量程序员的生产力!代码量?开发速度?忙碌的状态?都不是!

    老实说,我们现在还没有明确的方法可以衡量程序员以及整个团队的生产力。我们可以确定谁可以依赖,谁比较努力,但却无法证明这些猜想,也没有量化的方法。 我们的代码写得多,所以我们的生产力更高 既然开发...

  • 你都不知道自己有多强,衡量程序员生产力的标准是什么? ...

    如果你用谷歌搜索“mearsuring software developer productivity”,那么你会发现出来的全都是一些废话,一点...所以现在你知道了吧,原来我们并没有办法来衡量程序员的工作效率。 老实说,我们现在还没有明确的方法...

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

    在软件工程研究中,被验证得最多的结论就是对于同等经验... 首先发现不同的人在编程生产力上的巨大差距的研究,是1960年由Sackman、Erikson以及Grant三个人完成的。他们研究了工作经验平均在7年的专业程序员,并发现最

  • 浅析如何衡量程序员的生产效率

    实话说,即使到现在我们的管理层还没有明确的方法可以衡量程序员以及整个团队的生产力。我可以确定谁可以依赖,谁比较努力,但却无法证明这些猜想,也没有量化的方法。难道计算代码的多少?这肯定是个笑话。 ...

  • 程序员市场饱和?其实只是你还不够强!

    “听说不少程序员都找不到工作,不知道过个5年10年,这岗位会不会消失啊?”这话有几分耳熟。就像我当年选择电子信息工程专业时听到的一样。必须承认,时代斗转星移,行业朝夕更替,但人们对“找不到工作”这件事...

  • 家庭支出与收入数据数据集,根据人口统计和地理指标进行了分类,加拿大为例,适用于数据分析、机器学习

    这个数据集提供了2010年至2021年间加拿大各省的家庭支出与收入数据,这些数据根据人口统计和地理指标进行了分类。每行代表了年份(REF_DATE)、省份(GEO)以及编码后的支出或收入类型的唯一组合(COORDINATE)。以下是该数据集的关键特点及包含的列信息: 关键特点: 支出数据:家庭支出按照收入五分位数和支出类别进行分类。 收入数据:家庭收入值根据家庭类型、较年长成年人的年龄组别和收入水平细分。 地理位置匿名化:为了保护隐私,原始的地理位置标识符被替换为如“Province 1”这样的标签。 时间序列:涵盖了超过十年的财务数据(2010–2021),适合用于纵向经济和社会趋势分析。 包含的列: REF_DATE:记录年份(2010–2021) GEO:省份标签(例如,“Province 1”) Statistic:度量类型(例如,平均家庭支出) Before-tax household income quintile:税前家庭收入水平分组 Household expenditures, summary-level categories:支出类别 UOM:计量单位 COORD

  • 【锂电池剩余寿命预测】GRU门控循环单元锂电池剩余寿命预测(Matlab完整源码和数据)

    1.【锂电池剩余寿命预测】GRU门控循环单元锂电池剩余寿命预测(Matlab完整源码和数据) 2.数据集:NASA数据集,已经处理好,B0005电池训练、测试; 3.环境准备:Matlab2023b,可读性强; 4.模型描述:GRU门控循环单元在各种各样的问题上表现非常出色,现在被广泛使用。 5.领域描述:近年来,随着锂离子电池的能量密度、功率密度逐渐提升,其安全性能与剩余使用寿命预测变得愈发重要。本代码实现了GRU门控循环单元在该领域的应用。 6.作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。

  • 【更新至2024年】2000-2024年各省专利侵权案件结案数数据

    2000-2024年各省专利侵权案件结案数数据 1、时间:2000-2024年 2、来源:国家知识产权J 3、指标:专利侵权案件结案数 4、范围:31省 5、用途:可用于衡量知识产权保护水平

  • HMTL+JS+CSS实现贪吃蛇游戏,包含有一般模式,困难模式,还有无敌模式

    - 使用`<div>` 容器组织游戏界面,包含得分显示、游戏画布和操作按钮 - 支持三种游戏模式选择(一般模式、困难模式、无敌模式) - 移动端和桌面端兼容,提供触摸和键盘两种控制方式 2. CSS样式 : - 采用Flex布局实现页面居中显示 - 使用Grid布局实现方向按钮的排列 - 定义了游戏容器的阴影、圆角等视觉效果 - 为按钮添加了hover效果和过渡动画 3. JavaScript逻辑 : - 使用Canvas API实现游戏渲染 - 实现了蛇的移动、食物生成、碰撞检测等核心游戏逻辑 - 支持三种游戏模式,不同模式对应不同的游戏速度和规则 - 使用localStorage保存最高分记录 - 实现随机颜色生成,使游戏更具趣味性 代码整体结构清晰,功能完整,具有良好的可扩展性和可维护性。

  • 附件2-5:台区智能融合终端入网专业检测送检样品主要元器件清单.docx

    台区终端电科院送检文档

  • 基于强化学习的飞机升阻力特性预测模型实现及应用(含详细可运行代码及解释)

    内容概要:本文详细介绍了一个基于强化学习(RL)的飞机升阻力特性预测模型的实现过程。首先,定义了飞机空气动力学环境,包括状态空间、动作空间以及目标——预测升力系数(Cl)和阻力系数(Cd)。接着,通过生成模拟数据并进行预处理,创建了用于训练的数据集。然后,构建了一个神经网络代理模型,用于联合编码状态和动作,并预测升阻力系数。最后,实现了PPO算法来训练强化学习代理,使其能够根据当前状态选择最优动作,并通过不断迭代提高预测精度。文中还提供了完整的代码实现和详细的注释。 适合人群:航空航天领域的研究人员、机器学习工程师、对强化学习感兴趣的开发者。 使用场景及目标:适用于需要预测飞机升阻力特性的应用场景,如飞行器设计优化、性能评估等。目标是通过强化学习方法提升预测模型的准确性,从而为实际工程提供可靠的理论支持和技术手段。 其他说明:本文不仅涵盖了模型的设计与实现,还包括了数据生成、预处理等多个环节,有助于读者全面理解整个建模过程。同时,提供的代码可以作为研究和开发的基础,方便进一步扩展和改进。

  • cmock ut aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

    cmock ut aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

  • lsm6d datasheet

    lsm6d datasheet

  • 风力发电机传动机构的设计(增速器).rar

    风力发电机传动机构的设计(增速器)

Global site tag (gtag.js) - Google Analytics