Selecting third-party libraries: The practitioners' perspective

Conference Paper (2020)
Author(s)

E. Larios Vargas (TU Delft - Software Engineering, Software Improvement Group)

Maurício Aniche (TU Delft - Software Engineering)

Christoph Treude (University of Adelaide)

Magiel Bruntink (Software Improvement Group)

G. Gousios (TU Delft - Software Engineering)

Research Group
Software Engineering
Copyright
© 2020 E. Larios Vargas, Maurício Aniche, Christoph Treude, Magiel Bruntink, G. Gousios
DOI related publication
https://doi.org/10.1145/3368089.3409711
More Info
expand_more
Publication Year
2020
Language
English
Copyright
© 2020 E. Larios Vargas, Maurício Aniche, Christoph Treude, Magiel Bruntink, G. Gousios
Research Group
Software Engineering
Pages (from-to)
245-256
ISBN (electronic)
9781450370431
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

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.