目录

如何衡量管理开发人员生产力/绩效?2个原则和6个核心指标

很多时候,公司只关心工程团队的产出结果,而不是过程。管理层不关心提交次数、活跃天数或故事点数。他们关心的是新功能、更满意的客户,以及如何在不增加支出的情况下获得更多。

那么,如何量化和传达开发人员的生产力,或者也可以说是“绩效”以确保工程团队的工作与公司期望的业务目标保持一致?

本文将分享能够帮助你找到衡量公司开发人员生产力的最佳方法,一旦掌握了这种方法,你就可以使你的团队负责人改善他们的工作流程和效率。

本文主要内容:

  • 开发人员生产力是什么?
  • 衡量成果,而非产出
  • 衡量团队,而非个人
  • 如何衡量开发人员生产力
  • 开发人员生产力的障碍
  • 提高你的开发人员生产力

一、什么是开发人员生产力

简单地说,开发人员生产力是一个团队(而不是个人)有效发布高质量、具有业务价值代码的能力。

开发人员生产力应该包括定性和定量的数据。

基于原始的DevOps研究和评估(DORA)报告和4个关键指标,有研究团队推出了SPACE框架,作为更全面衡量开发生产力的方法。但你可能一直在错误地使用DORA指标。

要有效评估开发人员生产力,你需要衡量许多方面,而不仅仅是几个关键绩效指标(KPI)。

你要理解一件事,就是开发人员的幸福感和生产力并不是相互排斥的。所以你的团队应该考虑其他指标,并不局限于上述框架。当你确定真正需要衡量的内容,才能准确评估团队的生产力。

二、衡量开发人员生产力的2个原则

1.衡量成果,而非产出 

许多软件公司通过计算开发人员编写的代码行数来衡量他们的生产力,认为源代码的数量和项目的大小可以直接反映程序的复杂性。但这种方法并不理想。

开发人员通常遵循“少即是多”的原则,强迫他们编写更多的代码并不会使代码工作得更好或更快地解决问题。

因此,不应该将重点放在产出上,相反,应该专注于成果。特别是更频繁地交付更多功能,或按时交付。这样做不仅可以帮助软件工程团队衡量软件开发人员的生产力,还可以促进更高效的开发流程,从而缩短开发时间。

2.衡量团队,而非个人 

很多公司通过评估每个团队成员的表现来衡量开发人员的生产力,使用像审查时间、提交次数、平均提交大小以及代码审查的次数或频率等指标来衡量个人绩效。

但这种方法并没有效,因为这是一个团队的工作,而不是个人的工作。

团队应该专注于共同取得的成就,并一同取得成功。与其追踪开发人员的个人绩效,不如追踪团队的整体表现,检查他们是否实现了目标,鼓励协作让他们共同成长,而不是个别人员的成长。

三、衡量开发人员生产力6个关键指标

软件公司可以采用许多不同的方式来衡量开发人员的生产力。

例如,他们可以使用衡量效率的指标来解决诸如软件膨胀之类的问题。还有一些公司可能会根据客户满意度和产品发布来衡量绩效。

但我们希望进一步简化这件事情,因此我们在这里分解了一些应该分析的确切生产力指标。 

1.周期时间

周期时间是衡量团队从第一次提交代码到生产所需的时间。如果团队的周期时间较长,可能有某些因素阻碍了他们的进展。如果周期时间持续增加,可能会导致团队疲惫或错失目标。所以如果我们必须选择一个衡量指标,那就是周期时间。

在我们的工程指标基准研究中,我们发现精英开发团队的周期时间少于48小时。

通常情况下,短的周期时间与小的PR(拉取请求)大小、健康的审查过程和高部署频率有关。总的来说,具有精英周期时间的团队能够更可预测地交付更多功能,并且质量更高。

image.png



2.部署频率

部署频率是你的团队发布代码的频率。经常部署的团队表明交付流程稳定,并且生产每天会得到几个小更新。但是,如果你的团队部署不够频繁,可能会面临不稳定的较大版本。

