怎样利用 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等。 注册一个账户并创建一个聊天室。 添加您的朋友或家人或需要的人到聊天室中。 设置聊天室的规则和管理机制ÿ…...

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

驱动开发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日,中国上海 – 近日,上海中优城市万豪酒店正式推出由全球品牌娱乐公司孩之宝官方授权打造的小马宝莉和变形金刚主题客房,以创意客房、新奇体验和丰富礼遇,为童游家庭或年轻的动漫迷们开启沉浸式入住之旅,…...
zsh和bash之间互相切换
zsh->bash exec bashbash->zsh exec zsh...
Java - window系统快捷键大全
Ctrl 快捷键 介绍 Ctrl F 在当前文件进行文本查找 (必备) Ctrl R 在当前文件进行文本替换 (必备) Ctrl Z 撤销 (必备) Ctrl Y 删除光标所在行 或 删除选中的行 (必备) Ctrl X …...
深入理解数据结构(1)—用链表实现栈
栈是一种数据结构,链表也是一种数据结构。它们都是由基础的语法实现的。 如果一个数据结构可以用另外的数据结构来实现,那么可以有力的证明——“数据结构是一种思想”,是一种讲语法组合起来实现某种功能的手段 一、栈的特点——要实现哪些功…...
Jtti:debian安装firewalld错误怎么办
如果在Debian系统上安装Firewalld时出现错误,可以尝试以下步骤来解决问题: 更新软件包列表: 首先确保您的Debian系统的软件包列表是最新的。运行以下命令: sudo apt update 安装Firewalld: 使用以下命令安装Firewalld&…...
如何理解python中的*args和**kwargs
args用于表示可变数量的位置参数(Positional Arguments) kwargs 用于表示可变数量的关键字参数(Keyword Arguments)。 *args 来接收不定数量的位置参数 实例: def exampleFunc(*args):print(type(args))for arg in args:print…...

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

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

报修软件有什么用?企业如何做好设备管理与维护?
在当今的商业环境中,设备设施的维护和管理已经成为企业运营的重要环节。无论是学校、酒店、物业等大型企事业单位,还是运维集成商、制造工厂等企业单位,都需要对设备设施进行有效的管理。报修软件作为一种智能化的解决方案,为设备…...
Go语言的键盘输入和打印输出
键盘输入和打印输出 一、打印输出 1.1 fmt包 fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb(‘verb’)源自C语言但更简单。 详见官网fmt的API:https://golang.google.cn/pkg/fmt/ 1.2 导入包 import "fmt"1.3 常…...

jenkins实践篇(2)—— 自动打tag的可回滚发布模式
大家好,我是蓝胖子,在上一篇我简单介绍了如何基于特定分支做自动编译和发布,在生产环境中,为了更加安全和快速回滚,我采取的是通过对代码打tag的方式来进行部署,下面我将详细介绍整个发布过程的逻辑。 发布…...
golang worker channel 模式
大概流程就是job -> JobQueue调度器循环获取JobQueue ,获取到的job ,再去异步获取等待可用的 worker,取出 chan Job,将job 写入改worker的 chan Jobworker 处理任务,先处理 case job : <-w.JobChannel: 处理完成后再将 chan…...
舔狗日记之好一条舔狗
闲来没事,爬了下vx《舔狗日记》,感觉挺有意思的,分享出来给大家看看。 PS:仅供娱乐,侵删。 舔狗2023 舔狗日记 2023年10月11日 晴天 你们根本不懂舔狗的快乐。被舔的人,无法预知接下来会不会继续被舔&…...

【地理位置识别】IP归属地应用的特点
IP归属地应用是一类用于确定特定IP地址的地理位置信息(通常是城市、地区或国家)的工具和服务。以下是IP归属地应用的几个主要特点: 地理位置识别: IP归属地应用主要用于确定IP地址的地理位置。这可以帮助组织更好地了解其网站访问…...
华为实验基础(2):路由器基础
一、路由器的分类 1、从功能、性能和应用方面划分: (1) 骨干路由器 :骨干路由器是实现主干网络互连的关键设备,通常采用模块化结构,通过热备 份、双电源和双数据通路等冗余技术提高可靠性 ,华…...
婚姻管理系统-使用bbst数据结构
使用到希尔排序和归并排序,文件存储 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h> //名字的最大长度 #define NameMax 30 //全局的文件指针变量 FILE* file, * file_admin, * file_divorce; /…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...