研发效能度量平台建设以及落地实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 研发效能度量平台建设以及落地实践
演讲人:周纪海
2. 目录海
• 自我介绍
• 持续反馈和度量驱动
• 研发效能常见度量指标
• 研发效能度量平台建设
• 实践中如何正确使用研发效能度量
• 阿里,滴滴和京东的研发效能度量实践
•
量 平台建设以及落地实践
3. 自我介绍海
英国伦敦帝国理工学院博士毕业。毕业后在多家大型银行
(巴克莱银行,汇丰银行等)从事DevOps工作。2018年
从伦敦汇丰银行总部派到广州中国汇丰软件,负责投行部
千人的DevOps和DevSecOps转型。2019年加入腾讯TEG,
2020年作为首席技术布道师加入腾讯云 CODING。2021
年作为DevSecOps负责人加入汇丰科技证券科技部门。从
2018年至今,在国内外30多次技术峰会和论坛上分享
DevOps和DevSecOps经验
4. 持续反馈和度量驱动
5. 为什么需要度量海
•
管理学之父德鲁克说:“如果你不能度量它,就无
法改变它”
• DevOps 三步法 – 持续反馈和持续改进
• 度量提供了一套可量化的,可视化的,并带有分析
结果的持续反馈机制和落地方案
•
传统度量更多是用于控制成本的人力度量,以及运
维侧的对线上产品的监控。而DevOps更多关注的是
研发过程度量
6. 度量驱动海
•
度量驱动是通过开发过程中的度量数据,认识 度量驱动的DevOps转型包括:
和理解目标及背后的原因,最终作为决策的输 ➢ 通过和迭代结合实现集中,高效的开发方式
入,影响到了技术的使用,人的文化意识的改 ➢ 通过自动化部署流水线有效提高软件交付的
变,甚至管理层的决策。
•
度量驱动的原则:
➢ 分配度量项给相关的负责人
➢ 创建分层的度量指标,相互关联,发现趋势
➢ 分析数据并利用度量做决定
效率
➢ 通过质量内建确保软件交付的质量
➢ 通过对过程数据的收集和分析,发现交付过
程中存在的问题和瓶颈
➢
通过对产品和用户的线上数据获取反馈,并
做出及时调整
7. 研发效能常见度量指标
8. 研发效能度量指标
•
DevSecOps度量不仅包含了传
统DevOps的度量指标(交付速
度和交付质量),更将应用安全
引入进来(交付安全)
•
交付安全包含了三个维度的指标
➢ 安全能力
➢ 安全效率
➢ 安全成本
9. 交付效率/速度和交付能力度量指标
•
交付效率/速度度量指标:
•
交付能力度量指标:
➢ 交付周期 ➢ 发布频率
➢ 开发周期 ➢ 发布前置时间
➢ 交付吞吐率
10. 交付质量度量指标海
•
过程质量度量指标: • 结果质量度量指标:
➢ 缺陷密度 ➢ 线上故障/事故数
➢ 代码质量问题密度 ➢ 应用Down Time
➢ 单元测试通过率 ➢ 平均恢复时长
➢ 单元测试覆盖率 ➢ 故障平均发现时长
➢ 自动化通过率 ➢ 线上缺陷密度
➢ 自动化覆盖率 ➢ 严重缺陷率 ➢ 漏测率 ➢ 发布成功率
11. 交付安全度量指标
•
应用安全工具发现的安全漏洞数
➢ 高危安全漏洞/风险数
➢ 中危安全漏洞/风险数
➢ 低危安全漏洞/风险数
• 安全工单数总数
• 发布阶段的安全评审/扫描时长
• 因为安全返工的时长(成本)
• 安全测试用例通过率
12. 研发效能度量平台建设
13. 研发效能度量平台建设架构
14. 实践中如何正确使用研发效能度量
15. 常见度量使用误区
•
管理者常常关注传统的度量指标
➢ 资源利用率(工时,打卡)
➢ 代码行数
➢ 缺陷数
➢ 需求数/故事点数量
• 以局部产出进行度量
• 团队横向对比
• 把度量作为KPI用来衡量绩效
• 未准确定义度量
• 不能恰当分析度量
• 不能周期性地重建基准
16. 如何正确使用度量 – 不能横向对比
17. 如何正确使用度量 – 需要考虑全局
•
某个单点度量指标可能会给团队引导错了方
向。因此不能聚焦于某阶段的输出指标,而
需要聚焦整体结果产出指标
•
研发效能要以端到端的流动效率(而非资源
效率)为核心。比如交付时长越短,说明速
度越快,团队的交付效率也就越高
•
在实际工作中,流动效率和资源效率需要进
行协同优化,而不是简单地只考虑其中一类
18. 如何正确使用度量 – 不能作为KPI考核
•
因为度量数据并不容易量化,而且不能直接和100%准确反
映效能对产品价值的影响,因此无法进行绝对公平地衡量。
•
如果简单地以需求交付数量作为KPI,甚至将度量作为惩罚
性依据,则团队可能为了绩效或者免受惩罚,放弃以改进为
目标,而是以数字游戏,规避或者利己地心态对待度量。
•
DevSecOps度量可以作为KPI的参考帮助管理者了解情况,
发现问题和做出判断。
19. 如何正确使用度量 – 可视化
➢
很多实践证明,度量的可视化是改变个人意识,以
及团队和公司文化的有效手段之一
➢
随着时间的推移,通过潜移默化的影响,逐渐让团
队通过度量指标关注研发效能,尤其是过程效能
➢
度量数据可以展示在人流密度大,或者比较显眼的
地方,以及大的屏幕上
➢ 管理者需要经常关注展示和自己团队相关的数据
➢ 配合一定的奖励机制,效果会更好。
20. 如何正确使用度量 – 度量数据的统计分析
•
度量数据需要进行统计和分析,发现最有价值的信
息,进而帮助团队发现深层次的问题,并为解决方
案提供实验数据,由此为依据进行改进
•
虽然我们重视量化和数字驱动,但不能过于迷信数
字,需要结合场景具体情况具体分析
21. 如何正确使用度量 – 需要配合提醒机制
•
及时的提醒比事后复盘更重要,因此相关提
醒需要配合度量一起使用
•
通过邮件,微信短信等方式定期通知并公开
个人对应的任务度量指标
•
通过不断提醒确保每个人都能遵守规范,并
且保证度量发现的问题可以及时和按时解决。
22. 如何正确使用度量 – 质量门禁
•
通过技术手段在流水线上设置质量门禁(为相关度量指标设
置用以流程通过需要满足条件),实现自动质量把关。
•
常见的质量门禁度量指标:
➢ 高危安全漏洞
➢ 严重缺陷
➢ 单元测试覆盖率/通过率
➢ 自动化测试覆盖率/通过率
➢ 严重等级的代码质量问题
➢ 代码评审
23. 阿里和滴滴的研发效能度量实践
24. 阿里巴巴度量体系 – 度量指标和目标
阿里巴巴定义 了“2-1-1”研发效能的目标。
➢ “2”是指85%以上的需求可以在2周内
交付(交付周期)
➢ 第一个“1”指的是85%以上的需求可以
在1周内开发完成(开发周期)
➢ 第二个“1”值得是1小时发布前置时间
– 提交代码后可以在1小时内成功完成发
布(发布前置时间).
25. 阿里巴巴度量体系 – 度量分析
26. 滴滴度量体系 – 度量平台建设
•
• 滴滴研发效能经历了从采用开源满足业务基础需求,到特定领域自研,最后到特定领域的平台化
• 工具层面
➢ 打通研发和非研发侧的工具,使得需求,项目和产品侧的同事感知到研发整体进度和关键指标进展
➢ 通过一站式研发工具,统一标准和规范,并将最佳实践低成本地推广到跟多业务线
数据产品
➢
目标
•
1.
难点和解决方案
数据层:数据提取功能有限,数据缺乏统一标准和缺乏关联性。
1. 数据层:自动化并准确地收集原始数据 通过一站式解决数据关联问题,并且对数据结构的梳理和标准
2. 计算层:处理和加工原始数据,形成工程 化,以及工具本身数据能力的改造
效能指标
3.
应用层:基于不同视角,个性化展示指标
2.
计算层:数据解读成本高和缺少指标体系。通过梳理指标体系
和数据表血缘图来降低数据的解读成本
27. 滴滴度量体系 – 度量指标
•
滴滴定义了三类核心度量指标:
➢
➢
➢
给业务和非工程团队参考用的交付指标
1. 交付周期:平均交付时长,最大交付时长
2. 交付质量:线上事故数,回滚数,增发、补丁数
3. 交付吞吐:单位时间交付数
体现工具本身状态的特征指标
4. 有效性:研发流程,工具能力,质量保证,度量手段
5. 可持续性:架构合理性,代码复杂度,测试覆盖率,团队构成及人数
研发过程指标
1. 需求响应能力:完成研发周期,开发周期,测试周期
2. 研发过程质量:库存缺陷数,缺陷修复时长
3. 持续集成能力:频率,平均时长
28. THANK YOU!