生成式 AI 如何释放开发者的生产力?

生成式 AI 可以将程序员的开发速率提高两倍。技术管理者有望通过 AIGC 应用,大幅缩短四类关键开发任务的完成时间,进而提升组织生产力。

——麦肯锡《通过生成式 AI 释放开发者生产力》

01 生成式 AI 将如何影响研发效能?

麦肯锡最近的一项实证研究发现,生成式 AI 工具可以显著提升程序员的开发速率,进而显著提升组织生产力

该研究对来自美国和亚洲各地的 40 余名开发者展开了观察和实验。参与者们需要执行三种常见的开发任务——代码生成、代码重构和文档编写,而开发者特征、任务的完成时间和复杂性,以及代码质量等数据被科学地记录下来。

研究结果表明,在生成式 AI 的辅助下,可维护性代码文档可以在一半的时间内完成,新代码生成效率提升近一倍,而代码重构类任务的完成时间也节省近三分之一。在新工具和流程的推动下,结合正确的技能提升和企业赋能,这些速度的提升可以转化为生产力的提高,并超越过去工程生产力的进步。

在这里插入图片描述

不过,任务完成时间的减少也可能会因开发任务的复杂性和开发者经验而有所差异。对于高复杂度任务,由于开发者缺乏必要的背景知识,其时间节省不足 10%。此外,在某些情况下,使用了 AIGC 工具的初级开发者(指经验不足一年的开发者)比不使用工具要多花 7%-10% 的时间。

研究还发现,当开发者和工具协作时,研发质量并不会因为速度提升而牺牲或降低。有 AI 辅助的代码在缺陷率、可维护性和可读性等方面的表现更佳。参与者们指出,开发者们正在迭代中积极地应用工具以实现更高的质量,是以该技术应该用于赋能开发者,而不是取代他们。

综合来看,想要使用生成式 AI 并最大限度地提高生产力和降低风险,技术管理者需要采取结构化方法,比如生成式 AI 的培训和辅导、用例选择、技能提升和风险控制。

02 生成式 AI 在四个方面卓有成效

1. 更快完成手动和重复的工作

生成式 AI 可以处理常规任务,例如自动填充标准函数、完成键入中编码语句、根据给定提示按一定标准格式书写代码功能文档等。在此过程中,AI 就能解放开发者,让他们能够解决更复杂的业务挑战,快速开发新功能。

2. 更高效地启动新代码的初稿

面对空白文件时,开发者可以在 AI 工具中获得编码建议。参与者反馈到,AI 辅助工具提供了有用的代码建议,这使他们摆脱了写作障碍,可以更快地开始创作。「这类工具使我能够更快地进入心流状态」,一位参与者如是说到。

3. 加速现有代码的更新

如果能提供有效的提示词,开发者使用生成式 AI 还可以更快地对现有代码展开更多更改。例如,为了减少从在线编码库调整代码和改进预写代码的时间,开发者可以将代码作为提示词,提交迭代查询,要求工具根据事先提供的标准进行调整。

4. 提高开发者应对新挑战的能力

虽然生成式 AI 对复杂任务的提升效果比较有限,但它可以帮助开发者快速温习完成工作所需的陌生代码库、语言或框架。在面临新挑战时,他们可以转向工具来获得如概念解释和框架使用指南等帮助,以更好地完成工作。

因此,使用 AIGC 工具执行复杂任务的开发者在规定时间内完成任务的可能性要比不使用工具的开发者高出 25%-30%。

在这里插入图片描述

除了生产力的提高,研究还发现,让开发者发挥出最大生产力可以显著改善开发者的体验,从而帮助公司留住并激发最优秀的人才。使用生成式 AI 工具的开发者,其总体幸福感、满足感和心流状态是其他人的两倍多。

在这里插入图片描述

03 依赖开发者专业知识的三个领域

生成式 AI 可以做很多事情,但其使用效果取决于使用它们的开发者的技能水平。从参与者的反馈来看,人类的监督和参与在以下三个领域至关重要:

1. 检查代码的漏洞和错误

生成式 AI 有时会提供不正确的编码建议,甚至会在代码中引入错误。一名开发者表示,她必须输入大量的提示来纠正工具的错误假设,然后才能得到答案。

2. 贡献必要的背景信息

虽然现成的 AIGC 应用拥有很多编码知识,但它们不知道项目和组织的具体需求。要确保最终的软件产品能与其他应用程序无缝集成,满足公司的性能和安全要求,并最终解决用户诉求,这些信息必不可少。

