领先组织强调了在整个应用程序开发生命周期中初始实施生成式人工智能的关键要点,包括好处、限制、团队影响和经验教训。
来源:DOTSHOCK / SHUTTERSTOCK
生成式人工智能已经对IT的多个领域产生了影响,特别是在软件开发方面。
早期用例包括代码生成和文档、测试用例生成和测试自动化,以及代码优化和重构等。
尽管如此,用于软件开发的人工智能仍处于新阶段,因此技术领导者和软件团队可能会遇到颠簸。但早期回报表明,该技术可以为创建和增强应用程序的过程提供好处,但需要注意。
【睿观:生成式人工智能(Generative AI)在软件开发领域的应用,通过自动化和优化代码的生成、文档编写、测试用例创建等任务,对IT行业产生了深远影响。这些技术不仅提高了开发效率,还改进了软件质量和可靠性。以下是针对生成式人工智能在软件开发中应用的专业解释,包括其早期用例、潜在益处及注意事项。
(一)生成式人工智能的早期用例
1.代码生成:通过自然语言处理(NLP)技术,开发者可以描述功能需求,AI系统则自动生成相应的代码。这简化了开发流程,使非专业人员也能参与到软件开发中。
2.自动生成文档和注释:AI能够根据代码逻辑自动生成文档和注释,减少了开发人员的工作量,同时提高了文档的准确性和更新频率。
3.测试用例生成与自动化测试:AI算法能够基于软件的功能和性能需求自动生成测试用例,并执行自动化测试,以快速识别软件中的缺陷和问题。
4.代码优化和重构:通过分析现有代码,AI可以提出优化建议或自动执行代码重构,以提高软件的性能和可维护性。
(二)潜在益处
1.提高开发效率:自动生成代码和文档减少了重复性工作,让开发者有更多时间专注于复杂和创新性的任务。
2.提升软件质量:通过自动化测试和代码优化,生成式AI有助于提高软件的稳定性和性能,减少人为错误。
3.降低门槛:使非专业开发者也能通过自然语言描述来参与软件开发,拓宽了编程的可及性。
(三)注意事项
1.依赖性风险:过度依赖AI生成的代码可能导致开发者忽视基本的编程技能和原理理解。
2.质量控制:AI生成的代码和文档可能不完美,需要人工审核和调整,以确保符合质量标准。
3.安全性问题:自动生成的代码可能包含安全漏洞,特别是在没有足够监督和验证的情况下。
4.道德和责任:当由AI参与生成的代码导致问题时,确定责任归属可能会变得复杂。
尽管生成式AI在软件开发中提供了显著的潜在好处,但仍然处于发展初期。技术领导者和开发团队需要谨慎采用,确保充分理解技术的限制和挑战。持续的学习、适应和监督是实现最佳利用生成式AI技术的关键。】
一、在整个应用程序开发生命周期中的帮助
客户服务软件提供商Freshworks的IT高级副总裁兼首席信息官Prasad Ramakrishnan说,Gen AI“打开了开发人员可以在对话类型范式中利用的知识体系。”
Ramakrishnan说:“这几乎感觉就像有一个桌边的同事可以集思广益。”“我们最初推出的Gen AI使我们的团队能够在几天内而不是几周内开发代码。”
Ramakrishnan说,软件开发生命周期成功的关键是质量保证(QA)和验证过程。他说:“任何开发组织的成熟度都可以很容易地用QA投资的规模和类型来衡量。”“Gen AI在协助执行代码审查和及早发现潜在问题方面发挥着作用。”
Ramakrishnan说,人工智能世代也通过自动化减少了完成测试所需的时间。他说:“异常检测是通用人工智能可以帮助识别隐藏缺陷和地雷的另一个领域。”
首席信息官Nitin Tandon表示,金融服务公司Vanguard正在“快速安全地”试验生成人工智能工具——具有人类监督和专业知识——为开发人员带来生产力。
他说:“除了内容开发和知识管理外,软件和编码开发仍然是实验的高价值领域,以努力提高运营效率。”
Tandon说,Gen AI开发试点计划的早期结果令人鼓舞,开发人员报告说,Gen AI简化了代码生成、调试和代码一致性。
Tandon说:“初级开发人员报告了最大的生产力提升,但这仍然是一个积极研究和实验的领域。”
“此外,我们正在研究在我们的代码库上培训LLM[大型语言模型],以进一步提高我们的开发人员和数据工程师的生产力。凭借我们在Vanguard的庞大开发人员人才库,即使生产力的适度提高,也可以为我们的客户释放有意义的价值。”
【睿观:生成式人工智能(Generative AI)正在软件开发领域发挥着革命性的作用,通过促进代码的快速开发、自动化测试和质量保证过程,从而显著提高了开发效率和软件质量。
(一)Generative AI在软件开发中的应用
1.加速代码开发:Generative AI可以理解开发者的需求并快速生成相应的代码,大幅减少了从需求到实现的时间。这种技术使团队能够在几天内完成原本需要几周的工作,这显著提升了开发速度和效率。
2.质量保证(QA)与验证:QA是衡量开发组织成熟度的重要指标。Generative AI通过自动执行代码审查和早期识别潜在问题,提升了软件的质量和可靠性。这种自动化的测试和异常检测减少了人工所需的时间和努力,同时增加了发现隐藏缺陷的可能性。
3.提升开发人员生产力:Generative AI在代码生成、调试和保持代码一致性方面的应用,为开发人员带来了显著的生产力提升。特别是对于初级开发人员,这种技术的应用大大简化了他们的工作流程。
(二)人类监督与专业知识的重要性
尽管Generative AI提供了许多好处,但人类监督和专业知识仍然至关重要。AI生成的代码和解决方案需要通过专业的人眼来审核和优化,以确保它们满足高标准的质量和安全要求。例如,Vanguard正在以人类监督的方式安全地试验Generative AI工具,以确保技术的有效利用和风险管理。
(三)Generative AI的前瞻性应用
随着大型语言模型(LLM)的发展,企业有机会在其代码库上进行训练,进一步提高开发人员和数据工程师的生产力。这种个性化的AI工具能够更好地理解和适应企业的特定需求,从而提供更精准的支持。Vanguard的实践显示,即使是适度的生产力提升,也能为客户释放出有意义的价值,特别是在大型开发团队中。
综上所述,Generative AI正在软件开发领域中扮演着越来越重要的角色,它不仅加速了开发过程,还提升了软件的质量和开发人员的生产力。然而,人类监督和专业知识的结合是实现这些好处的关键,确保AI技术的应用既高效又安全。】
金融技术提供商Momnt正在使用Github Copilot,这是一个由微软GitHub和OpenAI开发的基于云的人工智能工具,通过自动完成代码来帮助各种开发平台的用户。
Momnt的软件开发团队,包括工程和QA专业人员,使用GitHub Copilot来支持公司贷款平台的开发,以及其他工具。
总裁兼首席技术官Brian Lanehart说:“我们希望我们的软件开发人员和工程师使用人工智能和代人工智能工具来帮助生成各种测试用例,我们的质量保证工程师将使用这些工具在不牺牲时间的情况下更彻底地进行评估。”
Lanehart说:“到目前为止,我们的团队对新技术解决方案和人工智能的集体接受是积极的。”“他们仍然很好奇,寻找在日常流程中实施的新工具。这样做不仅可以简化日常任务,还可以提高团队的整体效率。”
Lanehart说,随着开发团队越来越熟悉这些工具,他们对工具的理解以及将它们应用于不同业务场景的能力将带来更大的价值。
Lanehart说:“例如,能够将整个应用程序请求完全传达给生成所有必要代码的人工智能,这将大大减少任务时间线。”他说,这意味着工程师或团队可以自由地花更多时间创造性地或战略性地思考整个项目以及如何进一步改进它。
首席技术官Ali Dasdan表示,软件公司ZoomInfo的开发团队渴望在去年新一代人工智能工具可供大规模使用后进行实验。
最早的用例之一为该公司的软件开发人员提供了访问Github Copilot的权限。Dasdan说,在初步成功后,ZoomInfo已开始在整个组织中整合Gen AI,以提高生产力。一个例子是文档搜索和总结。
“软件开发需要大量的文档,”Dasdan说。“产品要求和架构设计等文档在运营良好的组织中是标准的,”但开发团队需要大量时间来审查这些文档。他说:“Gen AI通过在短短几分钟内总结和索引这些文档,腾出了大量时间。”
试验的成功使该公司获得了几乎所有软件开发人员的许可证。达斯丹说:“然而,我们的工程师仍然需要审查该工具创建的代码。”“我们已经接受了数万行代码,我们意识到节省了大量时间。”
二、限制、团队影响和经验教训
早期使用一代人工智能的关键收获之一是,它不会取代人类开发人员。
该公司数据和人工智能实践负责人Kirstie Tiernan说,在IT服务提供商BDO Digital,最初对Gen AI自动生成复杂软件的潜力产生了“兴奋之波”。
Tiernan说:“然而,我们很快了解到,人工智能是增强人类专业知识的工具,而不是取代它。”“需要人工监督,以确保人工智能生成代码的质量和功能,这种需要很快变得明显。这是一种伙伴关系,人工智能处理一些繁重的工作,使开发人员能够专注于战略性问题解决。”
IT服务提供商BDO Digital正在经历的一个关键教训是将人工智能工具与现有工作流程集成的重要性。Tiernan说:“这不仅仅是采用新工具;[它]更多的是关于开发团队如何运营、沟通和协作。”“集成过程突出了我们所有开发实践中对灵活性和适应性的需求。”
IT服务提供商BDO Digital更有趣的惊喜之一是通用人工智能对创造力和创新的影响。Tiernan说:“通过自动化日常任务,开发人员可以自由地应对更复杂的挑战,并探索更多创新的解决方案。”“看到人工智能如何成为人类创造力和构思的催化剂,真是令人兴奋。”
Momnt的Lanehart说,对于任何新技术解决方案,最大的挑战之一是确定团队应该在多大程度上集成或依赖该工具。
他说:“我们的核心信念之一是利用技术来赋权和支持人们。”“因此,我们知道我们不希望通用人工智能工具取代我们的员工。相反,我们希望这些工具能够补充这些人为团队带来的技能,并帮助他们更有效、更高效地运作。”
Lanehart说,整个技术行业对能够监督、实施和运行Gen AI工具的人的需求正在增加。例如,他说,这可能是一个在产品开发团队中工作的员工,但其核心专业知识是ChatGPT或Copilot。
Lanehart说,随着通用人工智能变得越来越普遍,“我们看到拥有使用这些工具交叉培训的人是有价值的。”“我们希望有人能够以不同的方式解决新问题,我们希望他们将这些知识带回我们的团队。”
Lanehart说,Momnt已经开始鼓励其软件开发团队成员扩大对人工智能工具的理解,将其应用于个人兴趣,如音乐、喜剧和其他领域。他说:“发现人工智能在金融科技和个人兴趣中的应用之间的重叠,使我们的团队处于推动新行业增长的独特地位。”
首席人工智能官Akshay Sharma说,医疗保健技术公司Lyric正在利用LLM的力量来改进几个流程。但早期的教训之一是需要做多少工作才能从法学硕士中获得正确的价值。
Sharma说:“开箱即用,他们有点笼统,错过了目标,产生了幻觉。”“但是,有了正确的工程和设计[以及]运行带有提示的实验,我们从中得到了很多启示。我们必须建立大量的实验和测试框架,以持续评估人工智能。”
Freshworks的Ramakrishnan认为,Gen AI有潜力使开发人员能够更快地将应用程序推向市场;“然而,他们的技能需要调整,以成为快速工程的专业人士,”他说。“人工智能生成的编码只会与所要求的提示类型一样有价值和准确。”
此外,Ramakrishnan补充说,人工智能代码需要由经验丰富的开发人员进行验证,以确认准确性。他说:“我怎么强调人类对机器生成代码进行代码审查的价值都不为过。”“尽管人工智能对工作场所具有生产力价值,但它远非完美,需要监督。”
此外,Ramakrishnan说,人工智能的使用引发了一些与算法中引入偏见相关的道德问题,如果不进行检查,可能会导致意想不到的后果。他说:“它还引入了信息安全领域的新考虑因素。”“坏人现在有更广泛的范围,可以在数百万(如果不是数十亿)系统中引入恶意代码。”
未来将不断需要重新调整劳动力,以有效利用人工智能,Ramakrishnan。他说:“话虽如此,我们几乎没有触及通用人工智能生产力价值的表面。”“最好的日子就在我们面前。”
三、采取开发人员的视角
确定通用人工智能对开发团队影响的最佳方法之一是要求团队成员权衡他们的经验。为了收集关于ZoomInfo使用GitHub Copilot的内部反馈,该公司对大约80名开发人员进行了调查。研究表明,Copilot有几个优势。
一个是生成样板和重复代码的能力,这使开发人员能够专注于复杂的逻辑。另一个是大幅减少编写单元测试所需的时间。ZoomInfo的Dasdan说:“许多用户报告说,该工具通过提供有用的代码建议和自动完成行来提高他们的编码速度。”
这些优势为ZoomInfo的开发人员带来了一些好处,大多数人表示Copilot将完成任务所需的时间平均减少了20%。大约三分之二的人表示,使用Gen AI技术使他们能够每次冲刺完成更多任务,大约四分之三的人表示,他们的工作质量得到了提高。
Dasdan说:“基于这些强劲的早期结果,我们预计Gen AI工具将继续提高我们工程师的生产力,并从编写实际生产代码的辅助任务中节省时间。”
四、软件开发的通用人工智能未来
开发领导者相信,人工智能作为开发工具的重要性只会越来越大。
BDO Digital的Tiernan说:“展望未来,通过生成式人工智能提高生产力的潜力是巨大的。”“随着这些工具越来越集成到软件开发结构中,我们可能会看到开发时间和成本的大幅减少。”
例如,Tiernan说,自动生成样板代码并为错误修复提供实时建议,可以让某些传统开发任务所需的时间减半。
Tiernan说:“但真正的游戏规则改变者将是生成式人工智能如何使我们能够更有效地解决更复杂的问题。”“通过人工智能处理常规方面,开发人员可以专注于战略创新,突破软件解决方案的可能范围。”
作者:Bob Violino(鲍勃·维奥里)
Bob Violino(鲍勃·维奥里)是一名自由撰稿人,涵盖了各种技术和商业话题。
译者:宝蓝 @lex