On the Impact of Affect in Software Engineering

Parastou Tourani · PolyPublie (École Polytechnique de Montréal) · 2016

Selon les études scientifiques, l'une des meilleures façons d'améliorer la performance des développeurs de logiciels peut être réalisée en se concentrant sur les individus.Par exemple, Agile Manifesto a évalué les individus et leurs interactions sur les processus et les outils, tout en mettant l'accent sur le fait de fournir un environnement favorable et souhaitable aux employés.En outre, les recherches menées dans les autres domaines comme la psychologie, le comportement économique et organisationnel révèlent que le bien-être émotionnel des gens agit comme une force causale de leur productivité.Les affects d'individus, c'est-à-dire leurs émotions, leurs sentiments et leur humeur influencent sur leur comportement et leurs interactions et, par conséquent, le développement de logiciels en tant qu'activité collaborative des développeurs peuvent également être influencé par ces affects.Surtout sachant que le développement logiciel est un processus complexe, cognitif et intellectuel, ces affects peuvent avoir un impact significatif sur son succès.Jusqu'à présent, très peu d'études ont été menées dans un contexte de génie logiciel pour étudier comment les affects des développeurs pourraient influencer le processus de développement logiciel et quelles conséquences ils peuvent apporter.Cette thèse vise à étudier le lien entre les affects des développeurs et les aspects cruciaux du processus d'ingénierie logicielle, il s'agit de la qualité du travail en résultat et le temps nécessaire pour y parvenir.À cette fin, nous avons effectué plusieurs études empiriques sur des projets "open source" populaires.Dans un premier temps, nous avons essayé d'analyser la présence d'affects dans des artefacts de génie logiciel/ de l'ingénierie du logiciel, d'inspecter leurs significations dans ce contexte et de vérifier la faisabilité du support automatique d'outil pour la détection de l'affect dans le domaine du génie logiciel/ de l'ingénierie du logiciel grâce à ces études empiriques.Ensuite, deux grandes études de cas empiriques ont été réalisées pour analyser l'impact des systèmes métriques liés affectifs.Dans la première étude, nous avons examiné l'impact de divers facteurs, y compris le sentiment de l'issue et les commentaires sur la défectuosité-pronostic d'un correctif.Ensuite, les commentaires ont laissé dans le repérage de la sortie et des dépôts utilisés comme proxy pour les discussions humaines.Les modèles explicatifs ont montré une précision et un rappel significatif, en particulier en raison de l'impact des facteurs humains de la discussion humaine, tandis que les paramètres liés au sentiment y jouent également un rôle.Dans notre deuxième étude, nous nous sommes concentrés sur la durée de l'examen du code et la résolution des problèmes, qui sont deux activités principales dans le développement de logiciels.Bien que cette étude utilise les mêmes données que l'étude précédente, les facteurs analysés l'ont plus largement été sélectionnés, vii ABSTRACT According to scientific studies, one of the best ways to improve software developers' performance is by focusing on people.For instance, Agile manifesto valued individuals and their interactions over processes and tools, while emphasizing a supportive and desirable environment for employees.Moreover, research in other fields like psychology, economic and organizational behaviour reveals that emotional well-being of people acts as a causal force for their productivity.Affects of individuals, i.e. their emotions, feelings, and mood influence human behaviour and interactions, and therefore, software development as a collaborative activity of developers can be influenced by affect too.Especially knowing that software development is a complex, cognitive, and intellectual process, affect might have a significant impact on its success.So far, very few studies have been conducted in a software engineering context to investigate how developer affect may influence the software development process and what consequences they can bring about.This PhD dissertation aims to investigate the link between affect of developers and important aspects of software engineering process, i.e., quality of the resulting work and the time taken to achieve it.For this purpose, we conducted several empirical studies on popular open source projects.First, we tried to analyze the presence of affects in software engineering artifacts, inspect their meanings in this context and verify the feasibility of automatic tool support for affect detection in the software engineering domain through empirical studies.Next, two large empirical case studies were done to analyze the impact of affective-related metrics.In the first study, comments left in the issue tracking and review repositories were considered as proxy for human discussions.Then, we investigated the impact of various factors including sentiment of issue and review comments on defect-proneness of a patch.Explanatory models showed significant precision and recall, especially due to the impact of human discussion factors while sentiment-related metrics play a role in them too.In our third study, we focused on the duration of code reviewing and issue resolution, which are two major activities in software development.While this study used the same data as the previous study, the analyzed factors were selected more widely, for instance, for affectrelated factors, measurements including sentiment, emotion and politeness of comments were computed.Affect-related factors appeared among the top 10 influential factors of proposed models.While, strong explanatory models were obtained with high precision and recall, i.e., mostly higher than 75% for both precision and recall.Findings of these last two studies revealed that affect-related factors impact major metrics in viii software development process including quality and time taken to finish main activities, i.e., code reviewing and issue resolution.This is even more important for open source projects, since recently, many popular open source projects and even code repository like Github started to look for a possible solution to deal with conflicts, in the form of codes of conduct.Large software projects like open source projects, are constructed and maintained collaboratively by teams of developers and testers, who are typically geographically dispersed.This dispersion creates a distance between team members, hiding feelings of distress or (un)happiness from their manager, which prevents him or her from using remediation techniques for those feelings.Automatic affect measurement from software engineering artifacts can help managers to monitor their team environments affect-wise and increase their emotional-awareness.This finally may lead to better decision making for managers at the appropriate time to boost the atmosphere of their team and to deal with conflicts or obstacles before they are getting perplexing and insoluble.We conducted an empirical study to understand codes of conduct and their role in open source projects.We hope that this evaluation of codes of conduct and our results with automated affect measurements will be able to enable practitioners to not only notice problems, but also evaluate possible countermeasures to take.

Read the paper · More papers on PaperTik