开发者需要通过提示词为 AI 提供背景信息,包括代码如何使用、由谁使用、接口类型以及软件将与之交互的其他系统,使用的数据等等。

3. 应对或分解棘手的编码要求

参与者还提到,生成式 AI 更适合回答简单的问题(如优化代码片段),而不是复杂的需求(如将多个框架与不同代码逻辑相结合)。

一位开发者分享到,为了获得可用的解决方案来满足多方面的需求,他首先必须手动地组合各个组件,或将代码分解为更小的片段。「当问题变得更加复杂并且需要考虑全局时,生成式 AI 提供的帮助最小。」

写在最后

ChatGPT 之后,不计其数的 AI 应用和辅助工具涌现,从代码生成、调试到审查、优化,我们都能发现许多令人兴奋的新面孔。也许在不久的将来,生成式 AI 会构建出新的规则,改变代码编写、审查和优化的方式,甚至成为开发者工作的必备工具。

麦肯锡认为,生成式 AI 应该成为开发者探索复杂任务的最强辅助,为其赋能,而不是取而代之。 这与 LigaAI 的观点不谋而合。

作为一款面向开发者的、以人工智能技术为核心的研发管理工具,LigaAI 自成立的第一天起就坚信,开发者最宝贵的时间和精力不该被机械重复的繁杂琐事绊住,形如信息同步、状态更新、任务流转等工作就该交给机器完成。只有这样,开发者才能专注地钻研技术、解决问题、交付价值,释放更多生产力。

相较于上一代工具,LigaAI 创新提出了「智能协作」概念,致力于以 AI 赋能每个用户,真正为研发团队提升效能。如果你正苦于滞后的、失真的进度数据、无法了解团队和项目的真实进展,或者疲于应对各种通知、提醒和干扰,欢迎注册使用我们的产品,体验新一代智能研发协作。立即注册使用:新一代智能研发协作平台 LigaAI

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 算法高级篇:分治算法的原理与应用

Python 算法高级篇:分治算法的原理与应用 1. 什么是分治算法?2. 分治算法的应用2.1 归并排序2.2 快速排序2.3 最大子数组问题2.4 汉诺塔问题 3. 代码示例3.1 分治算法求幂 4. 总结 分治算法是一种重要的算法设计技巧,它将一个大问题分解为多个…

SpringBoot自动配置原理解析 | 京东物流技术团队

