Font Size: a A A

Sociotechnical coordination and collaboration in open source software

Posted on:2011-04-06Degree:Ph.DType:Dissertation
University:University of California, DavisCandidate:Bird, Christian AlmaFull Text:PDF
GTID:1468390011471460Subject:Computer Science
Abstract/Summary:
Over the past decade, a new style of software development, termed open source software (OSS) has emerged and has yielded large, mature, stable, and widely used software projects. As software continues to grow in size and complexity, so do development teams. Consequently, coordination and communication within these teams play larger roles in productivity and software quality. This work focuses on the relationships between developers in large open source projects and how software affects and is affected by these relationships. Fortunately, source code repository histories, mailing list archives, and bug databases from OSS projects contain latent data from which we can reconstruct a rich view of a project over time and analyze these sociotechnical relationships. In this dissertation, we present methods of obtaining and analyzing this data as well as the results of empirical studies whose goal is to answer questions that can help software project leaders understand and make decisions about their own teams. (1) We present our research on mining OSS communication and coordination, and use properties of the communication social networks to characterize the relationship between participants social and development behavior. (2) We present methods for recovering artifacts such as patch contributions from project mailing lists and determining if they were accepted. (3) We perform a quantitative analysis of the important factors in uencing the immigration of an OSS participant from a bystander on the periphery to a full edged, core developer, with write access to the source. (4) We examine the social structure of a number of OSS projects. We find that much like large commercial software endeavors, there are teams of developers working together on common tasks. Further, the type of communication (highly technical versus policy related) is strongly related to the organization structure. (5) We show that collaboration history combined with technical relationships (such as dependencies within software) can be used to predict which components of a system will be the most failure prone, with higher accuracy than previous methods. (6) We study distributed development in three large projects: Windows Vista, Firefox, and Eclipse. We characterize the level of geographic and organizational distribution and examine the relationship between distributed development and software quality (7) We perform an analysis of code ownership on the same three projects and show how the relationship between ownership and quality is affected by the development style used. Taken together, these chapters provide an understanding of the collaboration processes at work in OSS (and in some cases commercial) projects and also give researchers tools and techniques that they can use to gather and analyze data to answer related questions.
Keywords/Search Tags:Software, Open source, OSS, Development, Coordination, Collaboration
Related items