Table of Contents
Fetching ...

Code Compass: A Study on the Challenges of Navigating Unfamiliar Codebases

Ekansh Agrawal, Omair Alam, Chetan Goenka, Medha Iyer, Isabela Moise, Ashish Pandian, Bren Paul

TL;DR

The paper addresses the challenge of program comprehension in unfamiliar codebases and introduces CodeCompass, an IDE-integrated solution that embeds documentation and task guidance within the debugging workflow. Through need-finding and formative studies, it demonstrates that integrating context-aware documentation reduces disruptive context switching and improves task completion. The design, implemented as a TypeScript-based VSCode extension with a sandboxed execution environment and line-by-line explanations, supports multiple learning styles and aims to streamline onboarding to new codebases. The work outlines practical implications for developer productivity and offers a roadmap for automated task generation, broader IDE integration, and pedagogically-grounded evaluation.

Abstract

In our research, we investigate the challenges that software engineers face during program comprehension, particularly when debugging unfamiliar codebases. We propose a novel tool, CodeCompass, to address these issues. Our study highlights a significant gap in current tools and methodologies, especially the difficulty developers encounter in effectively utilizing documentation alongside code exploration. CodeCompass tackles these challenges by seamlessly integrating documentation within the IDE, offering context-aware suggestions and visualizations that streamline the debugging process. Our formative study demonstrates how effectively the tool reduces the time developers spend navigating documentation, thereby enhancing code comprehension and task completion rates. Future work will focus on automating the process of annotating codebases, creating sandbox tasks, and providing dynamic support. These innovations could potentially transform software development practices by improving the accessibility and efficiency of program comprehension tools.

Code Compass: A Study on the Challenges of Navigating Unfamiliar Codebases

TL;DR

The paper addresses the challenge of program comprehension in unfamiliar codebases and introduces CodeCompass, an IDE-integrated solution that embeds documentation and task guidance within the debugging workflow. Through need-finding and formative studies, it demonstrates that integrating context-aware documentation reduces disruptive context switching and improves task completion. The design, implemented as a TypeScript-based VSCode extension with a sandboxed execution environment and line-by-line explanations, supports multiple learning styles and aims to streamline onboarding to new codebases. The work outlines practical implications for developer productivity and offers a roadmap for automated task generation, broader IDE integration, and pedagogically-grounded evaluation.

Abstract

In our research, we investigate the challenges that software engineers face during program comprehension, particularly when debugging unfamiliar codebases. We propose a novel tool, CodeCompass, to address these issues. Our study highlights a significant gap in current tools and methodologies, especially the difficulty developers encounter in effectively utilizing documentation alongside code exploration. CodeCompass tackles these challenges by seamlessly integrating documentation within the IDE, offering context-aware suggestions and visualizations that streamline the debugging process. Our formative study demonstrates how effectively the tool reduces the time developers spend navigating documentation, thereby enhancing code comprehension and task completion rates. Future work will focus on automating the process of annotating codebases, creating sandbox tasks, and providing dynamic support. These innovations could potentially transform software development practices by improving the accessibility and efficiency of program comprehension tools.
Paper Structure (18 sections, 13 figures)

This paper contains 18 sections, 13 figures.

Figures (13)

  • Figure 1: Project README.md detailing project installation and setup instructions
  • Figure 2: Proiect requirements.txt detailing project library depedencies
  • Figure 3: Document site for the codebase that was linked to participants
  • Figure 4: GitHub ticket description for Task 1
  • Figure 5: GitHub ticket description for Task 2
  • ...and 8 more figures