《软件研发效能度量规范》标准解读和应用案例
如果无法正常显示,请先停止浏览器的去广告插件。
1. 《软件研发效能度量规范》
标准解读与应用案例
任晶磊
2. 讲师简介
清华大学计算机系博士,前微软亚洲研究
院研究员,斯坦福大学、卡内基梅隆大学
访问学者。
任晶磊
《软件研发效能度量规范》
核心起草专家
思码逸 CEO
ee.msup.com.cn
在软件系统、软件工程领域从事多年前沿
研究,多篇论文发表在FSE、OSDI 等顶
级国际学术会议上;亦参与过微软下一代
服务器架构的设计与实施,同时也是一位
积极的开源贡献者。
现任思码逸CEO,通过打造先进的深度代
码分析技术和研发大数据平台,以数据驱
动软件工程,助力企业和开发团队提升研
发效能。
3. 目录
• 《软件研发效能度量规范》背景
• E 3 CI 度量框架和指标体系
• 度量案例:外包 vs. 内勤
• OpenMARI 开源指标体系和效能提升指南
• Dev Lake 开源代码大数据平台
ee.msup.com.cn
4. 标准的背景
• 由中关村智联软件服务业质量创新联盟、中国软件协会
过程改进分会发起的《软件研发效能度量规范》团体标
准完成立项,有望成为该领域国内首创、国际领先的相
关标准。
ee.msup.com.cn
5. 标准的度量框架
软件研发效能度量框架
交付价值 | Value
效能 E 3
交付速率 | Velocity
认知
Cognition
交付质量 | Quality
持续改进
Improvement
交付成本 | Cost
交付能力 | Capability
效能 = 认知+改进
ee.msup.com.cn
效率 | Efficiency
效果 | Effectiveness
卓越 | Excellence
6. 标准的度量框架
软件研发效能度量框架
交付价值 | Value
效能 E 3
交付速率 | Velocity
认知
Cognition
持续改进
Improvement
交付质量 | Quality
交付成本 | Cost
效率 | Efficiency
效果 | Effectiveness
卓越 | Excellence
交付能力 | Capability
效能 = 认知+改进
度量指标体系
ee.msup.com.cn
M-A-R-I“码睿”循环
7. 标准的指标体系
研发效能
ee.msup.com.cn
度量?
8. 标准的指标体系
度量分两种
• 物理度量:追求极致精确。
• 统计度量:接受反例,需要系统思维。
ee.msup.com.cn
9. 标准的指标体系
度量 = 指标 + 数据集
• 指标:概念的量化方法
• 数据集:对研发数据集的选取
• 举例:代码库提交次数、
个人提交次数、
周提交次数
• 统计方法
• 均值、四分位、同比、环比、离散系数……
• 数据集
• 范围:项目(事务)、团队(人员)、周期(时间)
• 状态:需求经历设计、开发、测试、发布等阶段
• 指标的衍生
• 举例:测试缺陷率 = 测试缺陷数 / 代码量
ee.msup.com.cn
10. 标准的指标体系
ee.msup.com.cn
11. 应用案例
案例背景:
• 缺少对外包单位(供应商)的效能评价标准。
• 无法综合评估外包成员的人效水平及质量表现。
ee.msup.com.cn
12. 应用案例
度量需求
• 了解外包成员的人均效能水平。
• 不同级别外包成员的真实产出与岗级位是否相符?
• 加班与产出的是否具有相关性?
• 了解外包成员质量表现,识别改进短板。
ee.msup.com.cn
13. 应用案例
代码当量
指标含义 对开发工作量的一种合理估计,通过
开发过程对抽象语法树的更改量计算。
认知域 交付速率
数据来源 代码分析系统
M – 度量 源代码编译成的抽象语法树的复杂度
A – 分析 累计当量趋势;人均当量趋势;稳定
性……
R – 回顾 需求因素;过程因素;人员因素……
I – 改进 产品排期;需求稳定性;资源调配;
人力复用;研发流程;评价标准;代
码质量……
ee.msup.com.cn
14. 应用案例
数据分析
• 内勤成员的人周生产率显著高于外包成员。
• 内勤成员较外包成员人均产出能力差异大。
(行业中位数来源:思码逸分析的74个客户)
ee.msup.com.cn
15. 应用案例
数据分析
拟合线图
周均加班时长 = 5.306 - 0.001097 周均产能
60
S
R-Sq
R-Sq(调整)
50
6.26488
1.2%
0.4%
40
30
20
10
0
0
500
1000
1500
2000
2500
3000
周均产能
• 对加班时长和代码当量进行回归分析,P=0.226,表明
无统计学意义(P<0.05,显著性明显,表明变量具有
相关性)。
ee.msup.com.cn
16. 应用案例
数据分析
• 生产率偏低的成员,重点问题率高于生产率高的成员。
ee.msup.com.cn
17. 应用案例
数据分析
• “低产高重复”区间成员占比为19%
ee.msup.com.cn
18. 应用案例
最佳实践:
• 效能分析考虑外包团队的业务差异,必要时进行分
组分析。
• 度量分析仅提供了数据层面的洞察,仍需通过人工
分析进行根因下探。
• 慎用指标,注意度量指标的反向牵引作用(古德哈
特法则)。
ee.msup.com.cn
19. MARI 效能提升方法
ee.msup.com.cn
20. MARI 效能提升方法
• 构建闭环,持续改进
ee.msup.com.cn
21. MARI 效能提升方法
需求交付周期
指标含义 需求从提出到交付的总时长,反映研
发团队的快速响应能力。
认知域 交付速率
数据来源 项目管理系统
M – 度量 统计范围内平均或 80% 分位数
A – 分析 项目间对比;变化趋势;各阶段停留,
定位瓶颈
R – 回顾 需求:需求不明确?变更频繁?颗粒
度过大?优先级没有定义清楚?分析
经验不足?
设计:……
I – 改进 邀请业务方、研发方、测试方进行需
求评审;
降低流负载;缩短构建时间;
……
ee.msup.com.cn
22. MARI 效能提升方法
测试缺陷率
指标含义 测试发现缺陷数与对应代码量或代码变更量的比值。
认知域 交付质量
数据来源 缺陷管理系统、项目管理系统、代码分析系统
M – 度量 依赖测试缺陷数和代码当量
A – 分析 按缺陷类别、级别等分类
R – 回顾 缺陷是否集中于某些模块?缺陷是否集中于某些成员?
缺陷的根因分析……
I – 改进 测试左移;测试人员参与设计评审;
开发自测规范;代码评审质量;
解决技术债,如提高复用度、降低圈复杂度、提高单元测试
覆盖度、优化模块性等;
……
ee.msup.com.cn
23. OpenMARI
• https://www.openmari.dev/
GitHub:https://github.com/merico-dev/OpenMARI
Gitee:https://gitee.com/merico-dev/OpenMARI
ee.msup.com.cn
24. Dev Lake 开源研发大数据平台
• GitHub:https://github.com/merico-dev/lake
• 目标: 支持最多工具数据源导入;最全面兼容标准的指标计算
ee.msup.com.cn
25. 欢迎关注思码逸公众号
获得研发效能最新资讯
关注msup公众号
获取更多工程效能实践案例