  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.
