Using GitHub to collaborate

We started a project in our lab this summer, which we lovingly call Co-CoDe: Collaboration, Coordination, and Development process in software teams. With this project we’re aiming to understand and record collaboration practices followed by a variety of teams, and the associated benefits and challenges. Software teams try to strike a balance between process and tools and spend resources and effort to find the combination that works for them. Their technical and organizational decisions go hand-in-hand, and the aim is to maintain the right levels of communication, work awareness, and coordination practices. Through our study we hope to provide teams with insight and recommendations for practices that can work better for them. Our first focus of investigation is the use of decentralized version control systems (DVCS) by an increasing number of projects and teams. As DVCS, such as Git, are becoming adopted for managing the codebase, we’re curious as to how they influence team collaboration by providing a protocol for managing code contributions. Our choice to investigate DVCS impact on collaboration brought us to using GitHub as a proxy. GitHub is getting adopted more and more, and that has also attracted the attention of the academic community, with a growing number of papers dedicated to how it is used both as a tool and a collaborative environment. We conducted a short survey along with 35 interviews, providing us with a wealth of input and insight. The teams we interviewed include both open source and commercial teams, distributed and collocated, of varying sizes and choice of development methodologies. We’ll be updating the news on this project as we’re finalizing and publishing our results and insights.