Digital Rubber Duck: Leveraging Large Language Models for Extreme Programming | IEEE Conference Publication | IEEE Xplore

Digital Rubber Duck: Leveraging Large Language Models for Extreme Programming


Abstract:

The recent prevalence of Large Language models (LLMs), e.g., GPT-3.5 and GPT-4, has brought about a new age of man-computer symbiosis, where LLMs are employed for a litan...Show More

Abstract:

The recent prevalence of Large Language models (LLMs), e.g., GPT-3.5 and GPT-4, has brought about a new age of man-computer symbiosis, where LLMs are employed for a litany of creative, constructive, scientific, or otherwise content-generative tasks, e.g., as general chatbot assistants, writing editors, digital subject matter experts, programming consultants, and so on. Of interest to software engineers is the concept of “rubber duck debugging”, which is the act of expressing code, line-by-line, in natural language, to an inanimate object, e.g., a rubber duck, for the purpose of elucidating potential issues that can then be corrected. In this paper, we detail a workflow process that leverages the concept of rubber duck debugging, replacing the duck with a capable LLM, e.g., GPT-4. We call it Digital Rubber Duck Programming. Furthermore, the Extreme Programming (XP) method, an implementation of the Agile paradigm, is considered as easily integrated with the proposed workflow, as XP is performed in pairs (much like the modern software engineer works in pairwise fashion with an LLM) and because XP places emphasis on performing extensive code reviews and unit testing all code, which capable LLMs like GPT-4 can facilitate.
Date of Conference: 24-27 July 2023
Date Added to IEEE Xplore: 09 April 2024
ISBN Information:
Conference Location: Las Vegas, NV, USA

I. Introduction

ChatGPT is a revolutionary Large Language Model (LLM) containing billions of parameters [1]–[3]. OpenAI's state-of-the-art model can few-shot and even zero-shot learn to understand and generate from a user's query [4]. Few-shot and zero-shot learning is the ability to generalize learned information into a new context. This new domain may or may not be in the original training dataset [3]. The few- and zero-shot learning ability of ChatGPT allows the model to be used in a variety of domains. The model's domain agnosticism, paired with its advanced natural language understanding and generation, establishes ChatGPT as a state-of-the-art technology. Moreover, ChatGPT differs from other LLMs due to its training set also containing source code, empowering the model to generate code snippets in a plethora of coding languages. The unique combination of code and natural language situates ChatGPT as a possible Software Engineering (SWE) tool for computer scientists and software engineers. Many software engineers utilize the Agile lifecycle model to produce production-quality software within industry [5]. One such method is Extreme Programming (XP), or the production of software in pairs of engineers [6]. This paper proposes that ChatGPT, with its powerful code and natural language understanding, can act as a virtual, hyper-intelligent, ever-present programming partner to a software engineer using XP. This paper examines scenarios in which GPT is used in a few XP activities like code refactoring, code walkthroughs, and coverage testing.

Contact IEEE to Subscribe

References

References is not available for this document.