Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/36500
Type: Tese
Title: Mining the technical skills of open source developers
Other Titles: Mineração de habilidades técnicas de desenvolvedores de projetos de código aberto
Authors: João Eduardo Montandon de Araujo Filho
First Advisor: Marco Túlio de Oliveira Valente
First Referee: André Cavalcante Hora
Second Referee: Eduardo Magno Lages Figueiredo
Third Referee: Marcelo Almeida Maia
metadata.dc.contributor.referee4: Leonardo Gresta Paulino Murta
Abstract: Software is "eating 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. Indeed, IT-based companies are making an increasing effort to hire new professionals to fulfill their open positions. At the same time, the emergence of Social Coding Platforms (SCPs)---e.g., GitHub, Stack Overflow, etc---is contributing to nurturing a new generation of software developers. On one hand, these platforms favor technical recruiters by providing interesting information about software developers when prospecting a new workforce to their companies. On the other, the large volume of data available limits recruiters to only assess superficial information of their candidates. In order to contribute to this problem, we describe in this thesis an extensive investigation of methods and techniques that effectively identify the technical skills of software developers based on their activity in SCPs. We organize the research in three major working units. We start by studying in more detail the most demanded technical and soft skills of software developers under the eyes of IT companies. Next, we analyze the effectiveness of data-driven methods to assess developers' technical skills from two perspectives: (a) deep, where we evaluate supervised and unsupervised methods to identify the expertise level of software developers in three popular JavaScript libraries; and (b) broad, where we apply supervised methods to detect developers' proficiency in six widely mentioned technical roles. Overall, we obtained promising results in using an unsupervised technique to classify developers' expertise level. For example, we were able to produce clusters where the number of experts ranges from 65% to 75%. With respect to technical roles, the proposed model reported higher outcomes for precision (88%) and AUC (89%).
Abstract: Atualmente, software está "devorando o mundo" a medida em que surgem novas empresas nas quais o modelo de negócios é totalmente centralizado em um sistema computacional. O sucesso da implantação de tais sistemas depende, em grande medida, da qualidade e competência dos desenvolvedores responsáveis por sua implementação. Em virtude disso, empresas de TI tem empregado um esforço contínuo na contratação de novos profissionais para atuar em seus projetos. Em paralelo, o crescimento de comunidades digitais de desenvolvimento---tais como GitHub e Stack Overflow---tem contribuído com o crescimento de uma nova geração de desenvolvedores. Essas plataformas disponibilizam publicamente informações de seus usuários, frequentemente utilizadas por recrutadores durante a busca de novos talentos. Todavia, o volume e formato dos dados limita esta análise apenas a informações básicas e superficiais dos desenvolvedores. Neste contexto, propõe-se nesta tese uma ampla investigação dos métodos para identificar habilidades técnicas de desenvolvedores de software. Esta pesquisa está organizada em três grandes trabalhos. O primeiro investiga as habilidades técnicas e comportamentais mais demandadas dos desenvolvedores na visão das empresas de TI. Em seguida, analisa-se a efetividade das abordagens orientadas a dados na identificação das habilidades técnicas dos desenvolvedores em duas perspectivas: (a) profundidade, usando técnicas supervisionadas e não-supervisionadas para determinar o nível de conhecimento de desenvolvedores em bibliotecas de software; e (b) largura, aplicando métodos supervisionados para detectar a proficiência de desenvolvedores em seis funções de trabalho. A pesquisa obteve resultados promissores ao adotar um método de clusterização na classificação do nível de conhecimento dos desenvolvedores; identificaram-se grupos nos quais a concentração de desenvolvedores especialistas variou entre 65% e 75%. Em relação às funções de trabalho, o modelo proposto reportou resultados com eficácia entre 69% (revocação) e 89% (AUC).
Subject: Computação – Teses
Software – Desenvolvedores – Teses
Mineração de repositórios de software – Teses
GitHub – Teses
language: eng
metadata.dc.publisher.country: Brasil
Publisher: Universidade Federal de Minas Gerais
Publisher Initials: UFMG
metadata.dc.publisher.department: ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
metadata.dc.publisher.program: Programa de Pós-Graduação em Ciência da Computação
Rights: Acesso Aberto
URI: http://hdl.handle.net/1843/36500
Issue Date: 5-Feb-2021
Appears in Collections:Teses de Doutorado

Files in This Item:
File Description SizeFormat 
tese-joao-montandon (2).pdf3.62 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.