如何科学管理技术团队的研发交付速率?

news2025/4/7 6:24:46

每当提及「研发效能」,我们都在谈论什么?

研发效能管理要在保证质量的前提下,思考如何更快地向客户交付价值。在管理实践中,效能度量涉及三大维度:交付速率交付质量交付价值

技术团队对内如何优化开发流程,以提升交付速率和质量?对外如何围绕价值交付,与产品、业务侧同事开展紧密高效的研发协作?在众多亟需攻破的效能难题中,Cycle Time 都是极为关键的速率管理发力点。

01 是什么 Cycle Time?

Cycle Time 原是精益生产的专业术语,描述了某个工序制造一单位产品或某过程完成一个工作循环所需的平均完整时间,可以确定机器或工序的生产能力和效率。

在软件研发中,Cycle Time 是指技术团队从头到尾完成一单位研发工作平均需要的时间,即研发工作从进入开发到发布上线所经历的平均时间

图片

02 为什么应该关注 Cycle Time?

Cycle Time 是反映技术团队工作速率的结果度量指标,可以帮助团队识别障碍、有的放矢地优化改进并实现更快更好的价值交付。

  • 更快地响应。 缩短 Cycle Time 的本质是更快地向客户交付价值,响应变化。
  • 识别障碍和待改进空间。 跟踪对比多项目或跨周期的 Cycle Time 有助于识别和定位效能瓶颈,便于及时调整优化。
  • 及时反馈,避免浪费。 分析优化前后的 Cycle Time 可以快速掌握优化效果,辅助进一步决策,避免长时间的空耗和等待。
  • 提供风险预警支撑。 以历史和平均 Cycle Time 为效率基准,在过程管理中为风险预警和进度管理提供数据辅助。

总的来说,研发团队应该持续跟踪 Cycle Time,灵敏地识别开发过程中的效能瓶颈,并通过建立标准、流程优化、任务拆分等持续改进,增强组织敏捷性,提高开发速率,快速交付价值。

03 如何计算 Cycle Time?

前面说到,Cycle Time 表示一单位研发工作经历从「进入开发」到「发布上线」平均需要的完整时间。

为了便于计算,此处定义一单位研发工作为「Git 中的一个工程任务」。在管理实践中,一单位研发工作也可以是一个故事点数、一个用户故事等等。

图片

技术团队需要提前约定开发流程中每个环节「工作开始」和「工作完成」的标准,并确保所有人都为此达成共识。

  1. 编码时间:DoR 是技术团队需求准入的标准,因此编码时间是「需求符合 DoR 要求,抵达技术团队」到「完成编码,发起 Pull Request 请求」的平均时间。
  2. 拾取时间:从「发起合并请求」到「代码审查开始」的等待时间为代码拾取时间。拾取时间越短,说明跨职能的技术团队协作越紧密,审查过程越健康。
  3. 审查时间:一般将「首条评论产生的时间」视作代码审查的起点,而「分支确认合并」则是代码审查结束的标志。
  4. 部署时间:常以「分支确认合并」为始,以「新代码成功同步到生产环境」为终。

基于清晰统一的节点标准,技术团队就可以计算各个环节的平均工作周期,并通过平均值加总得到 Git 工程任务的 Cycle Time。

同时,结合不同环节的耗时分布和交付数量,技术团队还可以制定流程规范和优化方案,将效能瓶颈逐个击破。

图片

04 如何缩短编码时间,提高效率?

技术团队的编码周期过长,可能有以下原因:

  • 需求很复杂:功能复杂、耦合度高、颗粒度大的研发任务通常需要花费更多时间。
  • 需求不明确:用户调研或需求分析不到位、产品频繁变更都会拉高沟通成本,多次返工和变更也会影响代码质量和速率。
  • 需求太难了:开发人员缺乏项目必备的专业知识,边学边做,或者突现计划外的技术难题都会制约开发效率。
  • 流程繁琐混乱:代码提测路径长、被频繁打断而无法专注于代码实现,都是工作流程不优导致的效能瓶颈。
  • 重复的机械劳动:代码手动 Commit、人为的消息通知和任务指派也是对技术团队精力和时间的极大浪费。

因此,提高技术团队的编码效率可以从流程规范和优化、自动化工具的投入,和能力提升与培养三个角度入手。

1. 建立流程标准和协作规范,把控准入需求

开展工作的前提是保证技术团队一直在交付最有价值的事情,因此可以采用敏捷开发方法,对需求进行价值排序,确定优先顺序。

第二,同产品团队一起建立协作流程规范,并明确需求准入的标准(DoR),说明含需求粒度、任务拆分和分解、相关的上下文和说明文件等在内的要求。通过加强起点的把控,提升开发速率。

2. 构建内部知识库,将繁复的操作和流程自动化

