研发效能管理中的经典度量——DORA 指标

news2024/11/23 3:35:37

有一个组织,每年都会基于对相关从业者的调研和分析,发布一份《DevOps 行业状态报告》,揭秘研发团队的 DevOps 健康状况和平均效能水平,至今已持续了 9 年。目前,全球有超过三万名专业人士参与该调研,而它也成为同类调查中规模最大、持续时间最长的项目。

它就是在 2018 年加入谷歌的 DORA(DevOps Research and Assessment),一个致力于了解如何让研发团队快速交付高质量软件的组织。经过年复一年地洞察和分析,DORA 团队提炼出四个影响软件交付效能的关键指标,即 DORA 指标。

一、什么是 DORA 指标?

DORA 指标涉及吞吐量(Throughput)和稳定性(Stability)两个方面,共包含四个关键指标,分别是部署频率、变更前置时间、服务恢复时间和变更失败率。

  • 部署频率 Deployment Frequency

部署频率是一段时间内,研发团队成功将代码部署到生产环境或将其发布给用户的频率。它衡量了研发团队的平均吞吐量和价值交付频率,体现了组织快速响应变化的能力。

  • 变更前置时间 Lead Time for Changes

变更前置时间是指从代码提交到在生产环境中成功运行所需的平均时间,反映了研发团队代码审查、测试、部署等效率和敏捷性。

  • 服务恢复时间 Time to Restore Service

服务恢复时间,也称平均恢复时间、平均修复时间(Mean Time to Recovery,即 MTTR),是生产环境中发生故障到恢复服务的平均时间,与研发团队监控、定位、识别和解决故障的能力有关。

  • 变更失败率 Change Failure Rate

变更失败率是导致生产失败(如服务降级或服务中断)并需要补救的部署的百分比,通过部署失败次数除以总部署次数计算得出。它反映了研发团队交付高质量代码和稳定服务的能力。

其中,部署频率和变更前置时间度量了研发团队的吞吐量水平,而变更失败率和服务恢复时间度量了研发团队的稳定性。

二、如何正确使用 DORA 指标?

除了四个关键指标外,DORA 还通过聚类分析等方式,为各项指标划分低、中、高和精英等不同水平的效能基准值并每年更新,以帮助更多研发团队明晰自身的效能水平和瓶颈。

例如,《2022 年 DevOps 现状报告》指出,可实现按需部署或支持每天多次部署的研发团队,其部署频率指标达到高效能团队水平。

研发团队结合 DORA 参考值,可以直观地了解自己的各项指标在行业中所处的位置,快速定位和识别问题,并制定针对性的优化提升方案,高效管理。在科技革新和技术更迭飞快的今天,产能效率和稳定性正是研发团队提升组织敏捷性,快速响应变化的成功关键。

数据出自《2022 年 DevOps 现状报告》
数据出自《2022 年 DevOps 现状报告》

三、要小心「数字管理」陷阱

DORA 指标明确了研发效能管理的关键对象和参考水平,为原本模糊的研发效能提升提供了清晰的方向。但是,对量化指标的错误理解和滥用常常导致管理动作变形,阻碍研发团队真正进步。

DORA 研究团队成员 Nathen Harvey 曾在一次活动中表示,许多团队容易掉入「数字管理」陷阱,忽略上下文(Context)。他们总是过分关注指标的具体数值,急于给研发团队贴上「能力强」或「能力差」,甚至是「淘汰」的标签,而忽略不同企业、不同团队、不同产品和服务之间都有各自的发展规律或限制,就像 B/C 端产品的部署频率不可共谈、初创公司和谷歌的服务能力也很难相提并论一样。

此外,Nathen 还强调,DORA 指标管理的最终目的是持续学习,持续改进。技术管理者应该以「实现更快、更好地交付研发价值」为目标,而不是将「达到高效能水平」立为军令状。

四、LigaAI 总结

DORA 指标考虑了吞吐量和稳定性两个维度的四个关键指标,分别是部署频率、变更前置时间、服务恢复时间和变更失败率。

