收藏 分销(赏)

采用AI编程助手发展新质生产力白皮书.pdf

上传人:宇*** 文档编号:4215245 上传时间:2024-08-26 格式:PDF 页数:67 大小:3.21MB
下载 相关 举报
采用AI编程助手发展新质生产力白皮书.pdf_第1页
第1页 / 共67页
采用AI编程助手发展新质生产力白皮书.pdf_第2页
第2页 / 共67页
采用AI编程助手发展新质生产力白皮书.pdf_第3页
第3页 / 共67页
采用AI编程助手发展新质生产力白皮书.pdf_第4页
第4页 / 共67页
采用AI编程助手发展新质生产力白皮书.pdf_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、采用 AI 编程助手,发展新质生产力商汤日日新 代码小浣熊提高企业开发高质量软件应用的能力,为开发者提供新质生产力工具2目录关键发现.4第一章 AI 编程助手是开发者应掌握的新质生产力工具.61.在 AI 编程助手的赋能下,企业可以实现更全面的高质量发展.72.AI 编程助手遵循 KRE 理论架构不断升级满足生产力发展需求.8第二章 借助 AI 编程助手进入“心流”状态,成为 10 倍开发者.111.聚沙成塔,AI 编程助手有效提高开发者的生产力.132.超越生产力,AI 编程助手还可以提高开发者的工作体验.203.保持理性,穿越炒作:从 AI 编程助手工具的采用中获得最大价值.23第三章AI

2、 编程助手让开发者从执行者变成了代码协调者.261.保持开放心态,提升自身能力,在变革中寻找成长与机遇.262.当好协调者与指挥者,开发者自身角色定位在发生转变.28第四章群雄并起,中国大模型厂商逐鹿 AI 编程助手时代.311.中国 AI 编程助手市场发展趋势与格局.322.AI 编程助手评估框架:基模型、产品工程、持续迭代、市场生态.363.谁塑造了这个市场?商汤日日新代码小浣熊.384.商汤日日新代码小浣熊成为软件开发新时代的创新基石.40第五章不可忽视的另一面:AI 编程助手的风险和“陷阱”.46第六章他山之石,参考行业最佳实践加速部署 AI 编程助手.501.海通证券开发提效 40%

3、+,打造“泛海言道”大模型促进创新发展.502.澳新银行提高了 42%生产效率,代码质量提升了 12%.533.某商业银行实现提效 35%,代码补全平均响应时间 50ms/token.5534.某车企通过 AI 编程助手实现软件开发现代化,效率提升超过 50%.55第七章建议:不要等待,行动起来,完美是优秀的敌人.57第八章展望:从 Copilot 到 Agent,迈向 AGI 彼岸.604关键发现1,遵循KRE理论架构的AI编程助手凭借强科技属性成为开发者应该掌握的新质生产力工具,企业通过 AI 编程助手可以实现全面的高质量发展。AI 编程助手能够解放开发者,释放更高效率的生产力,不仅可以持

4、续推动企业的数字化转型,并且可以贡献额外的经济效益。对于企业缺少开发者人才、消弭高质量软件应用开发的障碍等挑战,AI 编程助手均可以有效解决。遵循 KRE(知识-推理-执行)理论架构使得 AI 编程助手可以伴随大模型、生成式 AI 等技术的发展而进化,具备世界知识、理性思维和互动能力,不断满足生产力发展需求。2,AI 编程助手可以帮助开发者提高自身生产力,改善工作体验,帮助开发者进入和维持高效率的“心流”状态,让他们聚焦关键业务,缩短产品上市时间。AI 编程助手可以有效减少编程时间投入、减轻编写代码的压力、产出高质量代码、实现赋能软件开发生命周期的关键环节。AI 编程助手还可以最大限度地减少认

5、知疲劳,提高解决问题的能力,加强协同效力,更好的实现知识共享。AI 编程助手不仅赋予开发者新的技能加持,还加快了开发者的学习速度,培养创新能力。最后,通过 AI 编程助手,开发者可以更好的将高效时间投入到高价值事务当中,及时满足用户需求,交付更有价值的软件应用,实现助力业务发展的最终目标。3,开发者正在面临角色转换的挑战,如何快速完成角色转换,从代码的执行者变成代码的协调者、AI 工具的使用者,是应对生成式 AI 发展浪潮的关键行动。开发者的工作目标就是持续的及时的交付软件应用满足客户需求,而 AI 编程助手是在让这个目标的实现更加高效和轻松。开发者不必焦虑于 AI 编程助手是否会替代自己,而

6、通过自身技能的提升,操控 AI编程助手为自己服务。新工具涌现不会停止,软件开发的需求也只会越来越旺盛,开发者应该保持持续学习的习惯,让自己的身份完成华丽的转变,成为协调者、指挥者和系统思考者。54,AI 编程助手评估框架可以帮助开发者和企业更好的理解市场上的相关产品,并为采购选型提供参考依据。AI 编程助手评估框架从基模型、产品工程、持续迭代、市场生态四大维度 16 个二级指标来对厂商进行整体评估和分析,帮助开发者和企业避免被厂商的宣传和媒体的渲染造成困惑和失焦。整体而言,当前中国 AI 编程助手尚处于发展阶段,各个厂商在产品发展进度上发力点有所不同,商业化模式并未形成共识,面对挑战与难题,各

