Effective work practices for Free and Open Source Software development
and Investigating the Dynamics of Free/Libre Open Source Software Development Teams
Supported by NSF Grants 03-41475, 04–14468, 05-27457 and 07–08437
We studied the following general research questions:
* What practices make some distributed work teams more effective than others?
* How are these practices developed?
* What are the dynamics through which self-organizing distributed teams develop and work?
Understanding these questions is important because the digital society entails an increased use of distributed teams for a wide range of knowledge work, but research indicates that distributed teams face numerous obstacles to effective work. The two research questions were addressed in a study of Free and Open Source Software (FLOSS) development teams. FLOSS teams are important examples of distributed teams: developers contribute from around the world, rarely meet face-to-face, and coordinate their activity almost exclusively by means of email and bulletin boards. Yet some teams have been outstandingly successful at quickly developing reliable and useful software. In addition to its importance as an example of distributed work, FLOSS is an important phenomenon worthy of study in its own right. Millions of users depend on FLOSS systems such as Linux and the Apache Web server, yet our knowledge of the practices used by developers is still scarce.
In the most recent study, we examined how distributed teams develop shared mental models to guide members’ behavior, roles to mediate access to resources, and norms and rules to shape action, as well as the dynamics by which independent, geographically-dispersed individuals are socialized into these teams. As a basis for this study, we developed a conceptual framework that uses a structurational perspective to integrate research on team behaviour, communities of practice and shared mental models. A key innovation of the work was the integration of three methods to investigate these dynamics: natural language processing and social network analysis of team interactions and source code analysis. The work was carried out by a multi-disciplinary team including researchers from the fields of information systems and natural language processing.
To support this research, we developed a CISE research community resource in the form of a broadly-shared data and analysis archive. The goal of the infrastructure was to improve the reproducibility and consistency of this research and to expand access to the data and thus the community, with a secondary goal of providing an educational opportunity for undergraduate computer science students. Specifically, we developed distributed, collaborative community resource called FLOSSmole, to collect, organize and share comparable data and analyses of FLOSS development. FLOSSmole was designed to be a piece of research infrastructure: it is a framework for organizing and a system for facilitating access to the massive amounts of data collected by many simultaneous and currently unconnected FLOSS research efforts.