Code Reuse in Open Source Software Development: Quantitative Evidence, Drivers, and Impediments

Abstract

Manuel Sojer Technische Universität München, Germany sojer@wi.tum.de Joachim Henkel Technische Universität München, Germany henkel@wi.tum.de The focus of existing open source software (OSS) research has been on how and why individuals and firms add to the commons of public OSS code—that is, on the “giving” side of this open innovation process. In contrast, research on the corresponding “receiving” side of the innovation process is scarce. We address this gap, studying how existing OSS code is reused and serves as an input to further OSS development. Our findings are based on a survey with 686 responses from OSS developers. As the most interesting results, our multivariate analyses of developers’ code reuse behavior point out that developers with larger personal networks within the OSS community and those who have experience in a greater number of OSS projects reuse more, presumably because both network size and a broad project experience facilitate local search for reusable artifacts. Moreover, we find that a development paradigm that calls for releasing an initial functioning version of the software early—as the “credible promise” in OSS—leads to increased reuse. Finally, we identify developers’ interest in tackling difficult technical challenges as detrimental to efficient reuse-based innovation. Beyond OSS, we discuss the relevance of our findings for companies developing software and for the receiving side of open innovation processes, in general.

5 Figures and Tables

0510152011201220132014201520162017
Citations per Year

51 Citations

Semantic Scholar estimates that this publication has 51 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@article{Sojer2010CodeRI, title={Code Reuse in Open Source Software Development: Quantitative Evidence, Drivers, and Impediments}, author={Manuel Sojer and Joachim Henkel}, journal={J. AIS}, year={2010}, volume={11}, pages={2} }