Representation of Developer Expertise in Open Source Software
  Background: Accurate representation of developer expertise has always been an
important research problem. While a number of studies proposed novel methods of
representing expertise within individual projects, these methods are difficult
to apply at an ecosystem level. However, with the focus of software development
shifting from monolithic to modular, a method of representing developers'
expertise in the context of the entire OSS development becomes necessary when,
for example, a project tries to find new maintainers and look for developers
with relevant skills. Aim: We aim to address this knowledge gap by proposing
and constructing the Skill Space where each API, developer, and project is
represented and postulate how the topology of this space should reflect what
developers know (and projects need). Method: we use the World of Code
infrastructure to extract the complete set of APIs in the files changed by open
source developers and, based on that data, employ Doc2Vec embeddings for vector
representations of APIs, developers, and projects. We then evaluate if these
embeddings reflect the postulated topology of the Skill Space by predicting
what new APIs/projects developers use/join, and whether or not their pull
requests get accepted. We also check how the developers' representations in the
Skill Space align with their self-reported API expertise. Result: Our results
suggest that the proposed embeddings in the Skill Space appear to satisfy the
postulated topology and we hope that such representations may aid in the
construction of signals that increase trust (and efficiency) of open source
ecosystems at large and may aid investigations of other phenomena related to
developer proficiency and learning.
