Challenges and Paths Towards AI for Software Engineering
It addresses the problem of automating software engineering tasks for researchers and practitioners, but is incremental as it reviews existing progress and proposes directions.
The paper discusses the challenges and future directions for AI in software engineering, aiming to achieve high automation levels where humans focus on critical decisions while routine tasks are automated, but does not present specific results or numbers.
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.