Publication | Closed Access
An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks
667
Citations
46
References
2006
Year
Software MaintenanceExploratory StudySoftware Development PracticeEngineeringBusiness IntelligenceProject ManagementSoftware EngineeringSource Code AnalysisSoftware DevelopersSoftware AnalysisEmpirical Software Engineering ResearchManagementSoftware AspectSoftware PracticeSoftware Maintenance TasksBehavioral SciencesDesignComputer ScienceInformation ManagementUnfamiliar CodeSoftware DesignCode RefactoringSoftware EvolutionHow Developers SeekProgram AnalysisSoftware TestingProgram ComprehensionSoftware Development Environments
Much of software developers’ time is spent understanding unfamiliar code. The study aimed to investigate how developers acquire understanding of unfamiliar code and the role of development environments by having them work on debugging and enhancement tasks for 70 minutes. Participants were assigned an unfamiliar program and asked to complete two debugging and three enhancement tasks over a 70‑minute session while their actions were recorded. The study revealed that developers interleaved searching, dependency tracing, and information collection, but relied on limited cues, suffered from Eclipse’s navigation overhead, lost track of relevant code, and spent about 35 % of their time navigating, leading to a proposed information‑foraging model and tool design suggestions.
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1