An Exploratory Study of the Pull-based Software Development Model

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

429 Citations (Scopus)
181 Downloads (Pure)

Abstract

The advent of distributed version control systems has led to the development of a new paradigm for distributed software development; instead of pushing changes to a central repository, developers pull them from other repositories and merge them locally. Various code hosting sites, notably Github, have tapped on the opportunity to facilitate pull-based development by offering workflow support tools, such as code reviewing systems and integrated issue trackers. In this work, we explore how pull-based software development works, first on the GHTorrent corpus and then on a carefully selected sample of 291 projects. We find that the pull request model offers fast turnaround, increased opportunities for community engagement and decreased time to incorporate contributions. We show that a relatively small number of factors affect both the decision to merge a pull request and the time to process it. We also examine the reasons for pull request rejection and find that technical ones are only a small minority.
Original languageEnglish
Title of host publicationProceedings of the 36th International Conference on Software Engineering
Place of PublicationNew York, NY, USA
PublisherAssociation for Computing Machinery (ACM)
Pages345-355
Number of pages11
ISBN (Print)978-1-4503-2756-5
DOIs
Publication statusPublished - 2014
EventICSE 2014, Hyderabad, India - New York
Duration: 31 May 20147 Jun 2014

Publication series

NameICSE 2014
PublisherACM

Conference

ConferenceICSE 2014, Hyderabad, India
Period31/05/147/06/14

Keywords

  • Pull-based development
  • pull request
  • distributed software development
  • emperical software engineering

Fingerprint

Dive into the research topics of 'An Exploratory Study of the Pull-based Software Development Model'. Together they form a unique fingerprint.

Cite this