Emotional Dynamics in Software Engineering: A Comprehensive Review of Cognitive Skills and Affective States
摘要
Context: While performing program comprehension or any other software development task, programmers experience various emotions. Programmers often suffer anxiety and frustration when they encounter difficulties writing programs or developing software products. So, it is vital to study the emotions of programmers or software engineers since it dramatically impacts productivity and job performance. Aim: This study aims to provide a comprehensive review of the emotions-based cognitive skills of programmers. We collected around 200 studies from six prime digital libraries and shortlisted the 29 most suitable studies. Method: In this study, we analyze the methodologies, publication details, number of participants, and sensors used in the studies under review by framing four research questions. Furthermore, we justified these research questions through graphs and charts. Results: According to our study, most research works (22/29) were performed after 2013, and 70 percent of all reviewed articles are from reputable journals. While most of the research relies on survey or questionnaire-based methods to assess emotions, a few publications, namely 9/29 studies, have employed sensors to identify the programmers’ feelings. In around 24% of all research, the number of participants in the experiment exceeded 80. Examining the techniques for measuring emotions, most research consists of experimental laboratory studies (9/29) and survey research with questionnaires (8/29). Conclusion: We conducted a thorough review to evaluate the emotional aspects of programmers, providing insights for practitioners to assess developers’ emotions during program comprehension, which will help in team grouping and hiring processes.