Recognizing Developers' Emotions while Programming

Developers experience a wide range of emotions during programming tasks, which may have an impact on job performance. In this paper, we present an empirical study aimed at (i) investigating the link between emotion and progress, (ii) understanding the triggers for developers' emotions and the strategies to deal with negative ones, (iii) identifying the minimal set of non-invasive biometric sensors for emotion recognition during programming tasks. Results confirm previous findings about the relation between emotions and perceived productivity. Furthermore, we show that developers' emotions can be reliably recognized using only a wristband capturing the electrodermal activity and heart-related metrics.

[1]  J. Russell Culture and the categorization of emotions. , 1991, Psychological bulletin.

[2]  Luca Citi,et al.  cvxEDA: A Convex Optimization Approach to Electrodermal Activity Processing , 2016, IEEE Transactions on Biomedical Engineering.

[3]  Jiahui Wang,et al.  Identifying valence and arousal levels via connectivity between EEG channels , 2015, 2015 International Conference on Affective Computing and Intelligent Interaction (ACII).

[4]  Pekka Abrahamsson,et al.  Do feelings matter? On the correlation of affects and the self‐assessed productivity in software engineering , 2014, J. Softw. Evol. Process..

[5]  Marco Guerini,et al.  Deep Feelings: A Massive Cross-Lingual Study on the Relation between Emotions and Virality , 2015, WWW.

[6]  Nicole Novielli,et al.  Anger and Its Direction in Collaborative Software Development , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: New Ideas and Emerging Technologies Results Track (ICSE-NIER).

[7]  Thomas Fritz,et al.  Sensing Interruptibility in the Office: A Field Study on the Use of Biometric and Computer Interaction Sensors , 2018, CHI.

[8]  Hugo Silva,et al.  Multimodal biosignal sensor data handling for emotion recognition , 2011, 2011 IEEE SENSORS Proceedings.

[9]  Mauricio A. Álvarez,et al.  Gaussian process dynamical models for multimodal affect recognition , 2016, 2016 38th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC).

[10]  Sebastian Raschka,et al.  Model Evaluation, Model Selection, and Algorithm Selection in Machine Learning , 2018, ArXiv.

[11]  Kai Petersen,et al.  Time pressure: a controlled experiment of test case development and requirements review , 2014, ICSE.

[12]  Pekka Abrahamsson,et al.  Happy software developers solve problems better: psychological measurements in empirical software engineering , 2014, PeerJ.

[13]  J. Russell A circumplex model of affect. , 1980 .

[14]  Christian Mühl,et al.  Valence, arousal and dominance in the EEG during game play , 2013, Int. J. Auton. Adapt. Commun. Syst..

[15]  Bernd Brügge,et al.  Towards emotional awareness in software development teams , 2013, ESEC/FSE 2013.

[16]  Mohammad Soleymani,et al.  Analysis of EEG Signals and Facial Expressions for Continuous Emotion Detection , 2016, IEEE Transactions on Affective Computing.

[17]  Eugénio C. Oliveira,et al.  A Hybrid Approach at Emotional State Detection: Merging Theoretical Models of Emotion with Data-Driven Statistical Classifiers , 2013, 2013 IEEE/WIC/ACM International Joint Conferences on Web Intelligence (WI) and Intelligent Agent Technologies (IAT).

[18]  J. Krystal,et al.  Move over ANOVA: progress in analyzing repeated-measures data and its reflection in papers published in the Archives of General Psychiatry. , 2004, Archives of general psychiatry.

[19]  M. Bradley,et al.  Measuring emotion: the Self-Assessment Manikin and the Semantic Differential. , 1994, Journal of behavior therapy and experimental psychiatry.

[20]  M. Csíkszentmihályi,et al.  The Experience Sampling Method , 2014 .

[21]  Elisabeth André,et al.  Emotion recognition based on physiological changes in music listening , 2008, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[22]  Nicole Novielli,et al.  A Replication Study on Code Comprehension and Expertise using Lightweight Biometric Sensors , 2019, 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC).

[23]  Shane McIntosh,et al.  Automated Parameter Optimization of Classification Techniques for Defect Prediction Models , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[24]  Xu Lei,et al.  Understanding the Influences of EEG Reference: A Large-Scale Brain Network Perspective , 2017, Front. Neurosci..

[25]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[26]  A. Viera,et al.  Understanding interobserver agreement: the kappa statistic. , 2005, Family medicine.

