发布于 2026-01-05 6 阅读
0

衡量开发者绩效的问题何在?(+ 10 个最佳指标)

衡量开发者绩效的问题何在?(+ 10 个最佳指标)

*题图作者:Shen Comix

如今,开发人员绩效是一个热门话题,尤其是在新冠疫情期间,我们大多数人都在家办公。高管们迫切需要衡量开发人员的生产力,并引入一些在他们看来可靠且有效的指标,但实际上这些指标与开发人员复杂的实际工作几乎毫无关联,反而打击了他们的积极性和士气。

在本文中,我们将仔细研究开发人员绩效的概念,找出与之相关的问题,并向最优秀的专家学习如何衡量开发人员绩效以及如何识别质量指标。

目录

无效的开发者绩效指标

衡量开发人员绩效有什么问题?

如何最大限度地提高开发人员绩效指标的准确性

十大最佳开发者绩效指标

准备好提升开发人员绩效了吗?

无效的开发者绩效指标

开发人员绩效指的是工程团队的绩效水平以及公司开发运营的成功程度。

高管们出于多种原因希望衡量开发团队的绩效。项目管理和软件工程专家史蒂夫·麦康奈尔列举了以下最常见的原因:

如今衡量开发人员生产力的最大问题在于,管理者引入的指标与开发人员的实际表现几乎没有任何关联。以下是一些最糟糕的开发人员绩效指标的常见示例:

  • 工作时长
  • 代码行数
  • 已修复错误
  • 已完成的任务
  • 提交次数
  • 速度点
  • 拉取请求计数
  • 已交付的功能
  • 计算机活动指标

使用这些指标很可能会对开发者士气和业务增长造成不利影响:它们都没有考虑到开发者的体验、业务产出或编程的真正意义。正如代码行数并不能反映开发者的努力一样,修复的 bug 数量并不代表软件质量更高,而键盘或鼠标使用率低也毫无意义。相反,这些指标会诱使开发者通过编写不必要的代码、创建存在 bug 的软件,甚至编写脚本来模拟计算机活动,从而操纵这些指标。

这样做的公司简直糟糕透了。我认识一个人就在这样的公司工作,他为了避免在不该闲的时候被人看到,竟然花时间编写脚本来模拟随机的鼠标移动和键盘输入等活动。这简直就是恶劣工作环境的典型例子。

现在让我们来看看为什么开发人员的绩效如此难以衡量,为什么大多数高管使用糟糕的开发人员绩效指标,以及是否存在任何可靠的指标。

衡量开发人员绩效有什么问题?

让我们先从生产率的定义开始,生产率等于产出除以投入。

生产率 = 产出 / 投入

这个公式看似简单,但许多与衡量开发人员生产力相关的问题都可以通过参考这个定义来解决,特别是我们对开发人员工作中“投入”和“产出”的定义。如果其中任何一个组成部分定义错误,那么生产力就无法得到客观的衡量。

什么是开发者输出?

开发者的工作产出应该如何衡量?是代码行数吗?因为这正是开发者实际产出的。是功能点数吗?还是修复的bug数量?恰恰相反,这些指标与企业的经济效益几乎毫无关联,它们本身也无法反映开发者付出的努力。

如果我们从产出定义中剔除商业经济因素,就能得到一个与商业利润脱钩的生产力定义。假设一个项目顺利完成,但产品在市场上彻底失败,没有任何盈利潜力。从这个角度来看,项目是否按时完成以及开发人员的工作是否有效还有意义吗?

什么是开发者输入?

投入指的是开发人员所做的贡献,例如时间和精力。比较不同活动所花费的时间毫无意义,因为开发人员的活动不仅仅是一系列相似任务的集合——它们涉及不同程度的复杂程度、协作以及其他因素,这些因素都会降低仅凭时间指标的可靠性。

那么,我们该如何衡量开发者的努力程度呢?活动追踪软件试图通过记录鼠标点击、键盘敲击、使用的应用和网站类型以及花费的时间来衡量用户的“高效”行为。虽然这可以作为衡量开发者活动的一个最小单位,但它与生产力或努力程度毫无关系。

如果进一步探究可能的输入和输出,你会发现自己既无法定义开发者的输入和输出,也很难选择可靠的开发者绩效指标。不仅如此,这些指标的准确性很可能受到十倍波动的影响。

什么是10倍变异现象?

1968年,萨克曼、埃里克森和格兰特进行了一项研究,试图衡量人们在线编程和离线编程哪种方式效率更高。他们研究了平均拥有7年经验的专业程序员,并发现了以下结果:

  • 初始编码时间范围:20:1
  • 调试时间范围:25:1
  • 节目规模范围:5:1
  • 程序执行速度范围:10:1

