I am looking for more teams to participate in this research. If you work on a team (or know of one) that undertakes these or similar activities, and would be interested in chatting further about the possibility of participating in this research, please contact me.
This multi-year research project (see my NSF CAREER proposal) is about 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.
By “software developers” we mean anyone involved in the process of creating and evolving the software system; this includes programmers, business analysts, testers, designers, and so on. 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 the Navigating 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 provides 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.
The following publications have come from this research project:
- Navigating Constraints: The Design Work of Professional Software Developers describes our initial preliminary results from studying one 50-person software development organization. It also shows how the work done by this software development organization is dramatically more complex than the work studied in prior research. (poster)
- Sketching Software in the Wild describes our original “optimal” research design from October 2012. Since then, we expanded the scope to include forms of collaboration beyond just sketching.