How to Identify Programming Skills from Source Code?
Resumo
Both open-source and proprietary software systems have become increasingly complex. Despite their growing complexity and increasing size, software systems must satisfy strict release requirements that impose quality, putting significant pressure on developers. Therefore, the success of software projects is dependent on the identification and hiring of qualified developers to build a solid and cohesive team with different programming skills. Our main goal is to develop and evaluate a method able to compute programming skills from source code analysis. Our method uses software metrics such as Changed Files and Changed Lines of Code, to compute the skills. Our results showed that our method is able of identifying programming skills of the developers about mainly libraries used, programming languages, and profile concerning back-end & front-end and unit test.
Referências
Bailey, J. L. and Stefaniak, G. (2001). Industry perceptions of the knowledge, skills, and abilities needed by computer programmers. In Proceedings of the 2001 ACM SIGCPR conference on Computer personnel research, pages 93–99. ACM.
Baltes, S. and Diehl, S. (2018). Towards a theory of software development expertise. ESEC/FSE 2018, page 187–200, New York, NY, USA. Association for Computing Machinery.
Bizer, C., Heath, T., and Berners-Lee, T. (2011). Linked data: The story so far. In Semantic services, interoperability and web applications: emerging concepts, pages 205–227.
Constantinou, E. and Kapitsaki, G. M. (2016). Identifying developers' expertise in social coding platforms. In 42th Euromicro Conference on Software Engineering and Advanced Applications (SEAA).
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 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).
Destefanis, G., Ortu, M., Counsell, S., Swift, S., Marchesi, M., and Tonelli, R. (2016). Software development: do good manners matter? PeerJ Computer Science, 2:e73.
Greene, G. J. and Fischer, B. (2016). Cvexplorer: Identifying candidate developers by mining and exploring their open source contributions. In 31st IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 804–809.
Marlow, J. and Dabbish, L. (2013). Activity traces and signals in software developer recruitment and hiring. In Proceedings of the 2013 conference on Computer supported cooperative work, pages 145–156.
Montandon, J. E., Silva, L. L., and Valente, M. T. (2019). Identifying experts in software libraries and frameworks among GitHub users. In 16th International Conference on Mining Software Repositories (MSR), pages 276–287.
Ortu, M., Adams, B., Destefanis, G., Tourani, P., Marchesi, M., and Tonelli, R. (2015). Are bullies more productive?: empirical study of affectiveness vs. issue fixing time. In Proceedings of the 12th Working Conference on Mining Software Repositories, pages 303–313. IEEE Press.
Ortu, M., Destefanis, G., Counsell, S., Swift, S., Tonelli, R., and Marchesi, M. (2016). Arsonists or firefighters? affectiveness in agile software development. In International Conference on Agile Software Development, pages 144–155. Springer.
Reif, M., Eichberg, M., Hermann, B., Lerch, J., and Mezini, M. (2016). Call graph construction for Java libraries. In 24th Proc. of the ACM Int. Symposium on Foundations of Software Engineering (SIGSOFT), pages 474–486.
Singer, L., Figueira Filho, F., Cleary, B., Treude, C., Storey, M.-A., and Schneider, K. (2013). Mutual assessment in the social programmer ecosystem: an empirical investigation of developer profile aggregators. In Proceedings of the 2013 conference on Computer supported cooperative work, pages 103–116. ACM.