Beyond Code Generation: LLM-supported Exploration of the Program Design Space
J. D. Zamfirescu-Pereira, Eunice Jun, Michael Terry, Qian Yang, Björn Hartmann
TL;DR
This work tackles the problem that conventional LLM-assisted programming emphasizes single-point code outputs, limiting exploration of the broader program design space. It introduces Pail, an agent-based IDE that couples a chat-driven agent with a DesignPanel to surface design alternatives, rationales, and implicit AI decisions, while enabling speculative problem formulations and incremental, diff-based code updates. An 11-participant lab study shows that Pail supports broader exploration of requirements and user-centered designs, but also reveals substantial attention-management and information-overload challenges as AI-driven changes propagate. The findings emphasize the need for careful information shaping and attention control in future AI-augmented programming environments and outline design implications and directions for further research.
Abstract
In this work, we explore explicit Large Language Model (LLM)-powered support for the iterative design of computer programs. Program design, like other design activity, is characterized by navigating a space of alternative problem formulations and associated solutions in an iterative fashion. LLMs are potentially powerful tools in helping this exploration; however, by default, code-generation LLMs deliver code that represents a particular point solution. This obscures the larger space of possible alternatives, many of which might be preferable to the LLM's default interpretation and its generated code. We contribute an IDE that supports program design through generating and showing new ways to frame problems alongside alternative solutions, tracking design decisions, and identifying implicit decisions made by either the programmer or the LLM. In a user study, we find that with our IDE, users combine and parallelize design phases to explore a broader design space -- but also struggle to keep up with LLM-originated changes to code and other information overload. These findings suggest a core challenge for future IDEs that support program design through higher-level instructions given to LLM-based agents: carefully managing attention and deciding what information agents should surface to program designers and when.
