Use este identificador para citar ou linkar para este item: http://hdl.handle.net/1843/36500
Tipo: Tese
Título: Mining the technical skills of open source developers
Título(s) alternativo(s): Mineração de habilidades técnicas de desenvolvedores de projetos de código aberto
Autor(es): João Eduardo Montandon de Araujo Filho
Primeiro Orientador: Marco Túlio de Oliveira Valente
Primeiro membro da banca : André Cavalcante Hora
Segundo membro da banca: Eduardo Magno Lages Figueiredo
Terceiro membro da banca: Marcelo Almeida Maia
Quarto membro da banca: Leonardo Gresta Paulino Murta
Resumo: 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).
Assunto: Computação – Teses
Software – Desenvolvedores – Teses
Mineração de repositórios de software – Teses
GitHub – Teses
Idioma: eng
País: Brasil
Editor: Universidade Federal de Minas Gerais
Sigla da Instituição: UFMG
Departamento: ICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Curso: Programa de Pós-Graduação em Ciência da Computação
Tipo de Acesso: Acesso Aberto
URI: http://hdl.handle.net/1843/36500
Data do documento: 5-Fev-2021
Aparece nas coleções:Teses de Doutorado

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
tese-joao-montandon (2).pdf3.62 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.