如何利用研发效能度量工具分析代码评审的效率、质量与瓶颈?

news2024/9/30 5:35:31

代码评审(Code Review)是保障代码质量中一个非常重要的环节,也是保证项目交付质量的关键一环。代码评审的开展对于产品质量提升、工程素养提升、研发团队的技术分享交流,或是完善团队代码规范,都能起到重要的促进作用。所以代码评审也是研发效能度量中重要的一环。同时,代码评审的度量结果也可以反映出团队在需求拆分、代码提交等方面的规范是否合理。而且对代码评审进行度量最重要的优点在于,代码评审的度量指标通常是与团队的行为直接相关的,可以直接从度量分析结果中发现团队提质增效的明确方向。


我们通过思码逸的研发效能度量分析平台DevInsight中的来了解一下应该通过哪些指标度量“代码评审”,以及通过看板如何分析其背后的效能。

代码评审度量与分析

首先,如果你还不了解思码逸DevInsight,那么我们在这里需要简单介绍一下。思码逸DevInsight支持接入代码管理、代码检测、CI/CD等 DevOps 工作流中的主流工具的研发过程数据。使用者只需要进行简单配置,就可以将工具中的数据导入思码逸DevInsight。思码逸DevInsight 系统会处理数据,并形成一系列指标以及分析看板。使用者可以根据团队情况自定义指标,并给不同业务线的管理者分配所需的效能分析看板。通过看板,不同层级的管理者们可以从项目、团队、个人的角度分析当前的研发效能,并制定后续的优化策略。

近期思码逸DevInsight 新增了度量代码评审的对应指标与看板。那么思码逸DevInsight 是如何度量代码评审的呢?

思码逸DevInsight是从项目角度对代码评审这个领域进行度量的。在开发过程中,提PR是常规操作,但要保证PR能够被及时合并,合并时间不能过长。所以第一类指标是PR合并的效率和时间,包括 PR 的数量、合并时长等;第二类指标是代码评审的质量和过程,例如每次 PR 的大小,这部分我们可以通过代码当量来进行度量,会比代码行数更科学;第三类指标是需要度量代码评审中是否存在瓶颈,是否存在代码评审的积压。综上来讲,我们可以大致总结为以下指标:

1. 项目中开发者提交、处理代码变更的速度如何?(速率、吞吐率类指标)

  • PR 的创建数量

  • PR 的完成数量

  • PR 的合并时长

2. 项目代码评审的质量如何?

  • PR 的大小

  • PR 合并/拒绝 占比

  • 已合并但未评审的 PR 数(占比)

3. 代码评审的流程中是否存在瓶颈?

  • 未完成 PR 数

  • PR 的合并时长

    • 编码时长

    • 响应时长

    • 评审时长

  • 总流转时长(需要支持 DORA)

通过这些指标,我们不仅可以分析团队在代码评审环节中的表现,还可以通过这些数据看出团队在代码评审之前的其他研发环节中是否有需要改进的地方。例如,当我们发现有较多的 PR 堆积,等待评审,那可能说明研发团队在最初拆分需求的时候,需求颗粒度拆分得比较大,或每个PR 提交的长度较大(具体观察代码当量或行数指标)。团队就需要优化需求颗粒度的拆分,或规范提交 PR 的长度。另外,很多大公司都比较看中代码评审环节,那么团队可以利用“评审深度”指标或“已合并但未评审的 PR 数”指标来观察团队对代码审核的认真程度,从而保证项目质量。

如果我们基于上述几类指标进行度量,那么我们在思码逸DevInsight 中会得到这样的看板(如下图所示)。我们在「吞吐率」的看板中,可以看到每个步长新建、合并、拒绝合并和未处理的 PR 数量;在 「PR 合入时长」看板中分析目前平均每个步长 PR 合并的数量,了解 PR 合并的效率。

同时,思码逸DevInsight 还提供了看板来度量分析合并/拒绝的 PR 占比、已合并但未评审的 PR 数量与占比,以及评审深度。在「已合并但未评审的 PR」看板中,如果发现有一个步长出现了大量该类型的 PR,可以点击进去,进行下钻分析,查看具体有哪些 PR,避免出现影响项目质量的风险。