3.拉取请求(PR大小

在这里我们要明确:衡量代码行数不是衡量生产力的好方法。

少即是多,所以不应强迫团队编写比他们需要的更多行代码。这也适用于拉取请求(PR),因为较大的PR意味着团队开发和审查它们需要很长时间。较小的PR允许团队更快、更一致地接手、审查和部署。

4.返工率

返工率衡量的是开发后不超过21天的代码更改数量。如果团队花费大量时间重做刚刚部署的代码,那么这就是代码流失或代码质量低的迹象。而正常来说,团队回头重做的次数越少越好。

5.团队时间投入概况

总的来说,投入概况会告诉你团队究竟在做什么。他们在用户故事、错误修复或其他任务上花费的时间百分比是多少?

没有这个信息,你只能对正在发生的事情有个大致的了解,但这无法帮你了解真相比并实现改进。跟踪这一指标,你能够回答一个十分关键的问题:“工程团队是否在正确的工作类型上投入了正确的时间量?”

6.计划准确性

如果开发计划出现错误,那么它就失去了原有的意义。计划准确性是通过比较团队在冲刺Sprint)期间计划工作的速率与实际交付的内容来体现的。

如果每次冲刺都没有实现目标,团队可能会在技术债务或未计划的工作上花费太多时间,这两者都会损害士气。

而一些工具,比如PingCode的迭代概览和报表可以跨不同工具关联数据,以识别可能影响你达成目标的因素。通过过程数据的对比和分析,团队可以更好地估计自己的能力,相应地调整期望,并更准确地预测是否会按时达到或错过承诺的截止日期。



四、开发人员生产力的障碍

技术的复杂性和浪费经常妨碍开发团队。为什么?因为他们经常跨多个平台处理故事点。此外,过多地增加功能或需求(即范围蔓延)都将使团队持续错过截止日期。这些都会造成开发者的消极,那么如何预防它呢?

1.范围蔓延

是大部分团队都可能存在现实的情况。如果你的团队没有坚持冲刺计划会议中设定的目标,很可能是范围蔓延造成的。

当团队在冲刺期间不断承担额外工作时,这很容易导致倦怠和进一步降低生产力。与你的团队沟通,看看可以采取哪些措施来减少范围蔓延的可能性,并保持开发人员的满意度。

2.开发人员体验

说到让开发人员保持满意,你的开发人员真的满意吗?如果不是,这很容易导致消极或人员流失率高。

在研究中,影响开发人员体验的三个核心指标:进行中的工作、消极风险和合并频率。密切关注团队成员的工作负荷对于确保每个人在冲刺结束时感到满意而不是沮丧非常重要。

比如,你可以使用 PingCode 的团队仪表板可以让你查看整个团队的所有活跃天数和进行中的工作。这有助于提高开发人员的满意度,并防止他们感到消极。

五、提高你的开发人员生产力

工程经理需要能够正确衡量开发人员的生产力,以便改进它。由于有许多需要考虑的指标,管理者需要为组织找到合适的指标,并牢记一点:开发人员工作流程的优化与开发人员生产力的提高有直接关系。

这个过程中,你可以借助PingCode这样的平台,自动计算开发人员生产力指标,而且可定制团队目标,允许你的团队领导与开发人员就最需要关注的事项达成工作协议。

常见问答(FAQ):

问:什么是开发团队的绩效管理,为什么它如此重要?

答:开发团队的绩效管理是一种通过设定目标、监测进度、评估成果和提供反馈来提高团队效率和质量的过程。它能够确保团队成员与组织目标一致,激励员工不断提高,从而提升整个团队的生产力和创新能力。

问:如何设定开发团队的绩效目标?

答:设定开发团队的绩效目标应结合项目需求和公司战略,确保目标具体、可衡量、可达成、相关性强和时限明确。与团队成员共同讨论并达成一致,有助于增强目标的可接受性和执行力。

问:绩效管理中遇到困难应如何解决?

答:绩效管理中可能会遇到沟通不畅、目标不明确、评估不公正等问题。解决这些问题的关键在于建立清晰的沟通机制,设立明确和合理的目标,以及确保评估过程的公正性和透明性。

问:如何通过绩效管理提高开发团队的士气和凝聚力?

答:通过绩效管理,团队成员可以清晰了解自己的工作目标和期望,从而增强工作的方向感和归属感。同时,公正的评估和合理的激励机制可以增强团队成员的满足感和认同感,从而提高团队的士气和凝聚力。