  Knowledge about the roles developers play in a software project is crucial to
understanding the project's collaborative dynamics. Developers are often
classified according to the dichotomy of core and peripheral roles. Typically,
operationalizations based on simple counts of developer activities (e.g.,
number of commits) are used for this purpose, but there is concern regarding
their validity and ability to elicit meaningful insights. To shed light on this
issue, we investigate whether commonly used operationalizations of
core--peripheral roles produce consistent results, and we validate them with
respect to developers' perceptions by surveying 166 developers. Improving over
the state of the art, we propose a relational perspective on developer roles,
using developer networks to model the organizational structure, and by
examining core--peripheral roles in terms of developers' positions and
stability within the organizational structure. In a study of 10 substantial
open-source projects, we found that the existing and our proposed
core--peripheral operationalizations are largely consistent and valid.
Furthermore, we demonstrate that a relational perspective can reveal further
meaningful insights, such as that core developers exhibit high positional
stability, upper positions in the hierarchy, and high levels of coordination
with other core developers.
