工程生产力指标的例子包括:
- 合并频率¹:合并频率是指在一段时间内拉取或合并请求的总数。高合并频率表明软件交付管道运行良好,没有阻碍开发人员和影响生产力的 PR 审查瓶颈。¹
- 周期时间¹ ²:周期时间是指完成特定任务或一段工作所需的时间,从开始到结束。较短的周期时间意味着流程经过优化且高效,从而可以更快地发布更多功能、提高收入并提高客户保留率。¹
- 准确率¹:准确率对于准确预测项目交付非常宝贵。计划准确率衡量迭代中完成的工作量与计划工作量相比。容量准确率衡量所有已完成的(计划和未计划的)工作量与计划工作量的比率。
- 资源分配¹ ³:资源分配衡量团队正在做什么以及每个开发人员的工作量。它有助于了解资源的使用方式、是否有足够的资源来完成项目,以及最重要的项目是否拥有按时完成所需的资源。
- DORA 指标² ³:DevOps 研究与评估 (DORA) 组开发的一组四个关键指标,可全面概述软件交付性能:²
- 部署频率:成功将代码发布到生产环境的频率。
- 变更交付前置时间:代码变更从提交到在生产环境中运行所需的时间。
- 变更失败率:导致生产环境失败的部署百分比。
- 服务恢复时间:从生产环境故障中恢复所需的时间。
- 代码质量指标²:衡量代码库的质量和可维护性。
- 代码覆盖率:自动化测试覆盖的代码百分比。
- 代码复杂度:衡量代码的复杂度,这会影响可读性和可维护性。
- 代码审查指标:跟踪代码审查流程的有效性,例如审查时间、评论数量和接受率。
- 流动指标²:侧重于工作在开发流程中的流动,并找出工作停滞的区域。
- 在制品 (WIP):当前正在进行的任务数量。
- 流动效率:积极处理任务的时间与等待时间之比。
- 每周每位工程师解决的问题数量²:每周每位工程师解决的问题、错误或工单的数量。
- 每周每位工程师的评论数量²:工程师每周在代码审查期间发表的评论数量。
- 每周每位工程师的 PR 审查数量²:工程师每周审查的拉取请求 (PR) 数量。
- 缺陷率²:代码中发现的缺陷数量。
- 代码复杂度²:衡量代码的理解和维护难度。
- 平均解决时间 (MTTR)²:解决错误所需的平均时间。
- 代码改动³:代码改动是指开发者自己的代码在最初提交后不久的一段时间内被修改或删除的百分比。
- 拉取请求大小³:拉取请求大小衡量拉取请求中提交以供审核的平均代码变更量。
测量软件工程生产力对于了解团队的绩效、找出需要改进的领域以及优化开发流程至关重要。² 提高工程效率通常包括专注于优化流程、工作流程和资源分配以实现效率。²
References:
[1] Engineering Productivity: How to Measure and Improve It - https://linearb.io/blog/engineering-productivity/
[2] How to Measure Engineering Productivity (+ Key Metrics) - https://jellyfish.co/library/engineering-productivity/
[3] Engineering Productivity Metrics You Must Know - https://teamhood.com/engineering/engineering-productivity-metrics/