Developers ask reachability questions
Abstract
A reachability question is a search across feasible paths through a program for target statements matching search criteria. In three separate studies, we found that reachability questions are common and often time consuming to answer. In the first study, we observed 13 developers in the lab and found that half of the bugs developers inserted were associated with reachability questions. In the second study, 460 professional software developers reported asking questions that may be answered using reachability questions more than 9 times a day, and 82% rated one or more as at least somewhat hard to answer. In the third study, we observed 17 developers in the field and found that 9 of the 10 longest activities were associated with reachability questions. These findings suggest that answering reachability questions is an important source of difficulty understanding large, complex codebases.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
Developers seek information to answer specific questions, test mental hypotheses, develop context, or follow leads.
“These studies have also revealed that developers seek this information to answer specific questions that they have [23,42], to test mental hypotheses about how an existing program works [4], to develop an overall sense of context [13], or to follow leads that simply look relevant to their current task [26].”
From Foraging and navigations, fundamentally: developers' predictions of value and cost (2016) · cites this paper as [23]
Developers seek information about how to use APIs, about data or control flow, and about requirements.
“These include the need for information about how to use APIs [10], about data or control flow [23,46], and about requirements [31].”
From Foraging and navigations, fundamentally: developers' predictions of value and cost (2016) · cites this paper as [23]
Cites
Weiser, M. (1984) · IEEE Transactions on Software Engineering · doi:10.1109/tse.1984.5010248 · Cited by 3,216 · see citing works
A Survey of Program Slicing Techniques.
Tip, F. (1994) · Centrum Wiskunde & Informatica (CWI), the national research institute for mathematics and computer science in the Netherlands · Cited by 862 · see citing works
Programmers use slices when debugging
Weiser, M. (1982) · Communications of the ACM · doi:10.1145/358557.358577 · Cited by 763 · see citing works
Ko, A. J., Myers, B. A., Coblenz, M. J., & Aung, H. H. (2006) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2006.116 · Cited by 685 · see citing works
Self-citationMaintaining mental models: a study of developer work habits
LaToza, T. D., Venolia, G., & DeLine, R. (2006) · Proceedings of the 28th international conference on Software engineering · doi:10.1145/1134285.1134355 · Cited by 628 · see citing works
Self-citationStimulus structures and mental representations in expert comprehension of computer programs
Pennington, N. (1987) · Cognitive Psychology · doi:10.1016/0010-0285(87)90007-7 · Cited by 526 · see citing works
Information Needs in Collocated Software Development Teams
Ko, A. J., DeLine, R., & Venolia, G. (2007) · 29th International Conference on Software Engineering (ICSE'07) · doi:10.1109/icse.2007.45 · Cited by 499 · see citing works
Asking and Answering Questions during a Programming Change Task
Sillito, J., Murphy, G. C., & Volder, K. D. (2008) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2008.26 · Cited by 320 · see citing works
An examination of software engineering work practices
Singer, J., Lethbridge, T. C., Vinson, N. G., & Anquetil, N. (2010) · doi:10.1145/1925805.1925815 · Cited by 298 · see citing works
Sridharan, M., Fink, S. J., & Bodík, R. (2007) · Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation · doi:10.1145/1250734.1250748 · Cited by 242 · see citing works
Software Design — Cognitive Aspects
Détienne, F. (2002) · Practitioner series · doi:10.1007/978-1-4471-0111-6 · Cited by 204 · see citing works
Eliciting design requirements for maintenance-oriented IDEs
Ko, A. J., Aung, H. H., & Myers, B. A. (2005) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1062455.1062492 · Cited by 182 · see citing works
Self-citationAn overview of program slicing
Harman, M., & Hierons, R. M. (2001) · Software Focus · doi:10.1002/swf.41 · Cited by 180 · see citing works
A Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance
Dzidek, W. J., Arisholm, E., & Briand, L. (2008) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2008.15 · Cited by 153 · see citing works
Exploring the neighborhood with dora to expedite software maintenance
Hill, E., Pollock, L., & Vijay‐Shanker, K. (2007) · doi:10.1145/1321631.1321637 · Cited by 117 · see citing works
Program comprehension as fact finding
LaToza, T. D., Garlan, D., Herbsleb, J. D., & Myers, B. A. (2007) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/1287624.1287675 · Cited by 106 · see citing works
Self-citationDoes a programmer's activity indicate knowledge of code?
Fritz, T., Murphy, G. C., & Hill, E. (2007) · doi:10.1145/1287624.1287673 · Cited by 96 · see citing works
Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks
Lawrance, J., Bellamy, R., Burnett, M., & Rector, K. (2008) · Proceedings of the SIGCHI Conference on Human Factors in Computing Systems · doi:10.1145/1357054.1357261 · Cited by 76 · see citing works
Edwards, J. (2009) · doi:10.1145/1639950.1640058 · Cited by 40 · see citing works
(2007) · IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) · doi:10.1109/vlhcc.2007.12 · Cited by 7 · see citing works
Flagged first, then by citations
Cited by
Sorted by citations
Programmers Are Users Too: Human-Centered Methods for Improving Programming Tools
Myers, B. A., Ko, A. J., LaToza, T. D., & Yoon, Y. (2016) · Computer · doi:10.1109/mc.2016.200 · Cited by 144 · see citing works
Self-citationHard-to-answer questions about code
LaToza, T. D., & Myers, B. A. (2010) · Evaluation and Usability of Programming Languages and Tools · doi:10.1145/1937117.1937125 · Cited by 141 · see citing works
Self-citationAn Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks
Fleming, S. D., Scaffidi, C., Piorkowski, D., Burnett, M., Bellamy, R., Lawrance, J., & Kwan, I. (2013) · ACM Transactions on Software Engineering and Methodology · doi:10.1145/2430545.2430551 · Cited by 79 · see citing works
Stacksplorer: call graph navigation helps increasing code maintenance efficiency
Karrer, T., Krämer, J.-P., Diehl, J., Hartmann, B., & Borchers, J. (2011) · Proceedings of the 24th annual ACM symposium on User interface software and technology · doi:10.1145/2047196.2047225 · Cited by 48 · see citing works
LogAssist: Assisting Log Analysis Through Log Summarization
Locke, S., Li, H., Chen, T.-H., Shang, W., & Liu, W. (2022) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2021.3083715 · Cited by 45 · see citing works
Foraging and navigations, fundamentally: developers' predictions of value and cost
Piorkowski, D., Henley, A. Z., Nabi, T., Fleming, S. D., Scaffidi, C., & Burnett, M. (2016) · Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering · doi:10.1145/2950290.2950302 · Cited by 38 · see citing works
Developer Behaviors in Validating and Repairing LLM-Generated Code Using IDE and Eye Tracking
Tang, N., Chen, M., Ning, Z., Bansal, A., Huang, Y., McMillan, C., & Li, T. J.-J. (2024) · 2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) · doi:10.1109/vl/hcc60511.2024.00015 · Cited by 18 · see citing works
- Authors
- LaToza, T. D., & Myers, B. A.
- Affiliations
- Carnegie Mellon University (US)
- Venue
- Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
- Publisher
- ACM
- Published
- 2010-05
- Pages
- 185-194
- ISSN
- 0270-5257 (ISSN-L)
- OpenAlex
- W2132383311
- Cited by
- 145
- References
- 20
- Citations by year
- 2026: 3 · 2025: 4 · 2024: 11 · 2023: 9 · 2022: 7 · 2021: 8 · 2020: 7 · 2019: 7 · 2018: 6 · 2017: 8 · 2016: 15 · 2015: 12 · 2014: 13 · 2013: 13 · 2012: 8
- FWCI
- 7.86
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) (publishedVersion)
- Funders
- Division of Computing and Communication Foundations (CCF-0811610)
- Topics
- Physical Sciences › Computer Science › Information Systems › Software Engineering Research
- Physical Sciences › Computer Science › Software › Software Testing and Debugging Techniques
- Physical Sciences › Computer Science › Information Systems › Software Engineering Techniques and Practices
- Keywords
- program comprehension, developer behavior, path finding, developer interviews, software development activities
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review