在后续的版本中,DevInsight 还将可以从团队、个人两个视角进行度量,包含 PR 的通过率、PR 的质量、团队中不同角色对代码评审的响应速度、评审深度等指标。以上例举的都是基础指标,我们支持不同规模、不同业务类型的团队,根据自身情况,结合更多指标进行更深度的度量与分析。大家如果对该功能感兴趣,可以申请试用思码逸DevInsight,在产品中自行尝试,也可以在官网联系我们官方咨询师进行演示和讲解。

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

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

相关文章

​【EI会议征稿通知】第三届智能系统、通信与计算机网络国际学术会议(ISCCN 2024)

第三届智能系统、通信与计算机网络国际学术会议(ISCCN 2024) 2024 3rd International Conference on Intelligent Systems, Communications and Computer Networks 第三届智能系统、通信与计算机网络国际学术会议(ISCCN 2024)将…

期货股市联动(期股联动助推资本市场上扬)

期股联动——期货股市助推资本市场上扬 随着我国资本市场的不断发展,期货和股票这两个市场也在逐渐紧密地联系起来。期货和股票的相互作用是一种“期股联动”,它能够促进资本市场的上扬。 期货与股票市场 期货市场是一种标准化的场外交易市场&#xf…

OpenAI发布AGI安全风险框架!董事会可随时叫停GPT-5等模型发布,奥特曼也得乖乖听话

