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,这样才能让我们在竞争激烈的市场上有一席之地。