7、方需持续精进,以实现从技术理论到商业价值进而完成营收转换。5,商汤日日新代码小浣熊在 AI 编程助手评估框架的打分下表现优异,整体得分高出市场平均分,体现出领先的发展优势。商汤代码小浣熊拥有业界领先的大语言模型作为其模型基础,保证了自身产品功能的实现效果和成长空间。通过早起布局,商汤代码小浣熊提供了完善的产品工程体验,满足不同规格客户的多元需求。基于与客户的互动,及时了解客户需求,捕捉技术发展趋势,商汤代码小浣熊保持着不断创新的节奏和功能发布。最后,商汤代码小浣熊构建了较为成熟的生态体系并取得了较高量级的企业客户和开发者用户。6,企业组织应该立即行动起来,采用 AI 编程助手,发展新质生产力,

8、参考最佳实践和案例的同时,识别风险和“陷阱”。企业 CIO 和软件开发团队的领导应该及时了解前瞻性企业部署 AI 编程助手的实践心得和取得的实际效果,同时也要为部署新兴的生成式 AI 应用带来的潜在风险和“陷阱”做好预案。“完美是优秀的敌人”,面对新技术和新工具,领导型企业不要畏惧,应该大胆行动,不断调优自身组织的数字化韧性,做好迎接 AGI 时代的来临。6第一章 AI 编程助手是开发者应掌握的新质生产力工具新质生产力主要由技术革命性突破催生而成,科技创新能催生新产业、新模式、新动能,是发展新质生产力的核心要素1。新质生产力依靠科技创新驱动,通常表现为更高的效率、更好的质量、更强的创新能力和更

9、符合高质量发展要求的生产方式,它以高科技、高效能、高质量为特征,是对传统生产方式的革新2。新质生产力的显著特点之一就是技术创新,当下以大模型、生成式 AI 应用为代表的新一代信息技术体系正在成为新质生产力的重要引擎之一,正成为当今世界发展的最大变量,成为推动新一轮产业变革、促进全球经济增长的核心动力引擎。加快形成新质生产力,需要依托并充分运用好这些技术。相比内容生成、营销、拟人等新兴生成式 AI 应用,从用户量级和场景落地发展来看,AI 编程助手已成为产品化和应用落地速度较快的生成式 AI 技术,大模型的不断进化所带来的积极影响,也能够及时反映到 AI 编程助手产品迭代进化中,这从各厂商高速迭

10、代 AI 编程助手产品的频次可见一斑。生产工具的科技属性强弱是辨别新质生产力和传统生产力的显著标志。AI 编程助手能够进一步解放开发者,削弱了客观条件对软件开发活动的限制,拓展生产空间,为软件开发领域的新质生产力发展提供了工具基础,推动软件开发跃上新台阶。AI 编程助手帮助企业催生新业务,推动现有业务的深度转型升级,促进质的有效提升和量的合理增长,进而推动生产力全面提升和经济社会高质量发展。一项研究显示,AI 编程助手对于未来经济的影响巨大,到2030 年,保守预计 AI 编程助手的生产力效益将为全球 GDP 增长贡献超 1.5 万亿美元3。另外一组数据更值得关注,因 AI 编程助手带来的生产

11、力提升,到 2030 年,相当于为全球增加1,500 万“有效开发者”,这些新增“开发者”将会创造、贡献海量社会价值,促进生产力发展。71.在 AI 编程助手的赋能下,企业可以实现更全面的高质量发展数字化时代,开发者作为技术的创造者和推动者,其价值不言而喻。企业的数字化转型与发展,都离不开开发者的主导和贡献,他们的代码和软件应用、移动应用,对这个社会做出了无法比拟的贡献。依据 GitHub 数据,2021 年中国有 755 万开发者,排名全球第二;放全球开发者数量超过 7300 万,比 2020 年增长了 1700 万4。伴随着企业数字化转型的不断升级,企业在构建软件方面遇到了各种调整和困难:

12、开发者人才的数量依然不够,尤其是中国这种高速发展的数字化市场。相对于全球的开发者数量和增长速度,中国的开发者人才缺口在扩大,形势也更加严峻。这背后的原因是中国企业越来越多地依靠软件来实现差异化、推动转型以及在行业中取得领先地位。但是,对于大多数中国企业而言,快速踏上软件驱动的转型之旅往往面临各种困难。其中一个关键短板,就是开发者人才不足,尤其是能够理解领域知识并资深的开发者更加短缺。尤其是近年来生成式 AI 应用项目虽然暴增,但是来自中国的生成式 AI 应用项目数量却远远落后于美国、印度、日本等国家与地区5。如何提高软件开发人才的密度,是当下进一步推动新质生产力发展的有效措施之一。软件需求超出

