The whats and hows of programmers' foraging diets

One of the least studied areas of Information Foraging Theory is diet: the information foragers choose to seek. For example, do foragers choose solely based on cost, or do they stubbornly pursue certain diets regardless of cost? Do their debugging strategies vary with their diets? To investigate "what" and "how" questions like these for the domain of software debugging, we qualitatively analyzed 9 professional developers' foraging goals, goal patterns, and strategies. Participants spent 50% of their time foraging. Of their foraging, 58% fell into distinct dietary patterns - mostly in patterns not previously discussed in the literature. In general, programmers' foraging strategies leaned more heavily toward enrichment than we expected, but different strategies aligned with different goal types. These and our other findings help fill the gap as to what programmers' dietary goals are and how their strategies relate to those goals.

[1]  John R. Anderson The Adaptive Character of Thought , 1990 .

[2]  Wai-Tat Fu,et al.  SNIF-ACT: A Model of Information Foraging on the World Wide Web , 2003, User Modeling.

[3]  Peter Pirolli,et al.  Information Foraging , 2009, Encyclopedia of Database Systems.

[4]  Thomas D. LaToza,et al.  Visualizing call graphs , 2011, 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[5]  Nan Niu,et al.  Information foraging as a foundation for code navigation: NIER track , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[6]  Brad A. Myers,et al.  An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks , 2006, IEEE Transactions on Software Engineering.

[7]  Ed H. Chi,et al.  Using information scent to model user information needs and actions and the Web , 2001, CHI.

[8]  P. Pirolli,et al.  The Sensemaking Process and Leverage Points for Analyst Technology as Identified Through Cognitive Task Analysis , 2007 .

[9]  Philip J. Guo,et al.  Two studies of opportunistic programming: interleaving web foraging, learning, and writing code , 2009, CHI.

[10]  Thomas Fritz,et al.  Using information fragments to answer the questions developers ask , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[11]  Rachel K. E. Bellamy,et al.  Reactive information foraging: an empirical investigation of theory-based recommender systems for programmers , 2012, CHI.

[12]  Margaret M. Burnett,et al.  End-user debugging strategies: A sensemaking perspective , 2012, TCHI.

[13]  Bonnie E. John,et al.  CogTool-Explorer: a model of goal-directed user exploration that considers information layout , 2012, CHI.

[14]  Peter Pirolli,et al.  Computational models of information scent-following in a very large browsable text collection , 1997, CHI.

[15]  Rachel K. E. Bellamy,et al.  How Programmers Debug, Revisited: An Information Foraging Theory Perspective , 2013, IEEE Transactions on Software Engineering.

[16]  Pablo Romero,et al.  Debugging strategies and tactics in a multi-representation software environment , 2007, Int. J. Hum. Comput. Stud..

[17]  Gail C. Murphy,et al.  Questions programmers ask during software evolution tasks , 2006, SIGSOFT '06/FSE-14.

[18]  Wai-Tat Fu,et al.  SNIF-ACT: A Cognitive Model of User Navigation on the World Wide Web , 2007, Hum. Comput. Interact..

[19]  Stuart K. Card,et al.  Augmented information assimilation: social and algorithmic web aids for the information long tail , 2008, CHI.

[20]  Rachel K. E. Bellamy,et al.  Reactive information foraging for evolving goals , 2010, CHI.

[21]  Rachel K. E. Bellamy,et al.  Using information scent to model the dynamic foraging behavior of programmers in maintenance tasks , 2008, CHI.

[22]  Margaret M. Burnett,et al.  A strategy-centric approach to the design of end-user debugging tools , 2010, CHI.