1: 什么是SpringBoot自动配置 首先介绍一下什么是SpringBoot,SpringBoost是基于Spring框架开发出来的功能更强大的Java程序开发框架,其最主要的特点是:能使程序开发者快速搭建一套开发环境。SpringBoot能将主流的开发框架(例如Sp…

Mybatis-Plus CRUD

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Mybatis-Plus CRUD 通用 Service CRUD 封装 IService 接口,进一步封装 CRUD 采用 get 查询、remove 删除 、list 查询集合、page 分页的前缀命名方式区分 …

用爬虫代码爬取高音质音频示例

目录 一、准备工作 1、安装Python和相关库 2、确定目标网站和数据结构 二、编写爬虫代码 1、导入库 2、设置代理IP 3、发送HTTP请求并解析HTML页面 4、查找音频文件链接 5、提取音频文件名和下载链接 6、下载音频文件 三、完整代码示例 四、注意事项 1、遵守法律法…

运维 | 使用 Docker 安装 Jenkins | Jenkins

运维 | 使用 Docker 安装 Jenkins | Jenkins 前言 本期内容主要是为了学习如何通过 Docker 安装Jenkins,仅作为记录与参考,希望对大家有所帮助。 准备工作 系统:CentOS 7.9配置:4c8g 快速安装 下面以 Docker 方式安装 Jenkin…

【java学习—八】单例设计模式(5)

文章目录 1. 相关概念2. 单例设计模式-饿汉式3. 单例设计模式-懒汉式4. 总结 1. 相关概念 单例:只有一个实例(实例化对象) 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的…

Android笔记

目录 触摸事件java弱引用WorkerThread注解NonNull注解 触摸事件 java弱引用 创建对象的弱引用,在没有强引用指向改对象的情况下,垃圾回收器可以将其回收 WorkerThread注解 NonNull注解 用在方法的参数前,表示该参数不能为空。

25.2 MySQL 运算符

1. 伪表 在MySQL中, DUAL是一个特殊的单行, 单列的虚拟表, 主要用于在SELECT语句中计算表达式或执行函数, 而不需要从实际的数据表中检索数据. 使用DUAL的原因主要有以下几点:* 1. 简化计算: 通过在SELECT语句中使用DUAL, 可以方便地计算表达式或执行函数, 而无需创建临时表或…

SpringMVC系列-5 消息转换器

背景 SpringMVC系列的第五篇介绍消息转换器,本文讨论的消息转换指代调用Controller接口后,对结果进行转换处理的过程。 内容包括介绍自定义消息转换器、SpringMVC常见的消息转换器、Spring消息转换器工作原理等三部分。 本文以 SpringMVC系列-2 HTTP请求…

Selenium获取百度百科旅游景点的InfoBox消息盒

前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了SeleniumPhantomjs后,准备利用它们获取百度百科的旅游景点消息盒(InfoBox),这也是毕业设计实体对齐和属…

酷开科技 | 酷开系统沉浸式大屏游戏更解压!

随着家庭娱乐需求日益旺盛,越来越多的家庭消费者和游戏玩家开始追求大屏游戏带来的沉浸感。玩家在玩游戏的时候用大屏能获得更广阔的视野和更出色的视觉包围感,因此用大屏玩游戏已经成为了一种潮流。用酷开系统玩大屏游戏,过瘾又刺激&#xf…

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】 1、概述2、实验环境3、 物品说明4、参考资料与自我总结5、实验过程1、创建目录2、克隆下载文件3、 拉取子目录安装和交叉编译工具链等其他工具4、添加环境变量6、将样例文件拷贝到桌面…

计算机网络——理论知识总结(下)

接上条: 计算机网络——理论知识总结(上) 四.网络层 1.功能:向上提供简单灵活的、无连接的、尽最大努力交付的数据报服务——所传送的分组可能出错、丢失、重复、失序或者超时,这就使得网络中的路由器比较简单&#…

[support2022@cock.li].faust、[tsai.shen@mailfence.com].faust勒索病毒数据怎么处理|数据解密恢复

引言: 威胁网络安全的恶意软件不断涌现,而[support2022cock.li].faust勒索病毒则是其中的一员。这个网络黑暗角落的新星,以其数据绑架的方式,一度成为数据安全的威胁焦点。本文将探究[support2022cock.li].faust勒索病毒的运作方…

Python自动处理pptx:新建、另存、添加幻灯片、添加标题、插入文本图片图形、提取文本

Python-pptx库是一个用于创建、更新和读取Microsoft PowerPoint .pptx 文件的Python库。它允许我们使用Python脚本自动化PowerPoint文件的创建、更新和读取操作,是一个非常方便自动化处理PPTX的工具。 安装 pip install python-pptx创建 from pptx import Prese…

常用linux命令 linux_cmd_sheet

查看文件大小 ls -al 显示每个文件的kb大小 查看系统日志 dmesg -T | tail 在 top 命令中,RES 和 VIRT(或者 total-vm)是用来表示进程内存使用的两个不同指标,它们之间有以下区别: RES(Resident Set Size…

FoneDog iOS Unlocker(ios解锁工具) 适用macos电脑

FoneDog iOS Unlocker是一款专业的iOS设备解锁工具,旨在帮助用户解决iOS设备上的解锁问题。该软件支持解锁各种锁定类型,如数字密码锁、手势密码锁、Touch ID和Face ID等,可以解除iPhone、iPad和iPod Touch等设备的锁定状态。FoneDog iOS Unl…

react项目实现文件预览,比如PDF、txt、word、Excel、ppt等常见文件(腾讯云cos)

使用腾讯云文档预览&#xff0c;需要开通文档预览功能&#xff0c;该功能需要收费的。 使用限制 如果需要图片预览、视频或音频可以使用获取下载链接。 页面代码 <button onClick() > {handleClick(myself/文档.xlsx)}>预览</button><div style{{ height:…

C语言文件操作(详解)

&#x1f493;博客主页&#xff1a;江池俊的博客⏩收录专栏&#xff1a;C语言进阶之路&#x1f449;专栏推荐&#xff1a;✅C语言初阶之路 ✅数据结构探索✅C语言刷题专栏&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f389;欢迎大家点赞&#x1f44d;评论&#x…

c++编译使用log4cplus

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、log4cplus是什么&#xff1f;二、使用步骤1.下载源代码2.开始配置1.配置介绍2.开始编译 3.cmake引用4.示例 总结 前言 C很强大&#xff0c;但是仍然有很多…