Wandercode: An Interaction Design for Code Recommenders to Reduce Information Overload, Ease Exploration, and Save Screen Space

Austin Z. Henley,David Shepherd,Scott D. Fleming
2024-08-27
Abstract:In this paper, we present Wandercode, a novel interaction design for recommender systems that recommend code locations to aid programmers in software development tasks. In particular, our design aims to improve upon prior designs by reducing information overload, by better supporting the exploration of recommendations, and by making more efficient use of screen space. During our design process, we developed a set of design dimensions to aid others in the design of code recommenders. To validate our design, we implemented a prototype of our design as an Atom code editor extension with support for the Java programming language, and conducted an empirical user evaluation comparing our graph-based Wandercode design to a control design representative of prior list-based interaction designs for code recommenders. The results showed that, compared with the control design, Wandercode helped participants complete tasks more quickly, reduced their cognitive load, and was viewed more favorably by participants.
Human-Computer Interaction
What problem does this paper attempt to address?
The paper aims to address the issue programmers face in finding task-relevant code during software development. Specifically, the design of existing recommendation systems has several noticeable problems: information overload, difficulty in exploring recommendations, and inefficient use of screen space. To overcome these issues, the authors propose a new graphical interaction design—Wandercode. ### Main Objectives: 1. **Reduce Information Overload**: By providing a more focused recommendation list and displaying only the most useful supporting clues. 2. **Support Exploration**: By offering the functionality to gradually expand the subset of related recommendations and preventing loss of orientation due to automatic updates through a fixed visualization interface. 3. **Efficient Use of Screen Space**: By overlaying the recommendation graph directly on the code editor, saving space and avoiding the need for window management activities. ### Method: - Implemented a Wandercode prototype as a plugin for the Atom code editor, supporting the Java programming language. - Conducted an empirical user evaluation study comparing the Wandercode design with traditional list-based control designs. ### Results: - The study showed that compared to traditional designs, Wandercode helped participants complete tasks faster, reduced their cognitive load, and received better evaluations. Through these improvements, Wandercode aims to enhance programmers' work efficiency, reduce their time wasted on irrelevant code, and thereby overall boost productivity.