13、了大多数企业组织的能力,现有开发者已不堪重负。开发者不仅无法快速构建软件以迎合业务高速变化,也无法在工作中获得幸福感。招募更多开发者很困难,培养和提升开发者的技能也很困难。开发者永远是最忙碌的一群人。开发者没有足够的“专注时间”来处理重要的业务问题6。数据显示,软件开发人员每周大约有 19.6 个小时的专注时间,而每周要花费 10.9 个小时开会,而专注时间与工作效率有直接相关性7。即使在开发人员可以专注于编写代码的有限时间内,他们也会遇到各种各样的障碍。除了要花费很大一部分时间来手动编写简单且大同小异的代码之外,他们还要花费大量时间了解、学习和跟上复杂且不断变化的工具和技术发展趋势,这样才能

14、使用最新的技术8和服务来构建创新的解决方案。这进一步压缩了可用于开发创新功能、差异化功能或关键业务功能的时间。而企业招募的大量的新入职的开发者,还要花费大量的时间在了解企业代码知识库,阅读海量文档等落地繁冗事务上。AI 编程助手无疑为解决上述挑战提供了一个全新的高速进化的方案。AI 编码助手正在成为倍增器,提高开发人员的生产力和幸福感。通过处理日常任务,AI 编程助手使开发者能够专注于更高价值的活动。这使得企业组织能够利用现有团队更快地交付更多功能,支持更多业务。Gartner 调研显示,18%的企业机构已部署了 AI 代码助手,另有 25%的企业机构处于部署阶段,20%的企业机构处于试点阶段

15、,14%的企业机构处于规划阶段8。2.AI 编程助手遵循 KRE 理论架构不断升级满足生产力发展需求在过去几十年间,市场上一直存在不同形式的代码辅助工具和解决方案,但直到 2022年底 ChatGPT 的发布,AI 编程助手作为一个有实际发展意义的概念才脱颖而出,取得了突破性的成功,斩获了技术厂商的巨大关注度。在此之前,历史上涌现的由不同厂商推出的大量产品工具则为我们今天拥有复杂编程工具铺平了道路9。这些早期的 AI 驱动的编码工具帮助塑造了软件开发的演变,并为当今人工智能驱动的编码辅助和自动化工具奠定了基础。大模型使代码生成工具的发展迎来新趋势。2021 年 7 月,OpenAI 推出基于

16、GPT-3 的 AI编程助手Codex,其基础是大语言模型,并针对代码库进行了训练和微调。这意味着 Codex不仅是通用的大语言模型,它还被特别训练来理解和生成代码。一项研究显示,相比未经精炼的 GPT-3 模型,Codex 在代码生成准确性和相关性方面取得了重大改进(见图 1)10。从 GPT-3 到 Codex 的进化,对于生成式 AI 在软件开发中的应用具有重要意义,表明大语言模型不仅能生成自然语言,还能够生成高质量的、可执行的代码。2021 年 8 月,Codex9被集成到 GitHub Copilot 中,为开发者提供了一个实用的 AI 编程助手,正式开启了此领域的全球竞赛,后续 G

17、itHub Copilot 不断迭代增加全新功能,满足开发者和企业的需求11。图 1:HumanEval 评测集显示经过代码数据微调的 Codex 通过率远高于 GPT-3 大语言模型大语言模型的进步正在加速 AI 编程助手的能力进化,并催生出 AI 编程助手的定义:AI编程助手是协助开发者编写和分析软件代码的智能化工具,其本质是基于基础模型,如大语言模型,再通过特定的高质量代码数据进行微调,提供自然语言交互界面,生成应用程序代码,实现从设计到代码的转换,并增强代码测试能力。AI编程助手赋能软件开发生命周期各环节,内嵌集成开发环境等工具中,可根据用户需求提供定制化的解决方案。大模型能力可分为三

18、层架构:知识(Knowledge)、推理(Reasoning)、执行(Execution)。这三层架构之间互有依赖,但又相对独立,总体来讲,这三层可以组成一个完备的对于世界提供生产力工具模型的三层能力(见图 2):第一层知识(Knowledge),世界知识的全面灌注。目前,许多生产力工具解决的都是10知识层的问题,当用户提出问题时,其底层的逻辑都来自于“世上无新事”你所面临的问题,前人可能已经遇到过并解决了,因此通过大模型通过前期的学习形成记忆在进行检索,就可以很好地完成基础性的任务。对于 AI 编程助手而言,这一层就是开源的代码数据集、合规的代码知识库,当然也包括企业自身的代码积累。第二层推

