Large language models (LLMs) show promise for automating software development by translating requirements into code. However, even advanced prompting workflows like progressive prompting often leave some requirements unmet. Although methods such as self-critique, multi-model collaboration, and retrieval-augmented generation (RAG) have been proposed to address these gaps, developers lack clear guidance on when to use each. In an empirical study of 25 GitHub projects, we found that progressive prompting achieves 96.9% average task completion, significantly outperforming direct prompting (80.5%, Cohen's d=1.63, p<0.001) but still leaving 8 projects incomplete. For 6 of the most representative projects, we evaluated each enhancement strategy across 4 failure types. Our results reveal that method effectiveness depends critically on failure characteristics: Self-Critique succeeds on code-reviewable logic errors but fails completely on external service integration (0% improvement), while RAG achieves highest completion across all failure types with superior efficiency. Based on these findings, we propose a decision framework that maps each failure pattern to the most suitable enhancement method, giving practitioners practical, data-driven guidance instead of trial-and-error.
Is this Build Failure Related to my Patch? An Empirical Study of Unrelated Build Failures in Continuous Integration
University of Otago School of Computing(奥塔哥大学计算机学院);Royal Military College of Canada Department of Mathematics and Computer Science(加拿大皇家军事学院数学与计算机科学系)
Understanding Automated Web GUI Testing: An Empirical Study Across Exploration Strategies and State Abstractions
SCS, Peking University(北京大学计算科学研究所);Key Lab of HCST (PKU), MOE(北京大学智能技术与系统国家重点实验室);University of Texas at Dallas(德克萨斯大学达拉斯分校);National Engineering Research Center of Software Engineering, MOE(软件工程国家工程研究中心)
"So Am I Dr. Frankenstein? Or Were You a Monster the Whole Time?": Mitigating Software Project Failure With Loss-Aversion-Aware Development Methodologies