The Whats and Hows of Programmers’ Foraging Diets David Piorkowski 1, Scott Fleming 2, Irwin Kwan 1 Margaret Burnett 1, Chris Scaffidi 1, Rachel Bellamy 3, Joshua Jordahl 1 1 Oregon State University 2 University of Memphis 3 IBM Research
Information Foraging Theory (IFT) Information seeking is one of the most important activities in HCI Information Foraging Theory – Predator seeking Prey 2 Gap: Diet is mostly untapped (What info do predators choose to look for?)
Exception: Study of "early adopter" web users [Evans & Card, CHI’ 08] What diets people had when looking at assimilated info on the web Some Findings: – Users’ diets differed from mainstream news sites – Long Tail 3 Goal: Understand programmers’ diets
Research Questions RQ1: What is a programmer’s diet? RQ2: How do programmers forage? RQ3: Whats meet Hows 4
Prey Operationalization Patches Predator 5 Diet
The Study Participants: 9 professional programmers Task: Debug a defect in jEdit Procedure: – 70 min of debugging – Talk aloud – Questionnaires 6
Research Questions RQ1: What is a programmer’s diet? RQ2: How do programmers forage? RQ3: Whats meet Hows 7
Data Analysis: Information Goal Types Code set: – Using 44 questions programmers ask [Sillito et al. ‘06] Grouped into 4 categories: 1.Finding initial focus points 2.Building on those points 3.Understanding a group of code 4.Understanding groups of groups 8
Goal TypeP2P3P5P6P7P8P9P10P11 1-initial build group groups RQ1: Programmers’ Diets Were Diverse Same goal but highly diverse diets Long tail 9
RQ1: Most Foraging Fell Into Distinct Patterns 10 Repeat Oscillate Stairstep Pyramid Restart 58% of programmers’ foraging was part of a pattern. 78% of that foraging was in a new pattern, Repeat.
Research Questions RQ1: What is a programmer’s diet? RQ2: How do programmers forage? RQ3: Whats meet Hows 11
Data Analysis: Strategies Code set: – Debugging strategies [Grigoreanu et. al, CHI ‘10] Grouped strategies to IFT foraging activities – Within-Patch Foraging – Between-Patch Foraging – Enrichment 12
RQ2: Less Between-Patch Foraging Than Expected StrategiesP2P3P5P6P7P8P9P10P11 Within-Patch Between-Patch Enrichment
RQ2: Less Between-Patch Foraging Than Expected StrategiesP2P3P5P6P7P8P9P10P11% Within-Patch % Between-Patch % Enrichment % Between-Patch was least frequent, but the most studied in IFT-based literature %
RQ2: Search Was Unpopular Strategy 1. Testing 2. Spatial 3. Control Flow 4. Code Inspection 5. Code Search 15 Testing was most frequent Code Search was the 5 th most frequent …
RQ2: Search Was Unpopular StrategyP2P3P5P6P7P8P9P10P11 1. Testing Spatial Control Flow Code Inspection Code Search of 9 participants chose not to search at all
Research Questions RQ1: What is a programmer’s diet? RQ2: How do programmers forage? RQ3: Whats meet Hows 17
Information Goal Types % Strategy Occurs per Information Goal Type RQ3: Strategies’ Diet Specificity 18 Enrichment Strategies Between-Patch Strategies Within-Patch Strategies
RQ3: Strategies’ Diet Specificity 19 Information Goal Types % Strategy Occurs per Information Goal Type Spatial Strategy: Used for all goal types Code Search Strategy: Used for 1-Initial or 2-Build Testing Strategy: Used for 3-group and 4-groups Opportunities for tools to select strategies appropriate to programmers’ information goals.
RQ3: Cost of Selectivity 20 P3: “Let’s just look for ‘delete’ again.” [Searches for ‘delete.’] P3: “Let me try to look for ‘delete’ again.” [Searches for ‘delete.’] P3: “I Imagine that I would look for the word delete perhaps, especially given that that’s the term that’s used in the menu, but I think I’ll try again. [Searches for ‘delete.’]” P3: [Searches.] “Java search, in the workspace, a method including ‘delete.’” Programmers’ diets are highly selective. They are willing to face high costs and meager returns for specific information.
Summary and Conclusions Surprises – Abundance of Repeat pattern – Less between-patch foraging than expected – Search was unpopular Tools – Diverse diets & strategies Support individual differences – Some strategies were diet specific 21 Programmers’ dietary needs were highly selective