19、理(Reasoning),理性思维的质变提升。有了世界知识之后,再往前演进,则是处理更加有逻辑和领域专业性的问题。即使不知道这件事实,也可通过思维链逐步把这个事实推理出来,给出更多的可能性。在这一层,AI 编程助手则是从简单的代码补全和生成,扩展覆盖到软件开发的全生命周期。第三层执行(Execution),世界内容的互动变革,即如何跟这个世界互动反馈。无论是前期大模型的函数调用(Function Calling)能力,还是处于高速动态发展的 AI 智能体(AIAgent),再或是为大模型装上“手和脚”的具身智能都是在执行层面实现突破的重要功能。对于 AI 编程助手而言,其“Copilot”的定

20、位,本身就是聚焦在如何与开发者进行互动,执行开发者的要求,完成开发者下达的任务,切分到垂直场景中,以场景化智能为手段对业务产生全面赋能。图 2:大模型能力的构建来自三个方面:知识、推理、执行11第二章 借助 AI 编程助手进入“心流”状态,成为 10 倍开发者Gartner 调研显示,CIO 和技术领导者对 AI 编程助手及其对开发者生产力的提升效果抱有很高期望。近半数的人期望 AI 编程助手能提高生产力,超过三分之一的人认为该技术是潜在的“颠覆性因素”12。部署和扩展 AI 编程助手是一个复杂的技术决策,同时也是一个具有前瞻性的企业文化调整。对 AI 编程助手带来的价值的认识要有全貌,避免狭

21、隘的视角,超越传统的技术 ROI 衡量标准,只有这样才能为 AI 编程助手捕捉到完整的企业价值故事,管理好企业内部利益相关者的预期,并获取这种技术投资的全部好处。相对于其它生成式 AI 应用依然处于探索最佳应用场景的初级阶段而言,AI 编程助手属于最早成为有实际应用效果的生成式 AI 应用之一,也是少数让企业和用户感受到日常化影响的生产力工具。随着越来越多的企业认识到这些工具的价值并开始采用 AI 编程助手,我们可以预见到软件开发领域将继续经历变革。AI 编程助手带来的收益在厂商的宣扬下已经“家喻户晓”,AI 编程助手的作不仅在于提高写代码速度,其功能超出了代码成和补全的范围。AI 编程助手可

22、以充当助,提开发者的效率,帮助开发者保持专注状态,提解决问题的能。AI 编程助手的聊天互动功能还可以刺激头脑暴,其他功能则有助于重构代码、创建单元测试、调试、修复漏洞以及提代码质量。此外,AI 编程助手还能够帮助开发者持续地提编程语及框架的技能和熟练度。AI 编程助手节省写代码的时间仅仅是一个起点,不要止步于节省开发时间,还要看到AI 编程助手可能减少任务切换,让开发者保持“心流”,改善开发者的工作体验,对人才的吸引和留存都有积极的意义。AI 编程助手还能够搭建企业内部统一的代码规范和定义,在企12业内部实现知识共享和标准化、提高代码质量和可维护性,安全增强、高效协同、降低企业的技术负债,这些

23、都能够帮助开发团队将跟多的时间投入到更有价值的业务当中,或专注于高级别的设计和更复杂的创新工作。开发者能够利用 AI 编程助手生成的代码,快速实现功能,同时还能确保代码质量,从而加快产品从概念到市场的速度。这样的效率提升对于应对快速变化的技术环境和市场需求至关重要。GitHub 的研究人员创建了用于对开发者生产力因素进行分类的 SPACE 框架(见图 3),包括满意度和幸福感、绩效、活跃度、沟通和协作、效率和心流五个方面13。该框架同样适用于去衡量和归纳 AI 编程助手给开发者带来的收益:提高活跃度,执行更多的编程和测试等相关任务。“活跃度”特指开发者在规定时间内做了多少事情,虽然关注仅仅是开

24、发者的产出,但是单纯的计数依然关键。AI 编程助手能够帮助开发者在同样时间编写更多的代码,完成更多的测试,只有当开发者能够节省下来更多的时间,才能用来去创造价值。这个是 AI 编程助手带来的基础价值,也是衡量开发者生产力最直接有效的指标。通过消除满意度和幸福感、沟通和协作的限制,维持高效率,并进入“心流”状态。“满意度和幸福感”、“沟通和协作”、“效率与心流”这三个因素则与开发者的工作体验相关。满意度和幸福感不仅可以了解当下开发者的生产力水平,还可以预测未来的生产力发展,更好的识别开发者团队的倦态和生产力下降的趋势。软件开发是一项协作和创造性的任务,AI 编程助手可以有效促进和整合彼此的工作,

25、盘活信息在团队内部和团队之间的流动性,集成代码文档和资料的可用性和发现性。AI 编程助手能够通过一系列自动化功能帮助开发者尽快进入“心流”状态,而不被轻易打断。为产出好“绩效”奠定扎实的基础,并给予更具期待性的赋能和加持。开发者的绩效考核一直很难量化,因为很难将个人贡献将产品成果直接挂钩,代码与营收之间依然存在13较大的不可量化的鸿沟。AI 编程助手正在逐渐帮助企业看清楚两者之间的关系,包括提高代码质量,加快产品上市、开发成本整体降低等等。而在提高生产力并提升工作体验之后,开发者将会有更多的时间投入到更高价值的业务上,让整体的工作价值聚焦到业务结果上,而非流程产出上。当然,目前 AI 编程助手

