Collaboration in the Wild is a multi-year research project (see my (unfunded) 2013 NSF CAREER proposal) about using video and ethnographically-informed practices to better understanding how professional software developers collaborate on their actual work in their actual place of work (“in the wild”). This topic is significantly under-examined in the research literature. Therefore, my research team is augmenting prior research by collecting and analyzing videos of professional software developers collaborating side-by-side in the wild, such as when sketching at a whiteboard or pair programming. Josh Tenenberg of University of Washington, Tacoma is a significant collaborator on this project.
Almost all prior studies are of novices, or use relatively simple problems, or are in laboratory settings, or study individuals instead of groups. These contexts are extremely different from the highly complex work of professional software developers in situ (see theNavigating Constraints paper, below). Prior research that does study professional software developers in the wild tends to be based upon what a researcher can observe in the moment, or what people recall of their behaviors, or the analysis of digital traces that miss most of what developers do.
Our research augments this prior work by using interaction analysis of videos of professional software developers in the wild. These videos provide a very rich set of data that allows us to better understand a variety of questions, such as how artifacts, people, and the environment help developers find common ground, co-create understanding, and navigate the constraints of the highly complex, situated, and contextually rich work they do. Our approach is informed by theoretical frameworks such as distributed cognition, social cognition, and situated cognition. Using videos allows us to uncover patterns and do analysis at a micro level. This helps us bridge to existing research, inform educational interventions to bridge the gap between novice and expert software developer, inform tool and process design, and might even help extend existing theory.