Mining the Technical Skills of Open Source Developers
Resumo
Software has "eaten the world" as we witness the rise of companies whose business model is totally centered on software. The successful implementation of these systems heavily depends on the quality and expertise of their software development teams. However, software-based companies are facing an increasing software developers shortage issue. On the one hand, technical recruiters are increasingly relying on the information provided by Social Coding Platforms (SCPs)—e.g., GitHub, Stack Overflow, etc—to prospect new talent. On the other hand, the large volume of data available force job recruiters to only assess superficial information of their candidates. In order to tackle this problem, we described in the thesis an extensive investigation of methods and techniques to identify the technical skills of software developers based on their activity in SCPs. We organized the thesis in three major working units, where we first investigated the most demanded technical and soft skills under the eyes of IT companies, and then assessed developers' technical skills from deep and broad prespectives. These studies resulted in contributions to both research and industrial communities.
Referências
Constantinou, E. and Kapitsaki, G. M. (2017). Developers expertise and roles on software technologies. In Asia-Pacific Software Engineering Conference (APSEC), pages 365–368.
Da Silva, J. R., Clua, E., Murta, L., and Sarma, A. (2015). Niche vs. Breadth: Calculating Expertise Over Time Through a Fine-grained Analysis. In International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 409–418.
DeMarco, T. and Lister, T. R. (1999). Peopleware: Productive Projects and Teams. Addison-Wesley Professional.
Epstein, D. (2019). Range: Why Generalists Triumph in a Specialized World. New York.
Fritz, T., Murphy, G. C., Murphy-Hill, E., Ou, J., and Hill, E. (2014). Degree-of-knowledge: modeling a developer’s knowledge of code. ACM Transactions on Software Engineering and Methodology, 23(2):14:1–14:42.
Honsel, V., Herbold, S., and Grabowski, J. (2016). Hidden Markov Models for the Prediction of Developer Involvement Dynamics and Workload. In International Conference on Predictive Models and Data Analytics in Software Engineering (PROMISE), pages 1–10.
Mockus, A. and Herbsleb, J. D. (2002). Expertise browser: a quantitative approach to identifying expertise. In International Conference on Software Engineering (ICSE), pages 503–512.
Oliveira, J., Viggiato, M., and Figueiredo, E. (2019). How well do you know this library? Mining experts from source code analysis. In Brazilian Symposium on Software Quality (SBQS), pages 1–10.
Ruiz, I. J. M., Adams, B., Nagappan, M., Dienst, S., Berger, T., and Hassan, A. E. (2014). A large-scale empirical study on software reuse in mobile apps. IEEE Software, 31(2):78–86.
Sawant, A. A. and Bacchelli, A. (2017). fine-GRAPE: finegrained API usage extractor - an approach and dataset to investigate API usage. Empirical Software Engineering, 22(3):1348–1371.
Saxena, R. and Pedanekar, N. (2017). I Know What You Coded Last Summer: Mining Candidate Expertise from GitHub Repositories. In ACM Conference on Computer-Supported Cooperative Work and Social Computing (CSCW), pages 299–302.
Schuler, D. and Zimmermann, T. (2008). Mining usage expertise from version archives. In International Working Conference on Mining Software Repositories (MSR), pages 121–124.
Susskind, R. and Susskind, D. (2015). The Future of the Professions: How Technology Will Transform the Work of Human Experts. OUP Oxford, reprint edição edition.
Teyton, C., Falleri, J.-R., Morandat, F., and Blanc, X. (2013). Find your Library Experts. In Working Conference on Reverse Engineering (WCRE), pages 202–211.