当前位置: 首页 > news >正文

怎样利用 AI 大模型,辅助研发管理与效能提升?

AI 大模型已经逐渐渗透到各行各业的应用场景中,在软件研发领域也不例外。在软件研发领域,从需求分析到软件设计,从软件开发到测试,以及最后发布上线,AI 在各个环节都发挥着重要作用。10 月 21 日,思码逸首席效能专家魏俊华在 GTLC 大会上以《大模型下的研发效能提升》为主题,围绕 AI 在研发管理中的价值、AI 在研发效能提升中的实践、AI 对研发效能管理的影响三个关键点进行了演讲,详细分享思码逸对于 AI 对软件研发管理与效能提升方面的见解以及实践。

01  AI在研发管理中的价值

在软件研发领域,AI 已经渗透到各个环节的工作中。例如在需求分析环节,我们可以通过 AI 编写用户故事;在软件设计环节,我们可以通过 AI 生成数据模型;在软件开发环节,我们可以通过 AI 自动生成代码;在测试环节,我们可以通过 AI 进行自动化测试;在 CI/CD 环节,我们可以通过 AI 快速实现部署。这说明,AI 在研发管理过程中,同样可以发挥重要作用。

研发管理者通常在研发管理过程中会遇到以下几种问题:研发成本高、交付周期长、软件质量低、团队管理难。而目前业界的一些 AI 工具,可以针对性地解决这些问题。例如通过 AI 工具辅助研发人员提升技能;也可以通过 AI 工具来提升开发效率;或是利用 AI工具辅助发现软件质量问题等。

图片

那么我们应该优先选择在哪个环节应用 AI?如何在应用 AI 后快速看到改进效果?思码逸经过多年的客户实践,总结出了效能诊断、问题定位、AI 辅助、效果度量这样一套闭环流程:通过思码逸自研的研发效能平台,对企业的效能进行摸底,定位问题与短板,针对性通过 AI 进行辅助改进,然后根据核心指标的变化来度量改进效果,最后经过这样的多轮迭代,达到预期目标。

02  AI在研发效能提升中的实践

分析研发效能的方法分为三步:

1、掌握研发效能全局,例如当前研发效能处于什么样的水平?研发的投入产出比如何?项目整体质量表现怎么样?

2、定位影响研发效能的关键问题,例如哪些关键因素影响了研发产能?交付进度顺利吗?是否有阻塞环节?人力负载均衡吗?项目中是否存在关键人力依赖? 

3、定向改进,例如有问题的具体事务、任务在哪里?是否在回顾和改进?质量薄弱环节在哪里?哪些代码问题需要优先被修复?工程师的个人画像是如何的?哪些技能需要定向提升?

我们可以基于 GQM 框架更体系化地分析研发效能:首先设定目标,并将目标拆解为关键问题,然后通过若干指标来度量该问题。然后基于由思码逸总结提出的 MARI 方法(www.openmari.dev/),从度量、分析、回顾到改进,小步迭代进行改进。

图片

思码逸DevInsight研发效能度量分析平台的架构如下图所示。研发管理者可通过定期的分析报告来管理研发效能,从趋势分布对比的角度来分析研发效率和质量等指标,通过下钻分析来挖掘问题根源,通过行业基线来了解团队在行业中所处水平,还可以利用平台中的专家系统来辅助发现问题,制定有效的改进决策。

及时且准确的数据报告,需要具有坚实的数据支撑。思码逸DevInsight 支持通过多种手段来采集数据,例如通过 API 获取 JIRA、TAPD 等工具中的数据,或通过 CSV 的格式将数据导入思码逸DevInsight 平台。在数据导入后,平台会基于数据形成效率、质量、迭代等不同数据看板。平台内置了多个面向不同目标的指标集,例如效率、质量等。基于这些指标集,平台可形成面向不同管理者的报告,既可以满足研发管理者向上汇报,又可以满足管理者向下管理。

在研发效能分析的过程中,通常研发管理者会面对几个问题:

1、数据治理

2、指标建设

3、数据分析

思码逸 DevInsight 针对以上这些问题都提供了针对性的解决方案与能力。