26、的产品成熟度还处于前期阶段,厂商和企业用户都刚刚尝试用它来加强赋能业务的创新和实验,未来 AI 编程助手将会更加直接有效的为开发者带来全新的改善绩效表现的能力和模式。图 3:开发者生产力的构成:SPACE(来源:GitHub,商汤智研院整理)1.聚沙成塔,AI 编程助手有效提高开发者的生产力一项研究显示,通过对照实验,使用 AI 编程助手的开发者组别完成任务的效率比未使用的组别要快 55.8%,表明 AI 编程助手显著提升了生产力,且经验较少的开发者反而从 AI编程助手中获益更多,这对未来技能培训和职业转型都将会产生深远的影响14。在大模型、生成式 AI 趋势的驱动下,AI 编程助手等产品正在

27、迅速获得业界的关注和采纳,其影响和普及可能会超出最初的预期,不仅为开发者提供了全新的智能化生产力工具,其对全球经济也在产生重大影响。14企业 CIO 和软件开发团队的领导者表达了利用 AI 编程助手提高开发人员生产力的浓厚兴趣。在使用 AI 编程助手提高开发人员生产力主要体现在提高开发者完成工作任务的“活跃度”(见图 3),在此阶段,AI 编程助手可以显著减少开发人员完成这些任务所需的时间。McKinsey Digital 调研显示,AI 编程助手可以给予开发者令人印象深刻的效率提升,对于代码文档、代码生成等工作能够缩短 50%左右的时间,而对于代码优化和重构则可以缩短 30%的时间,这些速度

28、的提升可以转化为生产力的提高,这种提高将超越以往由新工具和流程驱动的工程生产力的进步(见图 4)。图 4:使用 AI 编程助手与不使用完成任务的时间对比围绕软件开发生命周期,AI 编程助手通过启用多个场景用例来提高开发者整体生产力,正是这些细微的进步,汇聚成开发者生产力提升的动力(见图 5)。随着 AI 编程助手产品技术的不断进化,对开发者的赋能也将会呈现越来越深入,覆盖越来越广的趋势。对于企业用户而言,应该逐步关注每个用例特点,展开 POC 试点,来评估 AI 编程助手对开发者生产力的影响。15图 5:AI 编程助手的场景用例,正在逐步覆盖软件开发全生命周期的各个环节为了充分利用 AI 编程

29、助手的优势,应该将其应用于整个软件开发生命周期的所有阶段,而不局限于代码生成。这种做法不仅能够防止生产力瓶颈,还能利用创造价值的机会,结合优秀的 DevSecOps 实践,如使用 AI 辅助代码审查和自动化测试,以及应用现代化,提升软件开发的效率和质量。首先,在软件程序的创建阶段,AI 编程助手可以帮助开发者减少时间投入,通过多个场景帮助开发者减轻编写代码的压力:代码自动补全。开发者使用 AI 编程助手的自动功能来提高编程速度。当他们输入时,AI 编程助手会帮助他们发现可用的代码,只需按一下键,就能帮助他们完成一行代码。AI 编程助手不仅能查看鼠标上方的代码和注释,还能扫描上下文,这使得它能够

30、预测更加复杂额代码结果。另外,由于基模型的代码数据集训练,导致 AI 编程助手擅长从开源代码或企业代码库找出以前见过的模式,预测模板和重复代码。AI 编程助手将开发者从这些琐碎的工作中解放出来,使他们能够专注于更有挑战更有创意的方面。AI编程助手还可以根据企业代码和文档对基模型进行提示词调整或微调,进一步提高代码建议的相关性和准确性,并帮助调用开发者不知道的企业代码知识库。AI 编程助手会16跟 IDE 工具无缝集成,不改变开发者习惯,实现实时代码补全,无需二次加工。代码生成。在大语言模型的支持下,AI 编程助手中的聊天互动界面可以让开发者通过自然语言来做提示词,从而探索和生成大段新代码,甚至

31、是整个程序。AI 编程助手将这些信息与代码自动完成功能结合起来。这样,开发者就可以使用自由形式的自然语言来生成代码,并动态使用代码补全界面。让自然语言成为一种编程语言,成倍提高开发人员的工作效率,让更多非开发者身份的员工,如业务人员,具备开发软件的基础能力,更好的从开发者角度提出业务诉求,更好的弥补用户需求和开发设计之间的理解差距。代码理解。AI 编程助手支持开发者将代码片段粘贴到聊天界面,并获得自然语言解释,还可以在 IDE 环境中突出显示需要解释的代码片段。这些功能可以帮助开发者理解复杂和陌生的代码,甚至是陌生编程语言的代码。AI 编程助手还支持对完整程序生成代码图,进一步帮助开发者理解软