OpenAI 再次强调模型安全性!AGI 安全团队 Preparedness 发布模型安全评估与监控框架! 这两天关注 AI 圈新闻的小伙伴们可能也有发现,近期的 OpenAI 可谓进行了一系列动作反复强调模型的“安全性”。 前有 OpenAI 安全系统(Safety…

HarmonyOS(十五)——状态管理之@Prop装饰器(父子单向同步)

上一篇文章我们认识了状态管理的State装饰器(组件内状态),接下来我们学习另外一个状态管理装饰器Prop装饰器。 Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的,但是变化不会同步回其父组件。 说明&#…

可视化数据监控大屏网页界面,数据大屏模版PS资料(免费UI源文件)

数据大屏模板在大数据领域被广泛应用,其优势在于能够将复杂的数据通过图形、图表等方式呈现出来,使数据更易于理解。数据大屏模板可以用来进行数据分析。通过对数据的比较、趋势分析、异常检测等,可以发现数据中的规律和问题,为决…

SQL进阶理论篇(十):数据库中的锁

文章目录 简介按照锁的粒度进行划分从数据库管理的角度进行划分从程序员的角度进行划分为什么共享锁会发生死锁?参考文献 简介 索引和锁,是数据库中的两个核心知识点。 索引的相关知识点,在之前的几章里我们已经介绍的差不多了。接下来我们…

CEC2013(python):五种算法(HHO、WOA、GWO、DBO、PSO)求解CEC2013(python代码)

一、五种算法简介 1、哈里斯鹰优化算法HHO 2、鲸鱼优化算法WOA 3、灰狼优化算法GWO 4、蜣螂优化算法DBO 5、粒子群优化算法PSO 二、5种算法求解CEC2013 (1)CEC2013简介 参考文献: [1] Liang J J , Qu B Y , Suganthan P N , et al. P…

安卓开发学习---kotlin版---笔记(三)

网络 安卓主页的网络框架&#xff1a;OkHttp 在OkHttp的基础上进行封装的&#xff1a;Retrofit框架&#xff0c;更常使用 OkHttp学习 在使用网络请求的时候&#xff0c;先添加网络访问权限&#xff1a; <uses-permission android:name"android.permission.INTERNET&…

【数据结构】栈的使用|模拟实现|应用|栈与虚拟机栈和栈帧的区别

目录 一、栈(Stack) 1.1 概念 1.2 栈的使用 1.3 栈的模拟实现 1.4 栈的应用场景 1. 改变元素的序列 2. 将递归转化为循环 3. 括号匹配 4. 逆波兰表达式求值 5. 出栈入栈次序匹配 6. 最小栈 1.5 概念区分 一、栈(Stack) 1.1 概念 栈&#xff1a;一种特殊的线性表&…

数据库——水果商店进阶

智能2112杨阳 一、目的与要求&#xff1a; 综合运用SQL语言相关知识如变量、游标、函数、触发器等解决实际问题。 二、内容&#xff1a; 设计并完成以下实验&#xff0c;要求附上源码&#xff08;非截图&#xff09;&#xff0c;测试效果截图 在订单详情表orderitems插入新…

【openGauss/MogDB列存表的delta表测试】

列存储格式是OLAP类数据库系统最常用的数据格式&#xff0c;适合复杂查询、范围统计类查询的在线分析型处理系统。cstore列存储的主体数据文件以CU为I/O单元&#xff0c;只支持追加写操作&#xff0c;因此cstore只有读共享缓冲区。CU间和CU内的可见性由对应的CUDESE表&#xff…

高项-【整合管理】

8.1管理基础 项目整合管理由项目经理负责&#xff0c;责任不能被授权和转移。对整个项目承担最终责任。执行项目整合是担任双重角色&#xff1a; 组织层面&#xff0c;与项目发起人携手合作&#xff0c;了解战略目标&#xff0c;确保项目目标和成果与项目组合、项目集一集业务…

自助借还办证一体机软件需求说明书

1. 简介 1.1 项目概括 本项目主要实现读者自助办证、借书、还书、查询、续借的功能&#xff0c;减轻管理员的工作量&#xff0c;提升读者的借阅体验&#xff0c;提高了图书的借阅量与流通率&#xff0c;是图书馆智能化、无人化建设的重要步骤。 1.2 项目背景 ​ 目前各大图…

【ArkTS】如何修改应用的首页

之前看到一种说法&#xff0c;说是应用首页是 entry > src > main > resources > base > profile > main_pages.json 中src配置中数组第一个路径元素。这种说法是不对的&#xff01;&#xff01;&#xff01; 如果需要修改应用加载时的首页&#xff0c;需要…

软件测试面试题之测试基础,轻松面对面试,一篇足矣

软件测试的流程是什么&#xff1f;&#xff08;测试流程&#xff09; &#xff08;1&#xff09;需求调查&#xff1a;全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人…

oracle与gbase8s迁移数据类型对照

声明&#xff1a;以下为笔者阅读gbase官方文档和oracle官方文档的理解&#xff0c;如有错误&#xff0c;敬请指正。oracle与gbase8s迁移数据类型对照及举例说明 最终结论&#xff1a;oracle与gbase8s数据类型对应关系关于单精度与双精度的区别关于定点与浮点定义的区别精度的定…

linux之Samba服务器

环境&#xff1a;虚拟机CENTOS 7和 测试机相通 一、Samba服务器_光盘共享&#xff08;匿名访问&#xff09; 1.在虚拟机CENTOS 7安装smb服务&#xff0c;并在防火墙上允许samba流量通过 2. 挂载光盘 3.修改smb.conf配置文件&#xff0c;实现光盘匿名共享 4. 启动smb服务 5.在…

Bezier 曲线 2D

Bezier 曲线于 1962 年由法国雪铁龙汽车公司的工程师 Bezier 所发表&#xff0c;主要应用于汽车的外形设计。虽然 Bezier 曲线早在 1959 年便由法国雷诺汽车公司的 De Casteljau 运用递推算法开发成功&#xff0c;但是 Bezier 却给出了曲线的详细的曲线计算公式。所以&#xff…

游戏、算法竞赛与退役(流水账版)

写在前面 不出意外的话&#xff0c;这东西本该咕到翻年之后再发的&#xff0c;但好像催稿催的有点厉害&#xff0c;于是就找个机会把他写了&#xff08;笑&#xff09; 最初是只想写个算法竞赛退役记的&#xff0c;后面发觉写起来就有点收不住&#xff0c;算法竞赛牵扯到太多…