Table of Contents
Fetching ...

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

TL;DR

This position paper surveys AI for software engineering, outlining a broad set of tasks beyond code generation and identifying nine cross-cutting challenges that limit current systems. It introduces a three-measure taxonomy for evaluating concrete SWE tasks—scope, logical complexity, and level of human intervention—and argues for progress through data, training, and inference-time strategies, including semantic-aware embeddings and tool-integrated, human-guided workflows. The authors present forward directions across data curation, environment design for code RL, adaptation to diverse codebases, and robust human–AI collaboration, emphasizing integration with SWE tooling and CI/CD pipelines. Overall, the work aims to accelerate practical, scalable AI support for software engineers by highlighting actionable research directions and the critical role of evaluation, human collaboration, and neurosymbolic tools.

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.

Challenges and Paths Towards AI for Software Engineering

TL;DR

This position paper surveys AI for software engineering, outlining a broad set of tasks beyond code generation and identifying nine cross-cutting challenges that limit current systems. It introduces a three-measure taxonomy for evaluating concrete SWE tasks—scope, logical complexity, and level of human intervention—and argues for progress through data, training, and inference-time strategies, including semantic-aware embeddings and tool-integrated, human-guided workflows. The authors present forward directions across data curation, environment design for code RL, adaptation to diverse codebases, and robust human–AI collaboration, emphasizing integration with SWE tooling and CI/CD pipelines. Overall, the work aims to accelerate practical, scalable AI support for software engineers by highlighting actionable research directions and the critical role of evaluation, human collaboration, and neurosymbolic tools.

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.

Paper Structure

This paper contains 50 sections, 1 figure.

Figures (1)

  • Figure 1: Overview of Challenges (Sec. \ref{['sec:challenges']}) and Paths Forward (Sec. \ref{['sec:paths']}) in AI for Software Engineering