Selecting third-party libraries: the practitioners’ perspective
Authors:
Top Cited Papers
Open Access
- 8 November 2020
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 245-256
Abstract
The selection of third-party libraries is an essential element of virtually any software development project. However, deciding which libraries to choose is a challenging practical problem. Selecting the wrong library can severely impact a software project in terms of cost, time, and development effort, with the severity of the impact depending on the role of the library in the software architecture, among others. Despite the importance of following a careful library selection process, in practice, the selection of third-party libraries is still conducted in an ad-hoc manner, where dozens of factors play an influential role in the decision. In this paper, we study the factors that influence the selection process of libraries, as perceived by industry developers. To that aim, we perform a cross-sectional interview study with 16 developers from 11 different businesses and survey 115 developers that are involved in the selection of libraries. We systematically devised a comprehensive set of 26 technical, human, and economic factors that developers take into consideration when selecting a software library. Eight of these factors are new to the literature. We explain each of these factors and how they play a role in the decision. Finally, we discuss the implications of our work to library maintainers, potential library users, package manager developers, and empirical software engineering researchers.Keywords
All Related Versions
Funding Information
- H2020 (825328)
- Nederlandse Organisatie voor Wetenschappelijk Onderzoek (628.008.001)
- ARC (DE180100153)
This publication has 22 references indexed in Scilit:
- LibD: Scalable and Precise Third-Party Library Detection in Android Markets2017
- Improving API usabilityCommunications of the ACM, 2016
- An Empirical Study on the Reuse of Third-Party Libraries in Open-Source Software Development2015
- Apiwave: Keeping track of API popularity and migration2015
- VerXCombo: An Interactive Data Visualization of Popular Library Version Combinations2015
- A Large-Scale Empirical Study on Software Reuse in Mobile AppsIEEE Software, 2013
- An Empirical Study of API Usability2013
- Mining trends of library usage2009
- Cognitive biases and decision support systems development: a design science approachInformation Systems Journal, 2005
- The Interviewee and the Research Interview: Analysing a Neglected Dimension in Research*Canadian Review of Sociology/Revue canadienne de sociologie, 2004