We summarized our research on using biometrics to assess developers’ cognitive and emotional states in a blogpost on the IEEE Software blog. Check out the blogpost: http://blog.ieeesoftware.org/2016/01/using-biometrics-to-assess-developers.html
We are very happy to announce that our research group got two papers and a technical briefing accepted at ICSE 2016 in Austin, Texas.
The first accepted paper entitled “The Impact of Test Case Summaries on Bug Fixing Performance: An Empirical Investigation” was written in collaboration with the University of Delft. The authors of the paper are : Sebastiano Panichella, Annibale Panichella, Moritz Beller, Andy Zaidman and Harald Gall.
Abstract: “Automated test generation tools have been widely investigated with the goal of reducing the cost of testing activities. However, generated tests have been shown not to help developers in detecting and finding more bugs even though they reach higher structural coverage compared to manual testing. The main reason is that generated tests are difficult to understand and maintain.
Our paper proposes an approach which automatically generates test case summaries of the portion of code exercised by each individual test, thereby improving understandability. We argue that this approach can complement the current techniques around automated unit test generation or search-based techniques designed to generate a possibly minimal set of test cases. In evaluating our approach we found that (1) developers find twice as many bugs, and (2) test case summaries significantly improve the comprehensibility of test cases, which is considered particularly useful by developers.”
A preprint of the paper can be found online.
The second paper is entitled “Using (Bio)Metrics to Predict Code Quality Online” and was written by Sebastian Müller and Thomas Fritz. The paper investigates the use of biometrics, such as heart rate variability (HRV) or electro-dermal activity (EDA) to determine the difficulty that developers experience while working on real world change tasks and automatically identify code quality concerns while a developer is making a change to the code.
A preprint of the paper will be available soon.
Additionally, we had a technical briefing on “Using Docker Containers to Improve Reproducibility in Software Engineering Research”, by Jürgen Cito and Harald Gall, accepted, where we will present opportunities to aid reproducibility to the SE community.
We are excited that our paper “Interruptibility of Software Developers and its Prediction Using Psycho-Physiological Sensors” by Manuela Züger and Thomas Fritz was accepted for CHI 2015 and like to share a preprint with you.
Interruptions of knowledge workers are common and can cause a high cost if they happen at inopportune moments. Our paper presents a lab and a field study with a total of 20 software developers, where we examined the use of psycho-physiological sensors to measure interruptibility of a knowledge worker in a real-world context.
The results show that a Naïve Bayes classifier can be used to automatically assess states of a knowledge worker’s interruptibility with high accuracy in the lab as well as in the field. This demonstrates the potential of psycho-physiological sensors to avoid expensive interruptions. For instance, such a classifier could be used to automatically turn of notifications while a knowledge worker’s interruptibility is low.
The preprint of the paper can be downloaded here.
Our paper “Stuck and Frustrated or In Flow and Happy: Sensing Developers’ Emotions and Progress” by Sebastian Müller and Thomas Fritz was accepted for ICSE 2015 and a preprint of the paper is now available.
The paper presents a study that investigates developers’ emotions and progress while working on a change task and how biometric measurements, such as heart rate or pupil sizes, can be used to assess them. In the study with 17 participants working on two change tasks each, the participants were wearing three biometric sensors and had to periodically assess their emotions and progress.
The results show that the wide range of emotions experienced by developers is correlated with their perceived progress on the change tasks. To investigate whether we can use biometric sensors to distinguish between positive and negative emotions as well as episodes of low and high progress that developers experience during change tasks, we applied a machine learning approach to the collected data.
Over the course of the participants’ work on both change tasks we collected biometric data for a total of 213 intervals. The following figure illustrates a set of four such intervals together with the collected EDA and the heart rate signal as well as the participant’s emotion and progress ratings. Especially for the EDA signal, the example shows a visible difference between the first episode with medium progress and higher valence compared to the last episode with the developer being stuck and a lower valence.
Our analysis shows that we can build a classifier to distinguish between positive and negative emotions in 71.36% and between low and high progress in 67.70% of all cases. These results open up opportunities for improving a developer’s productivity. For instance, one could use such a classifier for providing recommendations at opportune moments when a developer is stuck and making no progress.
The preprint of the paper can be downloaded here.
We are excited to inform you that our paper “Stuck and Frustrated or In Flow and Happy: Sensing Developers’ Emotions and Progress” got accepted for ICSE 2015, taking place in Florence, Italy.
Last week, a couple of seals attended the International Conference on Software Engineering 2014 (ICSE 2014) as well as the co-located Working Conference on Mining Software Repositories 2014 (MSR 2014) in Hyderabad, India.
Katja Kevic presented her NIER paper on “Automatic Search Term Identification for Change Tasks” at ICSE and her paper “A Dictionary to Translate Change Tasks to Source Code” at MSR.
Sebastian Müller and Andrew Begel presented their paper “Using Psycho-Physiological Measures to Assess Task Difficulty in Software Development” at the ICSE main research track.
Knowing how hard a software development task is as it is being performed can be helpful for many reasons. For instance, the estimate for completing a task might be revised or the likelihood of a bug occurring the source code might be predicted. Furthermore, a real time task difficulty classification could be used to stop software developers when they experience difficulties and prevent them from introducing bugs into the code.