Challenges and Paths Towards AI for Software Engineering
Alex Gu, Naman Jain, Wen-Ding Li, Manish Shetty, Yijia Shao, Ziyang Li, Diyi Yang, Kevin Ellis, Koushik Sen, Armando Solar-Lezama
2025-03-31
Summary
This paper discusses how AI is being used to help with software engineering and what challenges need to be overcome to make it even better.
What's the problem?
Even though AI is making progress in software engineering, there are still many things it can't do well, which limits how much it can automate the process.
What's the solution?
The paper identifies specific tasks AI can help with in software engineering, points out the limitations of current AI approaches, and suggests areas for future research.
Why it matters?
This work matters because it can help guide researchers and developers in making AI that can automate more of the software engineering process, freeing up humans to focus on the more important decisions.
Abstract
AI for software engineering has made remarkable progress recently, becoming a notable success within generative AI. Despite this, there are still many challenges that need to be addressed before automated software engineering reaches its full potential. It should be possible to reach high levels of automation where humans can focus on the critical decisions of what to build and how to balance difficult tradeoffs while most routine development effort is automated away. Reaching this level of automation will require substantial research and engineering efforts across academia and industry. In this paper, we aim to discuss progress towards this in a threefold manner. First, we provide a structured taxonomy of concrete tasks in AI for software engineering, emphasizing the many other tasks in software engineering beyond code generation and completion. Second, we outline several key bottlenecks that limit current approaches. Finally, we provide an opinionated list of promising research directions toward making progress on these bottlenecks, hoping to inspire future research in this rapidly maturing field.