An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks
By Amy J. Ko, Brad A. Myers, Michael J. Coblenz, Htet Htet Aung. IEEE Transactions on Software Engineering, 2006
690 citations recorded by the source corpus.
Much of software developers' time is spent understanding unfamiliar code. To better understand how developers gain this understanding and how software development environments might be involved, a study was performed in which developers were given an unfamiliar program and asked to work on two debugging tasks and three enhancement tasks for 70 minutes. The study found that developers interleaved three activities. They began by searching for relevant code both manually and using search tools; however, they based their searches on limited and misrepresentative cues in the code, environment, and executing program, often leading to failed searches. When developers found relevant code, they followed its incoming and outgoing dependencies, often returning to it and navigating its other dependencies; while doing so, however, Eclipse's navigational tools caused significant overhead. Developers collected code and other information that they believed would be necessary to edit, duplicate, or otherwise refer to later by encoding it in the interactive state of Eclipse's package explorer, file tabs, and scroll bars. However, developers lost track of relevant code as these interfaces were used for other tasks, and developers were forced to find it again. These issues caused developers to spend, on average, 35 percent of their time performing the mechanics of navigation within and between source files. These observations suggest a new model of program understanding grounded in theories of information foraging and suggest ideas for tools that help developers seek, relate, and collect information in a more effective and explicit manner
Subfields: Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/dcabf248f34f14682e1dc68575bea59428ab8491
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Information Systems
- Charles Sutton
- Denys Poshyvanyk
- Miltiadis Allamanis
- Hongyu Zhang
- Jaroslav M. Fowkes
- Michele Tufano
- Hailong Sun
- Xudong Liu
In Software
- Denys Poshyvanyk
- Charles Sutton
- Miltiadis Allamanis
- Michele Tufano
- Hongyu Zhang
- Bogdan Vasilescu
- Andrian Marcus
- Jaroslav M. Fowkes
Citations in the corpus
- Retrieval-based Neural Source Code Summarization (2020, background): “Developers often spend a lot of time on reading and comprehending programs [11, 32, 33, 51] when there is no good software documentation [31, 53].”
- Automatic generation of natural language summaries for Java classes (2013, background): “Existing studies [1] revealed that developers often spend more time searching, browsing, and reading the code than editing it.”
- RepairAgent: An Autonomous, LLM-Based Agent for Program Repair (2024, neutral): “This paper presents RepairAgent, the first autonomous, LLM-based agent for automated program repair.”
- How developers search for code: a case study (2015, methodology): “In some cases, the goal was not to observe code search directly, but rather code search was observed as part of information seeking activities performed by developers [3,12, 15].”
- SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repair (2018, methodology): “variables and other methods) in order to reason about the possible fix and possibly select several tokens in the context to build the fixed line [17].”
- Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval (2007, background): “Mozilla is an open source Web browser ported to almost all known software and hardware platforms.”
- Feature location in source code: a taxonomy and survey (2013, background): “[135, 136] performed an exploratory study to investigate developers’ strategies for understanding unfamiliar code.”
- Using an LLM to Help with Code Understanding (2023, background): “Consequently, developers spend a significant amount of time searching and foraging for the information they need and organizing and digesting the information they find [30, 31, 34, 44, 48, 57].”
- Autofolding for Source Code Summarization (2014, background): “Because of this complexity, programmers tend to spend more time reading and browsing code than actually writing it [1], [2].”
- Recruiting Participants With Programming Skills: A Comparison of Four Crowdsourcing Platforms and a CS Student Mailing List (2022, background): “This research area also includes testing developer experience of programming languages [67], building new programming tools/APIs/plugins [39, 69], and understanding how developers seek information [32].”
- On the Use of Automated Text Summarization Techniques for Summarizing Source Code (2010, background): “Recent studies have shown that developers spend more time reading and navigating the code than writing it [2-3].”
- Supporting program comprehension with source code summarization (2010, background): “Two of the most common activities when dealing with such a large amount of data are searching and browsing [3] the source code.”
- Asking and Answering Questions during a Programming Change Task (2008, background): “We have also analyzed programmers’ behavior around discovering that information along with the role that tools play in the answering process.”