当前位置: 首页 > 科技观察

人工智能正在改变软件开发范式_0

时间:2023-03-12 12:36:07 科技观察

软件开发人员正在使用人工智能来帮助编写和审查代码、检测错误、测试软件和优化开发项目。这种帮助正在帮助公司更有效地部署新软件,并使新一代开发人员更容易学习编码。这些是德勤最近发布的软件开发人工智能报告的结论,并在最近的一篇福布斯文章中进行了总结。作者DavidSchatsky和??SourabhBumb描述了一系列公司如何在过去18个月内推出数十种人工智能驱动的软件开发工具。在截至2019年9月的一年中,初创公司筹集了7.04亿美元,而且市场还在增长。新工具可用于帮助减少击键次数、检测编写软件时的错误以及自动执行确认软件质量所需的许多测试。这在越来越依赖开源代码的时代很重要,因为开源代码可能会引入错误。尽管有些人担心自动化可能会夺走程序员的工作,但德勤的作者认为这不太可能。“在大多数情况下,这些人工智能工具正在帮助和增强人类,而不是取代他们,”沙茨基说。“这些工具有助于使编码和软件开发民主化,使没有接受过编码培训的个人能够填补人才缺口并学习新技能。还有AI驱动的代码审查,可在您运行代码之前提供质量保证。”Forrester在2018年的一项研究中发现,37%的软件开发公司正在使用AI驱动的编码工具。这个百分比现在可能更高,因为Tara、DeepCode、Kite、Functionize和DeepTabNine等公司都提供自动化编码服务。成功似乎正在加速这一趋势。Schatsky说:“除了减少成本和时间之外,许多实施这些人工智能工具的公司还看到了最终产品质量的提高。”德勤研究表明,人工智能可以帮助缓解人才开发人员长期短缺的问题。糟糕的软件质量去年使美国组织损失了大约3190亿美元。人工智能的应用有可能缓解这些挑战。德勤认为人工智能在软件开发的许多阶段都有帮助,包括:项目需求、编码审查、错误检测和解决,以及更多通过测试、部署和项目管理。IBM工程师从Watson项目中学习AI开发经验BillHiggins是北卡罗来纳州罗利市的IBM杰出工程师,在公司从事软件开发工作20年,最近在Medium上发表了一份关于AI对软件开发影响的报告。组织需要“忘记”他们过去是如何开发软件的。作者说:“如果个人难以适应,那么公司适应起来就困难一百万倍。”Higgins是IBMWatson小组内AIforDevelopers任务的负责人。“事实证明,我缺乏人工智能方面的个人经验是一种优势,”他说。他必须通过自己的学习之旅,才能对需要适应的开发者有更深刻的理解和同理心。希金斯说,为了了解软件开发中的人工智能,他研究了其他人如何应用它(问题空间)以及使用人工智能优于替代方案的案例(解决方案空间)。这对于理解什么是可能的和避免“魔术思维”很重要。作者说,他的旅程是他在宾夕法尼亚州立大学获得计算机科学学位以来完成的最紧张、最艰难的研究。“我很难重新思考从经验中改进的软件系统,而不是只做你告诉他们做的软件系统,”他说。IBM开发了一个概念模型来帮助企业思考基于AI的转型,称为AILadder。阶梯有四个梯级:收集、组织、分析和注入。大多数企业都拥有大量数据,这些数据通常以孤立的IT工作或收购方式进行组织。一个给定的企业可能有20个数据库和三个数据仓库,其中包含关于客户的冗余和不一致的信息。这同样适用于其他数据类型,如订单、员工和产品信息。“IBM在概念上将AI阶梯推出了这个泥潭,”希金斯说。在注入阶段,公司致力于将经过训练的机器学习模型集成到生产系统中,并设计反馈回路,以便模型可以根据经验不断改进。人工智能注入的一个例子是Netflix推荐系统,它由复杂的机器学习模型提供支持。IBM已经确定了API、预构建机器学习模型和可选工具的组合,用于打包、收集、组织和分析常见机器学习领域(例如自然语言理解、与虚拟代理的对话、视觉识别)中的AI阶梯梯级、语音和企业搜索。例如,Watson的自然语言理解变得丰富而复杂。机器学习现在擅长理解语言的许多方面,包括概念、概念之间的关系和情感内容。现在,NLU服务和基于机器学习的自然语言处理的研发可以通过优雅的API和支持的SDK提供给开发者。“因此,开发人员今天可以开始在他们的应用程序中利用某些类型的人工智能,即使他们缺乏数据科学或机器学习方面的任何正式培训,”希金斯说。