图片

针对数据治理难题,思码逸提供数据接入与治理能力,只需要简单配置,即可实现不同数据源的快速接入,为指标建设提供可靠的数据基础。

同时,思码逸平台建立了科学的研发效能指标体系,整合了思码逸多年的客户服务与实践经验,预置了 100 多种被业界高频使用的指标。基于客户实际情况,通过 GQM 方法,我们为企业的不同管理角色提供有针对性的数据报表。更重要的是,思码逸DevInsight 通过自研的深度代码分析技术,科学地度量研发代码量,提供创新的度量指标“代码当量”。

图片

在企业中,不同研发管理角色的关注点不同,需要不同的指标。例如研发高管希望了解团队的交付效率,我们可以将它拆解为需求吞吐量、需求交付周期、需求颗粒度三个北极星指标,通过它们来衡量团队的交付效率。通过这种 GQM 方法的拆解,我们就可以得出一个与研发管理角色对应的北极星指标集,如下图所示。

图片

在度量的过程中,企业都需要度量研发的工作量。许多企业会使用代码行数、需求个数、工时来定义工作量,但是这些指标会受到代码风格,以及员工是否主动填报等诸多因素的影响,导致度量不准确。基于此,思码逸通过创新的代码分析技术,提供了代码当量指标,它可以更科学、更客观地计算出研发工作量(点击这里了解代码当量)。

在公司中,从高层、中层到开发者,都可以通过报表的分析,来发现目前研发效能的短板。研发管理者可以基于对报表的分析来制定改进策略。同时,平台还会提供修复工作量、重点函数、内建质量、缺陷密度,来帮助管理者分析当前的项目质量水平。在调查出项目的短板之后,我们可以针对性地去进行改进,甚至通过人工智能来帮助我们解决这些问题。

图片

图片

在 ChatGPT 出现之后,它被快速地应用于各行各业的实际场景中。在研发管理方面,我们可以让 ChatGPT 切分需求,也可以让它提供针对性的技术解决方案,甚至让它为我们编写代码和修改 bug。那么人 AI 在研发效能领域扮演了什么样的角色呢?

图片

在结构化分析领域,AI 可以生成和展示图表,针对异常数据进行下钻,有助于管理者快速发现和定位问题。在思码逸 DevInsight 平台,我们提供了专家系统,并支持设置企业基线、行业基线,让企业可以更客观地了解研发效能现状。

我们作为个人,在ChatGPT服务中扮演的角色有三类,如下图所示,分别是任务组织者、过程指导者、结果验证者。

图片

思码逸基于 ChatGPT 开发了一款可以辅助研发效能提升的插件——DevChat。DevChat 支持以下能力:

1、通过对话,辅助技术选型

2、搭建脚手架或可运行的初始代码

3、给 DevChat 提供错误提示,让它帮助 debug

4、提供上下文,生成代码

5、IDE 无法支持又不涉及复杂架构设计的代码重构

6、提供目标源代码(和现有测试用例)),生成新的测试用例

7、写提交信息 (commit message)或者发布说明 (release note)

8、理解指定范围内的已有代码,给出具有一定深度的解释和证据

我们举一个实际的客户案例。我们有一个制造业的客户,随着企业规模扩张,软件系统和组织结构都变得更加复杂。研发交付开始吃力,每个研发团队都表示缺人缺资源,但有时加了人也不见提速。所以,他们需要通过建设研发效能度量,保证效能现状看得透,瓶颈风险说得清,在团队扩张的同时,保证研发效率的超线性增长。在经过与他们沟通和效能的诊断之后,我们针对他们遇到的问题提供了如下解决方案。

图片

03  AI对研发效能管理的影响

随着引入人工智能,它压缩了基于人的技能和经验去做事的链路,很多知识都可以通过人工智能获取,相当于“专家”附体。在这种场景下,我们如何评价我们的研发效率、如何识别关键人才、如何与 AI和谐共存,成为每个研发管理者都需要考虑的问题。每个管理者都应基于自身所面对的业务需求、研发管径、团队结构进行思考,从研发流程、岗位职责、评估体系等角度给出自己的答案。

