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 using video ethnography 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 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 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.
The following publications have come from this research project:
- Socha, D., & Sutanto, K. (2015). The “Pair” as a Problematic Unit of Analysis for Pair Programming. In Proceedings of the 2015 International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE 2015). ACM. (in press)
- Socha, D., & Tenenberg, J. (2015). Sketching and Conceptions of Software Design. In Proceedings of the 2015 International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE 2015). ACM. (in press)
- David Socha, Troy Frever, Chunchao Zhang, Using a Large Whiteboard Wall to Support Software Development Teams. Presented at the 48th Annual Hawaii International Conference on System Sciences. January 2015.
- Socha, D., & Tenenberg, J. (2013). Sketching Software in the Wild. 35th International Conference on Software Engineering (ICSE 2013). San Francisco, USA. (paper) Describes our original “optimal” research design from October 2012. Since then, we expanded the scope to include forms of collaboration beyond just sketching.
- Socha, D., & Tenenberg, J. (2013). Navigating Constraints: The Design Work of Professional Software Developers. ACM SIGCHI Conference on Human Factors in Computing Systems. Paris, France. (paper, poster) Describes our 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.