如果代码行数不是一个好指标,应该用什么度量研发工作?

利用单一指标度量研发产出往往不是一个好主意,例如代码行数、提交数、缺陷数等等,它们往往存在容易注水、远离实际价值交付的问题(所谓的代理指标)。所以建立一套复合的指标是比较好的做法。

建立复合指标的第一步是找到基础的指标数据,包括以下几个类别:

  • 基础的代码产出数据,这类数据可以从源代码管理协作平台中提取。在代码产出方面,代码行数的确不是一个好的指标——容易注水、稳定性差。这里极力推荐思码逸代码分析系统的代码当量,基于源代码的提交进行了代码工作量的提纯,有效克服了代码行数的缺点,能提供一个客观、稳定很多的基础指标。如果你有现有的基于代码行数的指标,可以将其替换为代码当量。

  • 基础的交付产出数据,这类数据可以从需求管理系统(如 JIRA)中提取,包括故事点数、周期时间(故事从一个状态转移到另一个状态的时间开销)、燃尽图等。

  • 基础的质量数据,这里数据从需求管理系统、测试管理系统、客户支持系统等获得,包括缺陷数量、测试覆盖率、测试成功率、缺陷逃逸数量、客户报告问题数量等。

  • 基础的部署或发布数据,可以从变更系统、CI/CD 流水线系统中获得,例如构建时长、流水线执行时长等。

  • 如果是线上系统的话,还需要从监控系统获取服务状态的数据。

接下来,在基础数据之上引入不同数据的关联。例如,将代码产出和缺陷数量关联计算出缺陷密度,将缺陷数量和客户报告的问题关联为缺陷逃逸率等等,通过这种方法来形成各种复合指标,可以涵盖以下几个类别:

  • 代码产出:人均代码当量,代码审核时间等。

  • 质量:测试通过率、缺陷密度、缺陷逃逸率、服务可用性、客户满意度等。

  • 部署(适用于 Web/SaaS):部署频率、部署前置时间、部署失败率、部署恢复时间等。

  • 研发过程:需求前置时间、需求吞吐量、平均周期时间、按时交付率等。

随后,我们可以在不同层面进行数据聚合和观测,包括团队、版本、项目、部门、地域、工作年限等等。有几点建议:

  • 研发产出的指标的作用是辅助决策,指标要稳定、可预测、可解释,要时刻关注指标的有效性,及时迭代;

  • 尽量避免对个人的评估,最小以团队为单元;

  • 勿盲目追求研发产出的增长,可持续发展最重要。

本文整理自《研发效能100问》,原作者:  管俊 戴尔中国 卓越研发集团 DevOps 架构师

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值