研发团队应该以持续学习、持续进步为核心,正确使用 DORA 指标指导改进和优化,以实现更快、更好的价值交付。在研发管理实践中,切忌「数字管理」和动作变形。


LigaAI@CSDN还将持续分享更多研发效能管理、度量体系搭建的实践经验,以及科学的度量指标管理方法。

点击试用 LigaAI -新一代智能研发协作平台,一起变大变强!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端路由+原生JS实现SPA

●前端路由 ●路由: 就是一一对应关系的集合 ●前端路由: 就是一个 url 地址, 对应哪个组件(页面) ●前端路由的本质 ○根据地址栏变化(不重新想服务器发送请求), 去局部更新不同的页面内容, 完成前端业务场景切换 ●前端路由的思路 ○URL 地址栏中的 Hash 值发生了变化 ○前端…

[JAVA] 图书管理系统

前言 1. 基本情况 2. 基本思路 3. 类的创建 Book包底下类有实现 (1)Book类 - 图书类 (2)BookList - 书架类 operation包底下类的实现(包含7个类,一个接口) (1)IOperation接口 - 功能接口 &…

蓝精灵协会每周社区会议|延长水晶铸造期限以及游戏重启计划

蓝精灵协会每周社区会议来啦!我们已经把活动名称从「AMA」改为「市政会议厅」,因为该会议的目的是倾听社区反馈和进行讨论。当然,我们仍然非常欢迎你提出问题! 本次市政会议厅涵盖四个主题: 延长水晶铸造时间的投票结果…

scrollIntoView的基本定义、以及Vue3、vue2中使用: 点击导航滚动到对应区域。

1. 基本定义 MDN 关于scorllIntoView的介绍 Element 接口的 scrollIntoView() 方法会滚动元素的父容器,使被调用 scrollIntoView() 的元素对用户可见。 scrollIntoView()scrollIntoView(alignToTop)scrollIntoView(scrollIntoViewOptions) 1. alignToTop 可选 alig…

aws Automation

In order to save money, CloudFormation terminates the resources from the template Systems Manager will handle on-premises and EC2 instance patches Caching Amazon CloudFront 是一种内容分发网络 (CDN) 服务,旨在获得优异性能、安全性和开发人员便利性…

A股市场上股票行情数据接口有那几种?

L2行情数据接口相比Level-1接口相比,L2行情市场具有数据更完整、推送速度更及时的优势,帮助投资者及时把握盘中主要资金流,做出更准确的投资决策。简而言之,Level-2最大的作用就是提前看到主力的大单,对于追逐日线跌停…

js解析jwt中的数据,将base64转为json方式,以及需要注意的地方

jwt前端解析 ​当我们做前后端分离项目时,需要将jwt保存在前端,有时候需要将jwt中的数据解析出来,网上有很多用第三方组件的方式,但是js的原生方法就也可以解决,虽然存在兼容等问题,但是修改一下也是可用的…

“新白色战场”增长公式发布丨数说故事2023低温鲜奶洞察

重点内容抢先看 低温鲜奶成为乳制品品类新的增长点,头部品牌纷纷入局,“新白色战场”厮杀逐年激烈。 数说故事发布《2023低温鲜奶品类洞察报告》,根据近两年社媒电商数据深度分析,总结出低温鲜奶品类增长公式。 产品力 口感性价…

ElasticSearch 同步MySQL数据方案汇总

叙述 在实际项目开发中,我们经常将Mysql作为业务数据库,ES作为查询数据库,用来实现读写分离,缓解Mysql数据库的查询压力,应对海量数据的复杂查询。这其中有一个很重要的问题,就是如何实现Mysql数据库和ES的…

Matlab如何隐藏坐标轴框线,但保留刻度及刻度标签

假如我们用Matlab绘制了这样一幅堆叠图: 看起来,哪哪都好,但就是感觉两条黑色的坐标轴框线有些碍事。 于是想,该怎么去掉呢? 网上对于这一问题比较常见的解答是,将坐标轴颜色设置为背景颜色: …