32、件程序的结果和语义,保证产出的代码符合企业设计原则,这背后离不开基模型能力的加持。代码翻译。AI 编程助手的一个比较新兴和有用的用例场景就是将代码从一种编程语言翻译成另外一种编程语言,也就是代码转译功能。该功能可以帮助精通一种语言的开发者更快的熟悉其他编程语言进而提升工作效率,同时也有助力开发者重写程序。代码翻译功能还可以与代码生成和理解相结合,进而实现代码现代化。其次,AI 编程助手可以提高代码质量。GitHub 研究显示 AI 编程助手对代码质量和可维护性都产生了积极效果15。高质量代码会提高生产力,研究显示将会使软件开发时间平均减少了 78%16。高质量代码还是企业最关键的业务目标之一,

33、34%的软件领导者认为提高软件质量是他们的三大绩效目标之一17。AI 编程助手在提高代码质量领域能做的:代码调试。开发者调试代码错误的时候会陷入困境,不得不依靠其他资深开发者的帮助或从互联网上搜索解决方法。AI 编程助手的基模型基本都在标记代码数据上训练过,17包括历史错误代码,这就使其能够帮助开发者以对话的形式进行代码调试,快速定位和解决问题,提升代码的整体质量和稳定性。特别是在软件开发的早期阶段,及时修复错误可以避免后续的连锁反应。文档生成。创建和更新文档是开发者工作中必不可少的一部分,也是最繁琐和最缺乏创新的工作。AI 编程助手可以帮助开发者分析代码并创建相关文档,包括代码注释、API规

34、范和嵌入注释等。这样的话,开发者只需做好审核工作,保证 AI 编程助手生成的文档的准确性即可,可以节省大量的时间成本。而更清晰、更一致的在线文档则能够帮助开发者构建高质量代码。拉取请求汇总。开发者在合并代码的时候会发出合并或拉取请求,以便让同行在提交分支代码之前进行审查更改。自动生成的拉取请求可以节省时间,提高沟通和审查效率,并增强对代码变更的推理能力。AI 编程助手可以记录开发者的工作并分析其差异化,创建拉取请求汇总的叙述性文本,并提供有关更新的上下文和更新推理。代码审核人员可以根据这些上下文记录,更好的理解代码变更的目的和影响。通过自动生成代码差异化总结,AI 编程助手减少了手动编写文档的

35、工作,简化了审核流程。单元测试用例生成。开发者可以通过自然语言提示词让 AI 编程助手生成单元测试。众所周知,单元测试对于提高软件程序的可靠性至关重要,但生成单元测试却十分繁琐。因此,开发人员编写和维护单元测试的量级很低,而使用 AI 编程助手的开发者能够比以前编写更多的测试用例,极大提高了单元测试环节效率,保证软件程序的有效运行。代码重构。代码重构是指在不改变软件功能的前提下,对代码进行结构上的调整,以提高代码的可读性、可维护性、可扩展性和性能。虽然 IDE 工具可以为开发者提供主流编程语言的内置重构辅助功能,但是 AI 编程助手则更进一步,能够主动提出建议给出选择,让重构变得更加容易,甚至

36、支持不具备重构功能的编辑器。AI 编程助手还能够让18开发者在多个程序中重构大部分的代码。厂商可以将代码图与基模型的推理能力相结合,以实现更大规模的自动化重构。代码现代化。随着 AI 编程助手的进化,一些更加复杂的功能被厂商推出,如理解跨多个程序的复杂依赖架构,该功能可以帮助企业减少“技术负债(Technical Debt)”,实现代码现代化(Code Modernization)。厂商正在推出新的用户界面,使程序依赖关系可视化,支持代码模式的搜索和变更影响分析等功能。该功能尤其对企业内部一些用老旧编程语言或版本编写的软件系统,且少有开发者了解或者积极去维护的独立系统有立竿见影的效果。对于遗留

37、系统的现代化,AI 编程助手可以辅助代码的逆向工程,提取业务逻辑,发现领域模型,从而降低现代化过程中的成本和风险;还可以分析旧代码库,理解其结构和功能,然后提供重构建议,帮助开发者构建更加模块化、可扩展和易于维护的系统。这不仅提高了代码质量,还为未来的技术创新打下了坚实的基础。最后,AI 编程助手还可以帮助开发者提升自身技能,并降低任务启动时面临的困难度,这些都是不容忽视的对开发者生产力有巨大影响的场景用例:学习新的语言和框架。当开发者想要学习一种新的语言或框架时,他可能会求助于多种渠道,在线示例和教程、书籍和开发人员论坛(如 Stack Overflow、CSDN、知乎),也包括企业内部的开

