I've been studying the social dynamics of GitHub, the web's largest open source software repository, using qualitative and quantitative behavioral research methods including interviewing participants, observing activity on the site, and analyzing logs of behavior. A paper overviewing our observations is available here:
Dabbish, L., Stuart, C., Tsay, J., & Herbsleb, J. (2012). Social coding in GitHub: Transparency and collaboration in an open software repository. In Proceedings of the ACM Conference on Computer-Support Cooperative Work (CSCW 2012). pp. 1277-1286. New York: ACM Press.
Social networking for..... work?
What happens when people are sharing their work this way? Is it actually useful? What kinds of behaviors does work focused social media support?
What happens when you stop posting cat pictures and start posting code?
Our research site in this project was GitHub, a web-based code hosting service with social tools connected to the software.
On GitHub people freely share software through public repositories, and their actions on code is broadcast through social networking functionality (following and watching). GitHub now has 3.4 million users contributing code to 16.7 million repositories (according to Wikipedia). This is a big community.
Our goal was to understand how collaboration happened through social media in the GitHub community. We interviewed 24 members of GitHub and observed their behavior in the site. We found through our interviews and analysis that social tools connected to work artifacts afforded three important things:
"Sometimes I feel like somebody's watching me" aka Audience pressures
Because changes to shared artifacts were visible alongside the work itself, members felt the pressure of an audience for their actions and were in turn motivated to work in a way that made their intentions visible. Developers articulate their rationale behind a commit in comments, and there is a norm that the sequence, comments and resulting history of commits to a project should "tell a story" (in the words of one interviewee) about why the code was written the way it was.
"Oh no you didn't" aka Dependency awareness
The visible and timely updates provided through GitHub (in contrast to more traditional tools and version control systems) meant that projects participants can keep tight awareness of their dependencies. We found that some members would use the feed to monitor the changes made to upstream dependent projects (the ones they used in their own work) to identify problematic changes more quickly than waiting for a release.
"I see what you did thar" aka Learning through following
Participants in GitHub tracked the behavior of experts to learn both what projects they used and attended to, but also how they coded. Events in the feed indicating what projects an expert started watching provided pointers to knowledge in the environment, and interviewees described using others as knowledge 'curators'. The history of commits by an expert could also serve as tutorials about best practice in software development, and the history of a related project could show how to solve a problem.
Our paper is the first to describe how collaboration happens through social media. In follow-up work on this topic we looked at how people form impressions of each other and project quality, what factors predict project success, and the social dynamics around pull request evaluation. Look for posts on those findings soon!