我们认为软件工程的本质并不因生成式AI而改变,所以不影响度量的根本逻辑和方法。包括代码产出,因为我们实践了这么多,还没看到AI能独立地生成工程级代码,都是要人去把控,AI依然是人的附庸。今天ChatGPT引发的第一轮热潮已经过去了,人们也越来越理性,我们技术管理者应该抱有审慎的态度,长远的眼光,扎实做好工具打造、数据建设(基础),以人为本(理念),才能发挥AI最大的应用价值。

在 AI 赋能研发效能的背景下,我们应该怎么做?首先我们先对企业的效能进行诊断,再进行针对性的提升;其次我们要认清 AI,它是一种工具,我们要善加利用,而不是为其所困;第三,无论是开发者还是管理者,既要利用 AI,又要强化自身技能,不要依赖AI,这样才能让我们在竞争激烈的市场上有一席之地。

图片

相关文章:

怎样利用 AI 大模型,辅助研发管理与效能提升?

AI 大模型已经逐渐渗透到各行各业的应用场景中,在软件研发领域也不例外。在软件研发领域,从需求分析到软件设计,从软件开发到测试,以及最后发布上线,AI 在各个环节都发挥着重要作用。10 月 21 日,思码逸首席…...

聊天室的创建

要创建一个聊天室,您需要: 确定聊天室的主题和目的。 选择一个适当的聊天室平台或应用程序,如Discord、Slack、Zoom等。 注册一个账户并创建一个聊天室。 添加您的朋友或家人或需要的人到聊天室中。 设置聊天室的规则和管理机制&#xff…...

大数据信息抽取

随着互联网的广泛应用和技术的不断进步,海量数据被产生、存储和共享。这些数据中包含着宝贵的的信息和知识,二大数据信息抽取是正是为了把这些数据中关键、有用的信息提取出来。 大数据信息抽取就是指通过自动化的方式,从大数据中提取有异议…...

驱动开发11-1 编写IIC驱动-读取温湿度数据

头文件 head.h #ifndef __HEAD_H__ #define __HEAD_H__ #define GET_HUM _IOR(m, 1, int) #define GET_TEM _IOR(m, 0, int) #endif 应用程序 si7006.c #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #inc…...

上海中优城市万豪酒店推出全新国际IP童趣主题房,独特住宿体验中国首秀

2023年10月30日&#xff0c;中国上海 – 近日&#xff0c;上海中优城市万豪酒店正式推出由全球品牌娱乐公司孩之宝官方授权打造的小马宝莉和变形金刚主题客房&#xff0c;以创意客房、新奇体验和丰富礼遇&#xff0c;为童游家庭或年轻的动漫迷们开启沉浸式入住之旅&#xff0c;…...

zsh和bash之间互相切换

zsh->bash exec bashbash->zsh exec zsh...

Java - window系统快捷键大全

Ctrl 快捷键 介绍 Ctrl F 在当前文件进行文本查找 &#xff08;必备&#xff09; Ctrl R 在当前文件进行文本替换 &#xff08;必备&#xff09; Ctrl Z 撤销 &#xff08;必备&#xff09; Ctrl Y 删除光标所在行 或 删除选中的行 &#xff08;必备&#xff09; Ctrl X …...

深入理解数据结构(1)—用链表实现栈

栈是一种数据结构&#xff0c;链表也是一种数据结构。它们都是由基础的语法实现的。 如果一个数据结构可以用另外的数据结构来实现&#xff0c;那么可以有力的证明——“数据结构是一种思想”&#xff0c;是一种讲语法组合起来实现某种功能的手段 一、栈的特点——要实现哪些功…...

Jtti:debian安装firewalld错误怎么办

如果在Debian系统上安装Firewalld时出现错误&#xff0c;可以尝试以下步骤来解决问题&#xff1a; 更新软件包列表&#xff1a; 首先确保您的Debian系统的软件包列表是最新的。运行以下命令&#xff1a; sudo apt update 安装Firewalld&#xff1a; 使用以下命令安装Firewalld&…...

如何理解python中的*args和**kwargs

