Profiling Software Developers with Process Mining and N-Gram Language Models

01/17/2021
by   João Caldeira, et al.
0

Context: Profiling developers is challenging since many factors, such as their skills, experience, development environment and behaviors, may influence a detailed analysis and the delivery of coherent interpretations. Objective: We aim at profiling software developers by mining their software development process. To do so, we performed a controlled experiment where, in the realm of a Python programming contest, a group of developers had the same well-defined set of requirements specifications and a well-defined sprint schedule. Events were collected from the PyCharm IDE, and from the Mooshak automatic jury where subjects checked-in their code. Method: We used n-gram language models and text mining to characterize developers' profiles, and process mining algorithms to discover their overall workflows and extract the correspondent metrics for further evaluation. Results: Findings show that we can clearly characterize with a coherent rationale most developers, and distinguish the top performers from the ones with more challenging behaviors. This approach may lead ultimately to the creation of a catalog of software development process smells. Conclusions: The profile of a developer provides a software project manager a clue for the selection of appropriate tasks he/she should be assigned. With the increasing usage of low and no-code platforms, where coding is automatically generated from an upper abstraction layer, mining developer's actions in the development platforms is a promising approach to early detect not only behaviors but also assess project complexity and model effort.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/03/2020

Exploring Context-Aware Conversational Agents in Software Development

Software development is a complex endeavor that depends on a wide variet...
research
07/16/2018

Towards a Theory of Software Development Expertise

Software development includes diverse tasks such as implementing new fea...
research
10/29/2020

Unveiling process insights from refactoring practices

Context : Software comprehension and maintenance activities, such as ref...
research
09/08/2020

Profiling Developers Through the Lens of Technical Debt

Context: Technical Debt needs to be managed to avoid disastrous conseque...
research
03/17/2021

Towards a question answering assistant for software development using a transformer-based language model

Question answering platforms, such as Stack Overflow, have impacted subs...
research
04/15/2022

Investigating the Impact of Forgetting in Software Development

Context: Forgetting is defined as a gradual process of losing informatio...
research
05/07/2020

Enhancing Software Development Process Using Automated Adaptation of Object Ensembles

Software development has been changing rapidly. This development process...

Please sign up or login with your details

Forgot password? Click here to reset