[27]  Jonathan Klein,et al.  Frustrating the user on purpose: a step toward building an affective computer , 2002, Interact. Comput..

[28]  Chris Parnin,et al.  Exploring Causes of Frustration for Software Developers , 2015, 2015 IEEE/ACM 8th International Workshop on Cooperative and Human Aspects of Software Engineering.

[29]  Robert M. Hierons,et al.  Do moods affect programmers’ debug performance? , 2011, Cognition, Technology & Work.

[30]  Malvina Nissim,et al.  Sentiment Polarity Classification at EVALITA: Lessons Learned and Open Challenges , 2018, IEEE Transactions on Affective Computing.

[31]  Thomas Fritz,et al.  Using (Bio)Metrics to Predict Code Quality Online , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[32]  M. Bradley,et al.  The International Affective Picture System (IAPS) in the study of emotion and attention. , 2007 .

[33]  Thomas Fritz,et al.  Software developers' perceptions of productivity , 2014, SIGSOFT FSE.

[34]  M. A. Rowe,et al.  Guide for Analysing Electrodermal Activity & Skin Conductance Responses for Psychological Experiments , 2013 .

[35]  B. Turner,et al.  Grounded Theory and Organizational Research , 1986 .

[36]  Minhaz Fahim Zibran,et al.  DEVA: sensing emotions in the valence arousal space in software engineering text , 2018, SAC.

[37]  Andrew Begel,et al.  Using psycho-physiological measures to assess task difficulty in software development , 2014, ICSE.

[38]  Nicole Novielli,et al.  Emotion detection using noninvasive low cost sensors , 2017, 2017 Seventh International Conference on Affective Computing and Intelligent Interaction (ACII).

[39]  J. Gross,et al.  Emotion elicitation using films , 1995 .

[40]  Nicole Novielli,et al.  Confusion in Code Reviews: Reasons, Impacts, and Coping Strategies , 2019, 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[41]  Nicole Novielli,et al.  Sentiment and Emotion in Software Engineering , 2019, IEEE Softw..

[42]  Miikka Kuutila,et al.  Time Pressure in Software Engineering: A Systematic Literature Review , 2019, Information and Software Technology.

[43]  Shane McIntosh,et al.  The Impact of Automated Parameter Optimization on Defect Prediction Models , 2018, IEEE Transactions on Software Engineering.

[44]  A. Kramer,et al.  Physiological metrics of mental workload: A review of recent progress , 1990, Multiple-task performance.

[45]  Pekka Abrahamsson,et al.  What happens when software developers are (un)happy , 2017, J. Syst. Softw..

[46]  Bao-Liang Lu,et al.  Emotion classification based on gamma-band EEG , 2009, 2009 Annual International Conference of the IEEE Engineering in Medicine and Biology Society.

[47]  Max Kuhn,et al.  The caret Package , 2007 .

[48]  Winslow Burleson,et al.  Affective agents: Sustaining motivation to learn through failure and state of "stuck" , 2004 .

[49]  Premkumar T. Devanbu,et al.  Whom Are You Going to Call?: Determinants of @-Mentions in GitHub Discussions , 2018, arXiv.org.

[50]  Mohammad Soleymani,et al.  Multimodal emotion recognition in response to videos (Extended abstract) , 2015, 2015 International Conference on Affective Computing and Intelligent Interaction (ACII).

[51]  Mika Mäntylä,et al.  Mining Valence, Arousal, and Dominance - Possibilities for Detecting Burnout and Productivity? , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[52]  R. Lazarus Emotion and Adaptation , 1991 .

[53]  Thierry Pun,et al.  DEAP: A Database for Emotion Analysis ;Using Physiological Signals , 2012, IEEE Transactions on Affective Computing.

[54]  Ashish Kapoor,et al.  Automatic prediction of frustration , 2007, Int. J. Hum. Comput. Stud..

[55]  Nicole Novielli,et al.  Towards Recognizing the Emotions of Developers Using Biometrics: The Design of a Field Study , 2019, 2019 IEEE/ACM 4th International Workshop on Emotion Awareness in Software Engineering (SEmotion).

[56]  Gabriele Bavota,et al.  On-demand Developer Documentation , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[57]  Thomas Fritz,et al.  Stuck and Frustrated or in Flow and Happy: Sensing Developers' Emotions and Progress , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.