2023,没有人不想做黄牛

【潮汐商业评论/原创】 “没办法啊,只能退票了。”作为奶茶十几年的老粉,好不容易从其他粉丝手里买到票的Sarah无奈道。 “刘若英,12小时内退票”、“梁静茹,24小时内退票”…… 近日“演唱会闹退票”登上了热搜。起因是5月7日&…

nuitka打包python的PyQt5成exe可执行文件

使用nuitka打包python的PyQt5 可以打包多文件,也可以打包单文件。 使用的python版本是3.8.10 1、下载gcc 方式1:可以到网站下载,点我跳转 方式2:可以直接去网盘下载,点我跳转 提取码:8888 网盘里面也有python3.8.10的安装包,下载后直接安装即可。 下载64位 win…

CoolShell 博客备份QA问答

芝兰生于深谷,不以无人而不芳; 君子修身养德,不以穷困而改志 这是左耳朵耗子-陈皓[1]的座右铭,他的中文技术博客酷壳 - CoolShell[2]可能是许多技术人员的圣地,至少对我来说是的。 coolshell_talk 他在极客时间的专栏,…

深度学习--主动学习

主动学习简介 主动学习是指对需要标记的数据进行优先排序的过程,这样可以确定哪些数据对训练监督模型产生最大的影响。主动学习是一种学习算法可以交互式查询用户(teacher 或 oracle),用真实标签标注新数据点的策略。主动学习的过程也被称为优化实验设计…

Oracle 存储过程语法

Oracle 存储过程语法 1. 创建表(测试数据准备) -- 创建用户表 create table TT_USER (USERID NUMBER(10),USERNAME VARCHAR2(255),PASSWORD VARCHAR2(255),SEX VARCHAR2(1) );INSERT INTO TT_USER VALUES (101, zhang, 111, 1); INSERT INTO TT…

Win11校园网不弹出登录页面怎么回事?

Win11校园网不弹出登录页面怎么回事?最近有用户在使用校园网的时候遇到了一些问题,访问登录网站的时候,一直无法显示登录的界面。那么遇到这个情况如何去进行解决呢?一起来看看以下的解决方法分享吧。 解决方法如下: 方…

【零基础学机器学习 2】 机器学习的实操步骤-以及在Python中实现机器学习模型

文章目录 1. 收集数据2. 准备数据3. 选择模型4. 训练模型5. 评估模型6. 参数调整7. 进行预测在Python中实现机器学习模型 机器学习是一种人工智能的分支,它使用算法和统计模型来让计算机系统自动地从数据中学习,并根据学习结果做出预测或决策。机器学习的…

智能双向嵌入式UART转CAN模块 串口 RS232 RS485 UART CAN转换器

CANUART-100TL系列智能双向UART转CAN模块具有一路TTL UART串口通道和一路CAN通道,实现CAN与串口 UART之间的双向数据智能转换。超小型灌封模块设计,方便用户集成到电路板上,快速通过MCU的UART口扩展CAN通道。 智能双向UART转CAN模块提供“…

Docker高级:Compose 容器编排

目录 一、Docker Compose 概述二、使用 Docker Compose三、常用命令四、编排微服务Ⅰ、搭建微服务Ⅱ、编写Dockerfile构建镜像Ⅲ、启动容器,测试服务Ⅳ、使用Compose编排容器 五、总结 一、Docker Compose 概述 Compose 是Docker公司推出的一个软件,可以…

跟着我学 AI丨AIGC,自媒体的核武器

自从 ChatGPT 火爆全网之后,AI 相关概念的热度就一直持续高涨不下,尤其是大众都在关注的 AI 的应用场景方向,更是疯狂。无论是 AI 圈内人还是以前对 AI 完全没有认知的人,都想借助 AI 挣上一笔。目前来说最受关注的 AI 应用场景&a…