Pull-Based Development
Reviewed by Greg Wilson / 2016-06-07
Keywords: Collaborative Development
Gousios2016 Georgios Gousios, Margaret-Anne Storey, and Alberto Bacchelli: "Work practices and challenges in pull-based development". Proceedings of the 38th International Conference on Software Engineering, 10.1145/2884781.2884826.
We conducted a survey with 645 top contributors to active OSS projects using the pull-based model on GitHub, the prevalent social coding site. We also analyzed traces extracted from corresponding GitHub repositories. Our research shows that: contributors have a strong interest in maintaining awareness of project status to get inspiration and avoid duplicating work, but they do not actively propagate information; communication within pull requests is reportedly limited to low-level concerns and contributors often use communication channels external to pull requests; challenges are mostly social in nature, with most reporting poor responsiveness from integrators; and the increased transparency of this setting is a confirmed motivation to contribute. Based on these findings, we present recommendations for practitioners to streamline the contribution process and discuss potential future research directions.
How do developers actually use GitHub's pull-based workflow, particularly its support for concurrent development and extensive pre-commit review? Are most PRs really self-contained? How do the people responsible for merging tell whether a change is right? (It turns out that testing is used much more often than code review, which surprised me.) And how do people communicate: through issues, through pull requests, or through email and IRC? (It turns out that "minimal PRs" are used almost as often as issues, and that both are used more than chat and email, which has some interesting implications for design.) While research based on GitHub has its limits, which are ably analyzed in this paper by Cosentino, Luis, and Cabot, this is the kind of paper that ought to feed directly into both the undergraduate curriculum and professional development.