38、发相关的知识库。AI 编程助手借助底层的基模型,其包含了从这些来源获得的大量相同信息,并且可以通过提供示例、生成问题和提出修复建议来提供一种教授新概念的有效方法。事实证明,与 AI 编程助手进行聊天交互是学习和研究新概念的有效方式。当然,开发者需要保持警惕,毕竟大模型的幻觉问题依然存在于 AI 编程助手的输出内容当中。快速熟悉陌生的代码库、编程语言或框架,以便完成任务。万事开头难,特别是在面对新的开发挑战时,开发者可以通过利用这类工具来获得与向经验丰富的同事请教相当的19支持比如解释新的概念、综合不同来源代码的信息(比如通过比较和对比来自不同存储库的代码)、以及提供如何逐步使用某个框架的指南等

39、。在这种情况下,开发者期待得到 AI 编程助手的有价值输入,帮助他们克服面对“空白画布”时的恐惧感,使得开发者能够摆脱启动障碍,从而更快地开始编码工作。降低新技能和专业知识的学习曲线,使开发者能够更快地掌握新技术。这对于保持开发者团队在技术进步和行业趋势方面的领先地位至关重要。举例来说,在技能获取阶段。AI 编程助手不仅可以加速代码编写过程,还可以作为一个强大的学习工具,帮助开发者学习新的软件开发技能。通过 AI 辅助的教程、代码解释和调试工具,开发者可以更快地掌握新技术和编程语言。AI 编程助手可以提供个性化的学习路径,根据开发者的现有技能和学习进度推荐合适的资源。此外,还可以通过分析大量的

40、代码库来提供最佳实践和设计模式的建议,从而提高开发者的技术能力和生产力。加速产品上市时间,让企业在竞争中保持领先地位。在当今竞争激烈的世界,企业将新构想推进至生产就绪状态的速度至关重要。即使工程性能仅仅提高 1%,也可能成为决定成败的关键因素。例如,企业交付一款面向客户移动应用,假设该 APP 第一年可产生 1000 万的利润。因此,将交付日期提前一个月可产生的潜在价值应接近 100 万(具体取决于对增速的假设)。此外,在竞争非常激烈的环境中,产品提前几个月上市会极大地提高一家公司的竞争地位。AI 编程助手还可以在软件开发的其他环节发挥作用。例如,在需求分析阶段,AI 可以通过自然语言处理技术

41、来帮助理解用户需求,自动生成用户故事和验收标准。在部署和维护阶段,AI 可以监控应用性能,预测潜在的故障,并自动执行修复操作。总之,AI 编程助手的发展预示着软件工程领域的一个重大转变,企业 CIO 和软件开发领导者们需要认识到这一转变,并准备将其整合到自身的工作流程中,以充分利用这些技术的潜力,从而在整个软件20开发生命周期中实现生产力和效率的整体提升。2.超越生产力,AI 编程助手还可以提高开发者的工作体验开发者从 AI 编程助手获得了满足感和幸福感,因为 AI 编程助手减轻或消除了开发工作中基础性的、重复性任务导致的痛苦,这对于企业留住并激发其最优秀的开发人才的积极性具有重要作用。Git

42、Hub 研究显示,超过 60%使用 AI 编程助手的开发者表示,满意度和幸福感都有所提升(见图 6)18。开发者将 AI 编程助手视为提高生产力的生成式 AI 工具,但它不仅限于此,更进一步而言,AI 编程助手减轻了开发者的认知负担。这种轻松感,会让开发者更有动力和精力去承担更具有挑战性的工作,进而获得更高级的成就感。图 6:通过使用 AI 编程助手,开发者可以获得幸福感和满意度首先,AI 编程助手能够直接减少开发者的重复性工作,诸如编写常见代码、企业代码库的拥有的代码、或者创建日常文档任务。一项研究显示,开发者最倾向于使用 AI 编程助21手的原因之一就在于,它们能帮助开发者减少击键次数,快

43、速完成编程任务,并回忆起语法结构。”通过这种方式,AI 编程助手技术间接地促进了开发者的整体满意度19。其次,AI 编程助手还可以加强开发者之间的协同效力,通过更快速和更清晰的沟通,开发人员可以更好地理解用户的意图并交付更有价值的软件。相比较于一些传统的开发赋能工具,AI 编程助手不仅仅是减少无效的沟通和协作,而是让现有的沟通和协作更加有效。AI 编程助手通过自然语言提示交互,正在逐步成为接入众多工程系统的接口,能够让开发者们在同一开发环境下工作,并向系统请求协助完成开发任务,例如在写代码的过程中请求生成测试数据的帮助。另外,AI 编程助手有助于改善书面沟通,其内置的语法工具可以将口头对话转换

44、为文本并进行总结。还可以让翻译更快速、更准确的进行,跨国团队成员合作的时候会减少沟通错误。AI 编程助手甚至可以通过只言片语就理解开发者想要描述的一个复杂概念,进而将其转换成完整描述,减轻开发者在沟通过程中投入的精力。同时,AI 编程助手可以更好的做好开发者之间的信息分享。软件开发的许多方面的知识沉淀,包括设计模式、安全指南、API、语语法和各类档,是企业通用的资产,当然还包括一系列的历史代码知识库和撰写代码的指导原则等等。这类沉淀的资产和知识,需要从企业的资深开发者传递给初级开发者或者新入职的开发者,而 AI 编程助手通过模型微调、提示工程、知识库对接等功能,助力这种知识转移。然后,AI 编

