【导读】用AI工具辅助编程已是未来趋势。
编程不仅仅是编写和发布代码,还需要熟练使用诸多开发工具来进行版本控制、团队协作、配置环境等。
而随着GitHub Copilot和ChatGPT类大语言模型的发布,编程这件事究竟是变难了(需要学习一个新AI工具),还是变简单了(让AI辅助编程)?
最近,GiHub展开了一项关于「AI对开发者体验影响」的调查,有500名美国企业开发人员参与了调研报告,主要关注AI工具在生产力、团队协作,以及如何在工作环境中发挥最大作用等方面的影响。
调查结果发现:
1. 92%的美国开发人员在工作内和工作外都会使用AI编程工具,并且70%的程序员认为人工智能可以带来效率的提升。
2. 构建和测试中的等待问题仍然严重。
尽管在DevOps上,全行业都在积极投资和开发,不过开发人员仍然表示,除了编写代码之外,在工作中做的最耗时的事情是等待构建和测试。
3. 开发者需要更多的合作。
企业环境中的开发人员平均需要与21名工程师一起工作,他们希望协作成为绩效评估的首要指标。
4. 开发者认为AI会有所帮助,超过五分之四的开发人员希望AI编码工具能让开发团队更具协作性。
5. 开发人员也看到了AI带来的巨大优势。
70%的受访者表示,希望AI编码工具可以帮助提高代码质量、缩短完成时间和解决事故。
GitHub首席产品官Inbal Shani表示,「工程领导者需要思考,代码量是否仍然是衡量生产力和产出的最佳方式。」
答案显然是否定的。
Inbal Shani认为,「大规模的创新就是通过提高开发人员的生产力和满意度,并使开发者能够每天都做最好的工作。」
根据调查,开发人员希望提高技能、设计解决方案,从最终用户那里获得反馈,并对团队沟通技巧进行评估。
换句话说,用AI生成代码是达到目的的手段,而不是目的本身。
用AI提升绩效
从调查结果来看,几乎所有(92%)的开发人员都会在工作中使用AI编码工具,大多数(67%)开发者在工作环境和个人时间中都使用过,不过还有6%的开发人员表示他们只在工作之外使用编码辅助工具。
超过70%的开发者表示,AI辅助编程已经改变了开发人员处理日常工作的方式,这一趋势也迫使项目领导人不得不采购企业级AI工具以避免开发人员使用未经批准的辅助工具。
不过,企业也应该建立使用人工智能工具的管理标准,以确保辅助工具的用途符合道德规范并且高效率。
用AI=高绩效
越来越多的开发人员开始在工作中使用AI工具,调查结果表明,开发者不仅仅只是出于好奇或无聊的兴趣,而是认定AI编码工具可以帮助提升效率。
开发人员表示,AI编码工具可以满足现有的性能标准、提高代码质量、更快地输出代码,而且生产级事故也会更少,这些指标也应该用来衡量代码量以外的绩效。
开发人员普遍认为人工智能编码工具将融入他们现有的工作流程并带来更高的效率,但他们不认为人工智能会改变软件的制作方式
大约三分之一的开发人员报告说,部门经理目前会根据编写的代码量来评估绩效,而使用AI可以更快地编写更多的代码,不过需要注意的是,开发者的代码量可能并不一定与其业务价值相对应。
随着软件开发中使用的人工智能工具的增加,代码量也会飞速增长,项目领导者需要思考「代码量」是否仍然是衡量生产率和输出的最佳方法。
AI促进团队协作
除了提高个人表现外,超过五分之四(81%)的受访开发人员表示,AI编码工具将有助于提高团队和组织内部的协作。
事实上,安全审查、项目规划和结对编程都需要开发者之间的协作,也是开发团队期望并且应该在AI编码工具的帮助下完成的任务,调查结果也表明,代码和安全审查仍然很重要。
值得注意的是,开发人员认为使用AI编码工具可以让他们有更多时间专注于解决方案设计,对于开发团队来说也有益处,意味着开发人员会花更多的时间用AI设计新功能和产品,而非编写模版代码。
开发人员已经在使用生成式AI编码工具来自动化他们的部分工作流程,为安全审查、项目规划和结对编程等更多协作项目腾出了时间。
用AI防止员工倦怠
根据调研中开发人员的说法,AI编码工具不仅可以帮助提高整体生产力,还可以提供提升技能的机会,帮助打造更聪明的员工队伍。
其中57%的开发人员认为AI编程工具可以帮助他们提高编程语言技能,也是最直接、最大的受益点。
开发人员一直将「学习新技能」列为让工作更积极的头等大事,但也有30%的人表示,学习和开发会对他们的整天工作产生负面影响,可能会在工作日内增加工作量。
41%的开发者认为AI工具也可以帮助减少认知上的负担,因为人的精力都是有限的,更快地完成工作可以减少倦怠感。
在之前的一份研究中,高达87%的开发者认为GitHub Copilot可以帮助完成重复性任务,保留脑力,可以专注于解决软件开发中更具挑战性和创新性的工作。
AI正在全面改善开发者体验
在调查中,开发人员表示,使用AI编码工具可以更好地满足代码质量、完成时间和事故等标准,这些也是开发人员自认为关键的代码评估指标。
AI编码工具还可以帮助降低编码错误的可能性并提高代码的准确性,最终为用户带来更可靠的软件、更高的应用程序性能,以及让开发者取得更好的绩效指标。
随着人工智能技术的不断进步,这些编码工具很可能会对开发人员的绩效和技能提升产生更大的影响。
AI编码工具正在分层到现有的开发人员工作流程中,并创造更高的效率。
开发人员认为AI编码工具可以提高生产力,但他们并不认为AI工具会从根本上改变软件开发的生命周期。
自动化和人工智能的使用已经成为开发人员工作流程的一部分,目前已经有诸如基于机器学习的安全检查和CI/CD管道等工具,但这些工具并没有改变操作,而是通过提高效率,为开发者腾出了更多时间专注于开发解决方案。
除了探索人工智能工具外,工程和商业领导者还应该考虑以下三个要点来改善开发人员体验:
1. 使用工具、流程和实践帮助开发者流畅工作以提高生产力、推动影响力,并进行创造性和有意义的工作。
2. 打破组织孤岛,为开发人员提供有效沟通的机会来增强协作。
3. 对人工智能工具进行投资,预留出给开发人员提升技能的时间和空间,可以帮助公司布局未来,提前进行实验和技术创新。
参考资料:
https://www.zdnet.com/article/github-developer-survey-finds-92-of-programmers-using-ai-tools/
https://github.blog/2023-06-13-survey-reveals-ais-impact-on-the-developer-experience/