skip to main content
10.1145/2950290.2950302acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article
Public Access

Foraging and navigations, fundamentally: developers' predictions of value and cost

Published:01 November 2016Publication History

ABSTRACT

Empirical studies have revealed that software developers spend 35%–50% of their time navigating through source code during development activities, yet fundamental questions remain: Are these percentages too high, or simply inherent in the nature of software development? Are there factors that somehow determine a lower bound on how effectively developers can navigate a given information space? Answering questions like these requires a theory that captures the core of developers' navigation decisions. Therefore, we use the central proposition of Information Foraging Theory to investigate developers' ability to predict the value and cost of their navigation decisions. Our results showed that over 50% of developers' navigation choices produced less value than they had predicted and nearly 40% cost more than they had predicted. We used those results to guide a literature analysis, to investigate the extent to which these challenges are met by current research efforts, revealing a new area of inquiry with a rich and crosscutting set of research challenges and open problems.

References

  1. Aho, A., Lam, M., Sethi, R., and Ullman, J. 2006. Compilers: Principles, Techniques & Tools. Addison Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bajracharya, S. K. and Lopes, C. V. 2012. Analyzing and mining a code search engine usage log. Empirical Soft. Engr., 17(4-5), 424–466. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Baltes, S., Schmitz, P., and Diehl, S. 2014. Linking sketches and diagrams to source code artifacts. ACM Symp. Found. Soft. Engr. (FSE), 743–746. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Brooks, R. 1983. Towards a theory of the comprehension of computer programs. Intl. J. Man-Machine Studies, 18(6), 543–554.Google ScholarGoogle ScholarCross RefCross Ref
  5. Chen, X. and Grundy, J. 2011. Improving automated documentation to code traceability by combining retrieval techniques. IEEE/ACM Intl. Conf. Automated Software Engineering (ASE), 223–232. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cottrell, R., Walker, R., and Denzinger, J. 2008. Semiautomating small-scale source code reuse via structural correspondence. ACM Symp. Found. Soft. Engr. (FSE). 214– 225. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. De Alwis, B. and Murphy, G. C. 2008. Answering conceptual queries with Ferret. ACM/IEEE Int’l. Conf. Software Engineering (ICSE). 21–30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. DeLine, R., Khella, A., Czerwinski, M. and Robertson, G. 2005. Towards understanding programs through wear-based filtering. ACM Symp. Software Visualization (SoftVis), ACM, 183–192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. DeLine, R., Czerwinski, M., and Robertson, G. 2005. Easing program comprehension by sharing navigation data. IEEE Symp. Visual Languages and Human-Centered Computing (VL/HCC). 241–248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Duala-Ekoko, E. and Robillard, M. P. 2012. Asking and answering questions about unfamiliar APIs: An exploratory study. ACM/IEEE Intl. Conf. Soft. Engr. (ICSE), 266–276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Duala-Ekoko, E. and Robillard, M. 2007. Tracking code clones in evolving software. ACM/IEEE Intl. Conf. Soft. Engr. (ICSE). 158–167. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Fleming, S., Scaffidi, C., Piorkowski, D., Burnett, M., Bellamy, R., Lawrance, J., and Kwan, I. 2013. An information foraging theory perspective on tools for debugging, refactoring, and reuse tasks. ACM Trans. Soft. Engr. and Method. (TOSEM), 22(2), 14:1–14:41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Fritz, T., Shepherd, D. C., Kevic, K., Snipes, W., and Bräunlich, C. 2014. Developers’ code context models for change tasks. ACM Intl. Symp. Found. Soft. Engr. (FSE), 7–18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Furnas, G. W., Landauer, T. K., Gomez, L. M., and Dumais, S. T. 1987. The vocabulary problem in human-system communication. Comm. ACM, 30(11), 964–971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Ge, X. and Murphy-Hill, E. 2014. Manual refactoring changes with automated refactoring validation. ACM/IEEE Intl. Conf. Soft. Engr. (ICSE), 1095–1105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Grigoreanu, V., Burnett, M., Wiedenbeck, S., Cao, J., Rector, K., and Kwan, I. 2012. End-user debugging strategies: A sensemaking perspective. ACM Trans. Comp.-Human Interaction (TOCHI), 19(1), 5:1–5:28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Henley, A. and Fleming, S. 2014. The Patchworks code editor: Toward faster navigation with less code arranging and fewer navigation mistakes. ACM Conf. Human Factors in Comp. Sys. (CHI)., 2511–2520. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Karrer, T., Kramer, J., Diehl, J., Hartmann, B., and Borchers, J. 2011. Stacksplorer: Call graph navigation helps increasing code maintenance efficiency. ACM Symp. User Interface Soft. and Technology (UIST), 217–224. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Kevic, K., Fritz, T., and Shepherd, D. 2014. CoMoGen: An approach to locate relevant task context by combining search and navigation. ACM/IEEE Intl. Conf. Soft. Maint. and Evolution (ICSME), 61–70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Ko, A. and Myers, B. 2008. Debugging reinvented: Asking and answering why and why not questions about program behavior. ACM/IEEE Int’l Conf. Software Eng. (ICSE), 301– 310. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ko, A., Myers B., Coblenz, M., Aung, H. 2006. An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans. Soft. Eng (TSE). 33, 971–987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Kramer, J., Karrer, T., Kurz, J., Wittenhagen, M., and Borchers, J. 2013. How tools in IDEs shape developers’ navigation behavior. ACM Conf. Human Factors in Comp. Sys. (CHI), 3073–3082. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. LaToza, T. D. and Myers, B. A. 2010. Developers ask reachability questions. ACM/IEEE Intl. Conf. Soft. Engr. (ICSE), 185–194. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. LaToza, T. D. and Myers, B. A. 2011. Visualizing call graphs. IEEE Symp. Visual Lang. and Human-Centric Computing (VL/HCC), 117–124.Google ScholarGoogle Scholar
  25. Lawrance, J., Bellamy, R., Burnett, M., and Rector, K. 2008. Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks. ACM Conf. Human Factors in Comp. Sys. (CHI), 1323–1332. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Lawrance, J., Bogart, C., Burnett, M., Bellamy, R., Rector, K., and Fleming, S. 2013. How programmers debug, revisited: An information foraging theory perspective. IEEE Trans. Soft. Eng. (TSE), 39(2), 197–215. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Lawrance, J., Burnett, M., Bellamy, R., Bogart, C., and Swart, C. 2010. Reactive information foraging for evolving goals. ACM Conf. Human Factors in Comp. Sys. (CHI), 25–34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Lin, Y., Xing, Z., Xue, Y., Liu, Y., Peng, X., Sun, J., and Zhao, W. 2014. Detecting differences across multiple instances of code clones. ACM/IEEE Intl. Conf. Soft. Engr. (ICSE), 164–174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Maalej, W., Tiarks, R., Roehm, T., and Koschke, R. 2014. On the comprehension of program comprehension. ACM Trans. Soft. Engr. and Method. (TOSEM), 23(4), 31:1–31:38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Majid, I. and Robillard, M. 2005. NaCIN: An Eclipse plug-in for program navigation-based concern inference. ACM OOPSLA Wkshp. Eclipse Technology Exchange, 70–74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Niu, N., Mahmoud, A., Chen, Z. and Bradshaw, G. 2013. Departures from optimality: Understanding human analyst’s information foraging in assisted requirements tracing. ACM/IEEE Intl. Conf. Soft. Engr. (ICSE), 572–581. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Piorkowski, D., Fleming, S., Kwan, I., Burnett, M., Scaffidi, C., Bellamy, R., and Jordahl, J. 2013. The whats and hows of programmers’ foraging diets. ACM Conf. Human Factors in Comp. Sys. (CHI), 3063–3072. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Piorkowski, D., Fleming, S., Scaffidi, C., Bogart, C., Burnett, M., John, B., Bellamy, R., and Swart, C. 2012. Reactive information foraging: An empirical investigation of theory-based recommender systems for programmers. ACM Conf. Human Factors in Comp. Sys. (CHI), 1471–1480. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Pirolli, P. and Card, S. 1995. Information foraging in information access environments. ACM Conf. Human Factors in Comp. Sys. (CHI), 51–58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Posnett, D., D’Souza, R., Devanbu, P., and Filkov, V. 2013. Dual ecological measures of focus in software development. ACM/IEEE Int’l Conf. Software Eng. (ICSE), 452–461. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Robillard, M. P. and Chhetri, Y. B. 2014. Recommending reference API documentation. Empirical Soft. Engr., 1–29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Robillard, M., Coelho, W., and Murphy, G. 2004. How effective developers investigate source code: An exploratory study. IEEE Trans. Soft. Eng. (TSE), 30(12), 889–903. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Sawadsky, N., Murphy, G. C., and Jiresal, R. 2013. Reverb: Recommending code-related web pages. ACM/IEEE Intl. Conf. Soft. Engr. (ICSE), 812–821. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Seaman, C.B. 1999. Qualitative methods in empirical studies of software engineering. IEEE Trans. Soft. Engr. (TSE), 25(4), 557–572. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Shaw, M. 1990. Prospects for an engineering discipline of software, IEEE Software, 15–24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Shepard, D., Fry, Z. P., Hill, E., Pollock, L. and Vijay-Shanker, V. 2007. Using natural language program analysis to locate and understand action-oriented concerns. ACM Int’l Conf. Aspect-Oriented Soft. Dev. (AOSD). 212–214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Sillito, J., Murphy, G. C., and De Volder, K. 2006. Questions programmers ask during software evolution tasks. ACM Symp. Found. Soft. Engr. (FSE), 23–34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Singer, J., Elves, R. and Storey, M. 2005. NavTracks: Supporting navigation in software maintenance. IEEE Intl. Conf. Soft. Maint. (ICSM), 325–334. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Soh, Z., Khomh, F., Gueheneuc, Y., Antoniol, G., and Adams, B. 2013. On the effect of program exploration on maintenance tasks. Working Conf. Reverse Engr., 391–400.Google ScholarGoogle Scholar
  45. Sridhara, G., Hill, E., Pollock, L. and Vijay-Shanker, K. 2008. Identifying word relations in software: A comparative study of semantic similarity tools. IEEE Int’l Conf. Prog. Comprehension (ICPC), 123–132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Xuan, Q., Okano, A., Devanbu, P., and Filkov, V. 2014. Focus-shifting patterns of OSS developers and their congruence with call graphs. ACM Int’l. Symp. Found. Soft. Engr. (FSE), 401–412. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Ying, A. and Robillard, M. 2011. The influence of the task on programmer behaviour. IEEE Int’l Conf. Program Comprehension (ICPC), 31–40. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Foraging and navigations, fundamentally: developers' predictions of value and cost

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        FSE 2016: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering
        November 2016
        1156 pages
        ISBN:9781450342186
        DOI:10.1145/2950290

        Copyright © 2016 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 November 2016

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate17of128submissions,13%

        Upcoming Conference

        FSE '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader