LLMs' Reshaping of People, Processes, Products, and Society in Software Development: A Comprehensive Exploration with Early Adopters

作者: Benyamin Tabarsi, Heidi Reichert, Ally Limke, Sandeep Kuttal, Tiffany Barnes

发布时间: 2025-03-10

来源: arxiv

研究方向: 大型语言模型(LLM)在软件开发中的应用和影响

主要内容

本文通过半结构化访谈研究了16位早期采用LLM的软件开发者,探讨了LLM在软件开发生命周期中各个阶段的应用,包括对开发者、软件工程流程、软件产品以及社会的影响。

主要贡献

1. 提供了首个关于开发者使用LLM工具在现实软件开发场景中的定性分析,为LLM的实际效用和局限性提供了新的见解。

2. 揭示了开发者将LLM工具集成到其工作流程中的策略,突出了有效实践和常见陷阱,为未来LLM工具在专业环境中的采用和优化提供了指导。

3. 为先前关于LLM对软件开发技术影响的实证研究提供了佐证,同时引入了LLM更广泛的社会经济和教育影响的新见解,包括其对工作角色和教育课程的可能影响。

4. 分析了LLM在软件开发生命周期(SDLC)各个阶段的影响,更深入地理解了这些工具如何影响技术任务(如编码、测试和调试)以及以人为中心的活动(如学习、协作和决策)。

研究方法

1. 半结构化访谈

2. 主题分析

3. 问卷调查

实验结果

研究发现,LLM在软件开发中具有以下影响: - 提高开发者生产力,包括自动化重复性任务、简化搜索体验、提供模板和代码翻译、加速学习、简化设置和安装、补充教程和文档、改进语法/实现回忆等。 - 促进开发者学习,包括个性化教育和技能提升、解释代码、提供广泛的知识和多样化的数据集、演示最佳编码实践等。 - 支持开发者个人成长,包括增强信心、独立性、访问信息和提高工作满意度等。 - 辅助开发者非技术任务,包括咨询和决策、总结文本和文档、支持内部沟通等。 - 影响软件工程流程,包括需求和管理、设计和构思、实现、测试和代码审查、调试、重构和文档编写等。 - 影响软件产品,包括生成代码的质量和复杂性、最佳用例、安全性等。 - 影响软件行业和教育,包括与现有实体或角色的比较、对就业市场的最小影响、广泛的使用、降低进入门槛、改变一般工作市场、缺乏指南、降低对某些角色的需求、损害入门级职位、利用LLM进行求职面试等。

未来工作

未来研究可以关注以下方面: - 提高开发者对提示工程的认识。 - 教育开发者如何进行问题分解。 - 培养对未来软件开发者的期望。 - 将LLM作为替代团队成员。 - 鼓励有效使用LLM进行编程。 - 强调安全实践。 - 教育开发者关于LLM支持的IDE扩展的好处。 - 为特定行业定制答案。 - 为特定个人定制答案。 - LLM的发展和持续限制。 - 确保LLM技术的负责任部署,以利用其优势的同时最大限度地减少潜在危害。