Prompts Are Programs Too! Understanding How Developers Build Software Containing Prompts
<|reference_start|>Prompts Are Programs Too! Understanding How Developers Build Software Containing Prompts: The introduction of generative pre-trained models, like GPT-4, has introduced a phenomenon known as prompt engineering, whereby model users repeatedly write and revise prompts while trying to achieve a task. Using these AI models for intelligent features in software applications require using APIs that are controlled through developer-written prompts. These prompts have powered AI experiences in popular software products, potentially reaching millions of users. Despite the growing impact of prompt-powered software, little is known about its development process and its relationship to programming. In this work, we argue that some forms of prompts are programs, and that the development of prompts is a distinct phenomenon in programming. We refer to this phenomenon as prompt programming. To this end, we develop an understanding of prompt programming using Straussian grounded theory through interviews with 20 developers engaged in prompt development across a variety of contexts, models, domains, and prompt complexities.   Through this study, we contribute 14 observations about prompt programming. For example, rather than building mental models of code, prompt programmers develop mental models of the FM's behavior on the prompt and its unique qualities by interacting with the model. While prior research has shown that experts have well-formed mental models, we find that prompt programmers who have developed dozens of prompts, each with many iterations, still struggle to develop reliable mental models. This contributes to a rapid and unsystematic development process. Taken together, our observations indicate that prompt programming is significantly different from traditional software development, motivating the creation of tools to support prompt programming. Our findings have implications for software engineering practitioners, educators, and researchers.<|reference_end|>
@article{liang2024prompts,
    title={Prompts Are Programs Too! Understanding How Developers Build Software
  Containing Prompts},
    author={Jenny T. Liang, Melissa Lin, Nikitha Rao, Brad A. Myers},
    journal={arXiv preprint arXiv:2409.12447},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.12447},
    primaryClass={cs.SE cs.AI cs.HC}
}