args用于表示可变数量的位置参数&#xff08;Positional Arguments&#xff09; kwargs 用于表示可变数量的关键字参数&#xff08;Keyword Arguments&#xff09;。 *args 来接收不定数量的位置参数 实例: def exampleFunc(*args):print(type(args))for arg in args:print…...

软考之软件工程基础理论知识

软件工程基础 软件开发方法 结构化方法 将整个系统的开发过程分为若干阶段&#xff0c;然后依次进行&#xff0c;前一阶段是后一阶段的工作依据按顺序完成。应用最广泛。特点是注重开发过程的整体性和全局性。缺点是开发周期长文档设计说明繁琐&#xff0c;工作效率低开发前要…...

香港服务器不稳定的几种情况

​  近年来&#xff0c;随着互联网的迅猛发展&#xff0c;香港作为一个重要的网络枢纽地区&#xff0c;扮演着连接中国内地和国际网络的重要角色。一些用户表示在使用香港服务器时可能会遇到不稳定的情况&#xff0c;导致访问困难、加载缓慢甚至无法连接。 为什么香港服务器会…...

报修软件有什么用?企业如何做好设备管理与维护?

在当今的商业环境中&#xff0c;设备设施的维护和管理已经成为企业运营的重要环节。无论是学校、酒店、物业等大型企事业单位&#xff0c;还是运维集成商、制造工厂等企业单位&#xff0c;都需要对设备设施进行有效的管理。报修软件作为一种智能化的解决方案&#xff0c;为设备…...

Go语言的键盘输入和打印输出

键盘输入和打印输出 一、打印输出 1.1 fmt包 fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb&#xff08;‘verb’&#xff09;源自C语言但更简单。 详见官网fmt的API&#xff1a;https://golang.google.cn/pkg/fmt/ 1.2 导入包 import "fmt"1.3 常…...

jenkins实践篇(2)—— 自动打tag的可回滚发布模式

大家好&#xff0c;我是蓝胖子&#xff0c;在上一篇我简单介绍了如何基于特定分支做自动编译和发布&#xff0c;在生产环境中&#xff0c;为了更加安全和快速回滚&#xff0c;我采取的是通过对代码打tag的方式来进行部署&#xff0c;下面我将详细介绍整个发布过程的逻辑。 发布…...

golang worker channel 模式

大概流程就是job -> JobQueue调度器循环获取JobQueue &#xff0c;获取到的job &#xff0c;再去异步获取等待可用的 worker&#xff0c;取出 chan Job,将job 写入改worker的 chan Jobworker 处理任务&#xff0c;先处理 case job : <-w.JobChannel: 处理完成后再将 chan…...

舔狗日记之好一条舔狗

闲来没事&#xff0c;爬了下vx《舔狗日记》&#xff0c;感觉挺有意思的&#xff0c;分享出来给大家看看。 PS&#xff1a;仅供娱乐&#xff0c;侵删。 舔狗2023 舔狗日记 2023年10月11日 晴天 你们根本不懂舔狗的快乐。被舔的人&#xff0c;无法预知接下来会不会继续被舔&…...

【地理位置识别】IP归属地应用的特点

IP归属地应用是一类用于确定特定IP地址的地理位置信息&#xff08;通常是城市、地区或国家&#xff09;的工具和服务。以下是IP归属地应用的几个主要特点&#xff1a; 地理位置识别&#xff1a; IP归属地应用主要用于确定IP地址的地理位置。这可以帮助组织更好地了解其网站访问…...

华为实验基础(2):路由器基础

一、路由器的分类 1、从功能、性能和应用方面划分&#xff1a; &#xff08;1&#xff09; 骨干路由器 &#xff1a;骨干路由器是实现主干网络互连的关键设备&#xff0c;通常采用模块化结构&#xff0c;通过热备 份、双电源和双数据通路等冗余技术提高可靠性 &#xff0c;华…...

婚姻管理系统-使用bbst数据结构

使用到希尔排序和归并排序&#xff0c;文件存储 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h> //名字的最大长度 #define NameMax 30 //全局的文件指针变量 FILE* file, * file_admin, * file_divorce; /…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...