45、程助手可以减轻开发者日常工作中的认知疲劳(Cognitive Fatigue),帮助开发者进入并维持在心流状态。认知疲劳对决策产生强大的负面影响,从而影响生产力、质量和创新20。认知疲劳的一个原因是上下文切换,当开发者被打断或因当前任务受阻而转换到其它任务时就会发生该状况,开发者的大脑需要重新调整注意力,加载新的工作内容和相关记忆,这一过程消耗大量的认知资源,而频繁的切换则加重了疲劳程度。开发者经常会面22对这样的局面,这对一个处于高压下的开发者而言是非常让人苦恼的。AI 编程助手可以帮助开发者减少过多的任务切换和中断,在它们的支持下,开发者可以保持在单一的开发环境中,并提示系统帮助完成开发任

46、务。例如,开发人员可以在编写代码的同时在相同的环境中获得帮助创建测试数据,或者进行相关的对话和查询。避免频繁切换和任务中断可以显著降低开发者的认知疲劳,提高他们的效率和流畅度。研究显示,不需要切换上下文的开发者描述自己会更容易进入心流状态,在这种状态下他们的生产力极高21。开发者全神贯注于手头的任务,注意力高度集中,思维流畅,创新能力和工作效率得以最大化。最后,AI 编程助手让开发者拥有选择推进工作方式的机会,而非一人闷头苦想。在确定解决问题或执行任务的具体步骤时也会感到很大压力,因为这项活动本质上是开放式的,充满了未知与不确定性。开发者在评估不同行动方案、尝试权衡利弊、思考影响和短期聚焦(马

47、上解决这个问题,快刀斩乱麻)与长期视角(现在投入更多精力以产出更持久解决方案,一劳永逸)之间的相对重要性时,也同样会承受巨大压力。AI 编程助手可以通过自然语言交互,让开发者在开发环境中输入提示来寻求建议,AI 编程助手一般都可以为开发者提供多个候选计划,并对每个计划的优缺点进行论证,还可以帮助开发者跳过最初的头脑风暴环节,直接从候选选项中评估选择,或者将其作为进一步头脑风暴的提示。虽然工作体验的改善是一个相对比较复杂的的感受和经历,但是其可以让生产力获得成倍提升。这种乘数效应意味着 AI 编程助手的整体影响可能远超最初的预期(见图 7)。因此,前瞻性企业正在谋求通过使用 AI 编程助手来直接

48、改善开发者团队的体验,进一步增加生产力优势。23图 7:Developer Experience Assessment Framework3.保持理性,穿越炒作:从 AI 编程助手工具的采用中获得最大价值企业对于 AI 编程助手为开发者带来的生产力提升和工作体验改善充满期待,这促使企业迅速采用这些工具。但是,这并不意味着企业在部署 AI 编程助手以及在未来扩展部署的时候,都能看到其能够带来如厂商宣传那样的积极影响。围绕生成式 AI 的炒作往往会让公司领导层对部署 AI 编程助手可能实现的目标有不切实际的期望,为此,企业要有一个行之有效的方法,让 AI 编程助手带来的价值能够满足企业利益相关者的

49、诉求。开发者的经验水平、开放性文化、工程熟练度、交付压力和领导期望都会影响他们如何尝试使用 AI 编程助手以及他们所能够获得的价值。另外,许多组织在衡量 AI 代码助手的真实影响时面临挑战,因为缺乏基准指标、明确目标和预期结果(如提高质量或速度)。要想从 AI 编程助手获得更大的业务价值,需要将它们应用在正确的地方和面向正确的任务上,还要控制不切实际的期望和误解,具体措施如下:确保企业已经拥有项目成功部署的先决条件。首先,AI 编程助手在执行其预训练数据里出现过的任务效果最佳,应先将其用于使用常见编程语言的领域,如 Python、Java、24C+、Go 等。其次,企业内部要已经运行了一个良好

50、的软件开发流程,包括代码审查、质量检查等,保证 AI 编程助手的输出可用性,避免因为新工具影响正常的开发流程。然后,将 AI 变成助手用于相对见效快的领域,如编写基础代码、测试环节或者创建文档,从而加快实现收益的速度。最后,将 AI 编程助手优先提供给资深开发团队使用。定义企业部署 AI 编程助手能够带来的预期效果,并使其指标化。在向更广泛的开发者推出之前,通过 POC 先在一个小型团队里使用进而确定行之有效符合自身组织的方法论。根据经验,将 POC 的目标定位成节省开发者时间、提高生产力是好的开始。为此,企业要为之定义好团队的生产力指标以及如何衡量它,这样才能观察和记录下来 AI 编程助手带

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服