合理利用优质开源项目、时兴的效率工具与自动化插件,加快代码编写的速度并提高质量,以减轻语法检查、手动提交等事务性工作的压力。

同时,鼓励开发人员积极沟通,定期举办内部知识分享会,促进相互学习;建立代码知识库,收纳相关代码以供检索和复用,避免低效和浪费。

3. 规范开发标准和良好习惯,持续学习

由上至下地推行统一的代码规范,鼓励开发人员遵循最佳实践,例如编写干净、文档齐全的代码和使用一致的编码约定,减少调试和故障排除的时间。

定期组织培训或展开指导,持续了解新技术,学习新知识,尝试新工具。不断精进专业实力的同时,主动扩展知识带宽。

LigaAI 总结一下

Cycle Time 是衡量技术团队开发速率和交付能力的重要指标。在相同的交付质量和价值度量的前提下,更短的 Cycle Time 意味着研发团队能更快地响应市场和需求的变化,更快地向用户交付价值。

Cycle Time 表示研发工作从符合 DoR 并进入技术团队起,到发布上线所需的平均完成时间,与编码、拾取、评审和部署的周期皆有联系。其中,控制好需求准入标准,合理利用新兴技术和项目都有助于缩短编码周期,加快开发速率。


关注研发效能,专注科学管理。LigaAI 将持续分享更多研发效能度量体系的搭建经验,以及度量指标管理方法等干货内容,助力研发团队击碎效能瓶颈。

请持续关注 LigaAI@CSDN 帐号,获取更多资讯。

也期待您点击 LigaAI -新一代智能研发协作平台,在线申请体验我们的产品,与 LigaAI 一起做大做强💪

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

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

相关文章

STM32实战项目-基本定时器

前言: 通过基本定时器TIM6,让三个LED灯每间隔1s闪烁一次。 目录 1.基本定时器参数配置 1.1框图分析 1.2参数配置 2.软件程序 2.1整体框架 2.2定时器结构体 2.3定时器回调函数 1.基本定时器参数配置 1.1框图分析 TIM6作为基本定时器 它是挂载…

【Linux】-- 线程池

目录 铺垫 内存 线程的角度 线程池 基本代码结构 对于线程池的生产消费的完善 初步实现线程池生产消费 结合日志完善线程池 铺垫 内存 (以STL处理方式,引入提供效率的一种思想) 通过进行C语言与C语言的学习中,平时我们使…

C语言 深度剖析数据在内存中的存储(2)

本次博客是继上次博客,继续向下剖析数据在内存当中的存储。练习浮点型在内存中的存储练习代码1:int main() {char a -1;signed char b-1;unsigned char c-1;printf("a%d,b%d,c%d",a,b,c);return 0; }1.在本题中首先我们要知道的是%d打印的是有…

【数据结构之树】——什么是树,树的特点,树的相关概念和表示方法以及在实际的应用。