他们发现,由于个体生产力差异掩盖了线上和线下工作表现的差异,因此无法确定哪组程序员的生产力更高。所以,编码时间、调试时间和程序大小方面的差异都支持生产力存在差异的总体结论,即生产力相差10倍。

自 1968 年以来,已经开展了许多类似的研究。请看他们关于团队和个人生产力比率的分析。

所有这些研究都证明,个人和团队层面的生产力差异都非常大,由此得出以下结论:

这些研究结果表明,如果我们衡量某个流程、实践或环境因素的影响,测量结果将受到10倍个体差异的影响,这意味着这些测量结果极不可能有效。
如果我们试图评估个人或团队的生产力,这些测量结果也会受到不同项目之间流程、实践或环境差异的干扰。

如何最大限度地提高开发人员绩效指标的准确性

好消息是,我们可以最大限度地提高指标的准确性。史蒂夫·麦康奈尔制定了一系列用于识别可靠绩效指标的属性。不仅如此,他还根据这些属性评估了最常用的团队级开发人员绩效衡量标准:

因此,最重要的衡量指标是记分卡:它包含一系列开发人员绩效指标,因此在反映生产力方面非常可靠和准确。如果您纳入能够反映整个团队工作投入和所创造业务价值的指标,您的记分卡将展现最准确的开发人员绩效评估,并将10倍的个体差异因素降至最低。

即使你不想引入评分卡,最大的教训也是要依靠一套能够反映开发人员输入和输出的指标,并避免使用诸如代码行数(根据史蒂夫·麦康奈尔的评估,这是最不可靠的指标)、完成的任务数、提交的次数或发布的功能等单个指标。

那么,让我们来看看你可能想要开始跟踪的开发团队的最佳开发人员绩效指标有哪些。

十大最佳开发者绩效指标?

下面,我们汇总了 Google 认可的 10 个最佳团队开发者绩效指标(4 个 DORA 指标)、GitHub 高级产品经理Abi Noda和拥有 20 多年技术和测试经验的《单元测试的艺术》和《致软件团队领导的笔记》的作者Roy Osherove 。

1. 部署频率(DORA)

它衡量的是:一个组织成功发布到生产环境的频率。

衡量指标:每日部署次数

影响潜力:通过缩短产品上市时间提升客户价值

2. 交货期

它衡量的是:从项目开发开始到交付给客户所花费的时间。

衡量指标:提前期(天)

影响潜力:提高项目规划准确性

3. 周期时间(Roy Osherove)

它衡量的是:各个项目阶段所需的时间。

测量指标:周期时间(天)

影响潜力:提高项目规划准确性

4. 变更提前期 (DORA)

它衡量的是:一个提交操作从提交到正式上线所需的时间。

衡量指标:提前期(天)

影响潜力:提高开发人员效率

5. 速度(敏捷指标)

它衡量的是:你的团队在给定的时间内(冲刺周期)能够完成的工作量。

计量单位:工时或故事点

影响潜力:改进项目和迭代计划

6. 在制品(敏捷指标)

它衡量的是:正在进行的工作的状态

衡量指标:进行中的任务数量

影响潜力:识别瓶颈和沉没成本

7. 变更失败率(DORA)

它衡量的内容:导致服务质量下降且必须解决的部署百分比。

衡量指标:事件数量除以部署次数

影响潜力:通过减少故障次数来提高客户满意度

8. 恢复服务所需时间 (DORA)

它衡量的是:
一个组织从 生产故障中恢复所需的时间

测量:恢复时间(小时)

影响潜力:通过减少故障次数来提高客户满意度

9. 客户满意度评分

它衡量的是:客户对您的产品或服务的满意度。

测量:包含量表和开放式问题的调查

影响潜力:改善客户关系和满意度

10. 团队健康(敏捷)

它衡量的内容:团队成员之间的工作分配

衡量指标:工作项的类型和数量分布

影响潜力:创建公平的团队工作量分配

准备提升开发人员绩效

衡量开发人员绩效并非易事:您需要跟踪项目管理指标、计算业务成本和利润,并依靠时间指标来尽可能精确地规划项目。如今,您可以在时间和项目管理系统中完成大部分这些工作。

例如,actiTIME提供了一个时间和项目管理系统,您可以在其中管理工作量、查看项目进度、查看业务成本和利润等等。

构建自定义工作流程,将任务分配给团队成员,并查看时间和金钱成本如何在任务、项目阶段、项目和客户之间分配。

设置截止日期、预估时间、时间或成本预算。为任务创建自定义字段,以升级您的时间、成本和绩效报告,并查看类似项目的表现。

从 2000 多个集成中进行选择,包括 JIRA、GitHub 和 JitLab。加入 DHL、华为、飞利浦和施乐等 10000 多家公司的行列——免费试用 30 天(无需信用卡)。

文章来源:https://dev.to/actitime/whats-wrong-with-measuring-developer-performance-10-best-metrics-5620