文章目录一、1.树是什么?2.树的特点二、树的相关概念三、树的表示方法1.常规方法表示树2.使用左孩子右兄弟表示法3. 使用顺序表来存储父亲节点的下标三、树在实际的应用总结一、1.树是什么? 树是一种非线性的数据结构,它是由n(n&…

MatCap模拟光照效果实现

大家好,我是阿赵 之前介绍过各种光照模型的实现方法。那些光照模型的实现虽然有算法上的不同,但基本上都是灯光方向和法线方向的计算得出的明暗结果。 下面介绍一种叫做MatCap的模拟光照效果,这种方式计算非常简单,脱离灯光的计算…

javaWeb核心05-FilterListenerAjax(Axios)json

文章目录Filter&Listener&Ajax1,Filter1.1 Filter概述1.2 Filter快速入门1.2.1 开发步骤1.2.2 代码演示1.3 Filter执行流程1.4 Filter拦截路径配置1.5 过滤器链1.5.1 概述1.5.2 代码演示1.5.3 问题1.6 案例1.6.1 需求1.6.2 分析1.6.3 代码实现1.6.3.1 创建F…

Linux 安装 nginx 详细教程

文章目录Linux 安装 nginx 详细步骤①安装依赖包②下载并解压安装包③安装 nginx④启动 nginx 服务⑤配置 nginx.conf提示:以下是本篇文章正文内容,Linux 系列学习将会持续更新 Linux 安装 nginx 详细步骤 ①安装依赖包 下载模块依赖性 Nginx 需要依赖…

resp无法连接Redis服务的解决方法

在保证Windows主机和Linux虚拟机能够相互ping通的前提下,resp仍无法连接到Linux上的redis服务,那么需要考虑以下原因: Linux防火墙问题,Linux未关闭防火墙,或防火墙未放通6379/tcp端口;redis配置问题&#…

Project ERROR: Unknown module(s) in QT: webenginewidgets

Qt系列文章目录 文章目录Qt系列文章目录前言一、问题定位二、解决方法1.引入WebEngine库2.重新打开工程3. 解决办法:运行结果前言 最近项目中需要用到:Qt中使用cesium三维引擎库,涉及到Qt和和JavaScript之间通信,工程源码报错&am…

202109-3 CCF 脉冲神经网络 66分题解 + 解题思路 + 解题过程

解题思路 根据题意&#xff0c;脉冲源的阈值大于随机数时&#xff0c;会向其所有出点发送脉冲 神经元当v>30时&#xff0c;会向其所有出点发送脉冲&#xff0c;unordered_map <int, vector > ne; //存储神经元/脉冲源的所有出点集合vector 所有脉冲会有一定的延迟&am…

opencv-图像操作

访问和修改像素值 我们先加载一个彩色图像&#xff1a; import cv2img cv2.imread(b.png) print(img)########### 打印结果 ########### [[[243 243 243][243 243 243][243 243 243]...[243 243 243][243 243 243][243 243 243]][[243 243 243][243 243 243][243 243 243].…

每天五分钟机器学习:你理解贝叶斯公式吗?

本文重点 贝叶斯算法是机器学习算法中非常经典的算法,也是非常古老的一个算法,但是它至今仍然发挥着重大的作用,本节课程及其以后的专栏将会对贝叶斯算法来做一个简单的介绍。 贝叶斯公式 贝叶斯公式是由联合概率推导而来 其中p(Y|X)称为后验概率,P(Y)称为先验概率…

mysql navicat忘记密码

mysql忘记密码是常用的事情&#xff0c;那么如何解决它呢&#xff1f;1、首先将MySQL的服务关闭&#xff0c;两种方法&#xff1a;&#xff08;1&#xff09;打开命令行cmd输入net stop mysql命令即可关闭MySQL服务。&#xff08;2&#xff09;打开任务管理器&#xff0c;找到服…

【观察】亚信科技:“飞轮效应”背后的数智化创新“延长线”

著名管理学家吉姆柯林斯在《从优秀到卓越》一书中提出“飞轮效应”&#xff0c;它指的是为了使静止的飞轮转动起来&#xff0c;一开始必须使很大的力气&#xff0c;每转一圈都很费力&#xff0c;但达到某一临界点后&#xff0c;飞轮的重力和冲力就会成为推动力的一部分&#xf…

海思ubootsd卡协议

在start_armboot()函数中调用mmc_initialize(0)初始化mmc;最终调用到int hi_mci_initialize(unsigned int dev_num)函数;内容如下:static int hi_mci_initialize(unsigned int dev_num) {struct mmc *mmc NULL;static struct himci_host *host;unsigned int regval;unsigned l…

磨皮插件portraiture2023最新中文版

Portraiture滤镜是一款 Photoshop&#xff0c;Lightroom 和 Aperture 插件&#xff0c;DobeLighttroom 的 Portraiture 消除了选择性掩蔽和逐像素处理的繁琐的手工劳动&#xff0c;以帮助您在肖像修整方面取得卓越的效果。它是一个强大的&#xff0c;但用户友好的插件照明.这是…

深度解析首个Layer3 链 Nautilus Chain,有何优势?

以流支付为主要概念的Zebec生态&#xff0c;正在推动流支付这种新兴的支付方式向更远的方向发展&#xff0c;该生态最初以Zebec Protocol的形态发展&#xff0c;并从初期的Solana进一步拓展至BNB Chian以及Near上。与此同时&#xff0c;Zebec生态也在积极的寻求从协议形态向公链…

观察UE4里“在外部存储Actor”功能的基础行为

目标 一般情况下&#xff0c;Actor保存于关卡文件中。 但是&#xff0c;如果将Actor的 packaging mode 设置为 External&#xff1a; 则此Actor就会存储在另一个文件而非关卡文件中。 本篇目标是&#xff1a; 观察此功能的基础行为观察外部文件的路径名规则 “在外部存储A…

Nacos安装指南,Windows安装

Nacos安装指南 1.Windows安装 1.1.下载安装包 在Nacos的GitHub页面&#xff0c;提供有下载链接&#xff0c;可以下载编译好的Nacos服务端或者源代码&#xff1a; GitHub主页&#xff1a;https://github.com/alibaba/nacos GitHub的Release下载页&#xff1a;https://githu…

一文打通Sleuth+Zipkin 服务链路追踪

1、为什么用 微服务架构是一个分布式架构&#xff0c;它按业务划分服务单元&#xff0c;一个分布式系统往往有很多个服务单元。由于服务单元数量众多&#xff0c;业务的复杂性&#xff0c;如果出现了错误和异常&#xff0c;很难去定位。主要体现在&#xff0c;一个请求可能需要…