Using Biometric Sensors to Increase Developers' Productivity
Total Page:16
File Type:pdf, Size:1020Kb
Zurich Open Repository and Archive University of Zurich Main Library Strickhofstrasse 39 CH-8057 Zurich www.zora.uzh.ch Year: 2016 Using Biometric Sensors to Increase Developers’ Productivity Müller, Sebastian Abstract: The development of software is a cost- and people-intensive process. For years, the software development industry has been coping with a shortage of software developers. Besides just training even more software developers, an alternative and particularly promising way to tackle this problem, is to boost the productivity of every single developer. Traditionally, research on developers’ productivity has primarily focused on assessing their output using certain metrics and has therefore suffered from two major drawbacks: most of these approaches do not take into account the individual differences that exist between software developers, and the metrics used for these approaches can, in most cases, only be calculated once the work is done. Emerging biometric sensors offer a new opportunity to gain a better understanding of what developers perceive during their work and thereby a new way to better understand what aspects are affecting developers’ productivity. The basic idea behind biometric sensing is to measure aperson’s physiological features that in turn can be linked to a person’s psychological states. A multitude of studies in psychology have already shown that biometric measurements can be used to assess the emotional and cognitive states of a developer. In our research, we investigate the use of biometric measurements to assess a developer’s perceived difficulty, progress and emotions while working on a change task. Basedon the assumption that more difficult code has a higher likelihood to contain a bug compared to codethatis perceived as being easier, we also investigate the use of biometric measurements to identify code quality concerns in the code developers are changing. Our vision is to gain a better understanding of what every individual developer experiences, feels or perceives during his/her work, and how these aspects affect his/her productivity, to suggest approaches which increase every individual developer’s productivity. In our research, we conducted three studies, ranging from lab experiments to a two-week field study, to investigate the use of biometric sensors in a software development context. The results of our studies provide initial evidence that biometrics can be used to better understand what a developer perceives in realtime, while s/he is working on a change task. In particular, using biometric data, we were able to distinguish between positive and negative emotions, phases of high and low progress and to predict a developer’s perceived difficulty while working on a change task with high accuracy. Additionally, we were able to use biometrics to predict code quality concerns that were identified in peer code reviews. These findings open up many opportunities for better supporting developers in their work, for instance by automatically and instantaneously detecting potential quality concerns in the code, before they are committed to the code repository, or by avoiding costly interruptions when a developer is in the flow and making a lot of progress. Posted at the Zurich Open Repository and Archive, University of Zurich ZORA URL: https://doi.org/10.5167/uzh-126890 Dissertation Published Version Originally published at: Müller, Sebastian. Using Biometric Sensors to Increase Developers’ Productivity. 2016, University of Zurich, Faculty of Economics. 2 Using Biometric Sensors to Increase Developers' Productivity Dissertation submitted to the Faculty of Business, Economics and Informatics of the University of Zurich to obtain the degree of Doktor der Wissenschaften, Dr. sc. (corresponds to Doctor of Science, PhD) presented by Sebastian C. Müller from Vaduz, Liechtenstein approved in April 2016 at the request of Prof. Dr. Thomas Fritz, University of Zurich, Switzerland Prof. Dr. Emerson Murphy-Hill, NC State University, USA Prof. Dr. Harald C. Gall, University of Zurich, Switzerland 2016 The Faculty of Business, Economics and Informatics of the University of Zurich hereby authorizes the printing of this dissertation, without indicating an opinion of the views expressed in the work. Zurich, April 6, 2016 Chairwoman of the Doctoral Board: Prof. Dr. Elaine M. Huang Acknowledgements It is my pleasure to thank all the people who made this thesis possible. First and foremost, I would like to thank my advisor, Thomas Fritz, for his continuous guidance and support during my doctoral studies. No matter how busy he was or where in the world he was working, he always found time when I was looking for advice. I’m also especially grateful to Harald Gall. He made this thesis possible in the first place, by giving me the opportunity to work in his group. He also agreed to be part of my PhD committee and spent his precious time to evaluate my thesis. Special thanks go to Emerson Murphy-Hill for being part of my PhD com- mittee as an external examiner and for dedicating his valuable time to evaluate my work. I appreciate the feedback that Andrew Begel gave me about my research throughout my studies, in particular the frequent discussions we had about how to collect and analyze biometric data. During a PhD there are many ups and downs. It would not have been possible to make it through all the downs and celebrate the ups without my fellow members of the SEAL group. It was an awesome experience to work with you all. A lot of thanks to Amancio Bouza, André Meyer, Carol Alexandru, Chaman Wijesiriwardana, Christian Inzinger, Emanuel Giger, Gerald Schermann, Giacomo Ghezzi, Jürgen Cito, Katja Kevic, Manuela Züger, Martin Brandtner, ii Matthias Hert, Michael Würsch, Philipp Leitner, and Sebastiano Panichella for the fun time we had in the office and for their valuable feedback on my research. Last but not least, I want to thank my girlfriend, Martina, and my parents, Judith and Roland, for their unconditional support during my studies. Sebastian Müller Zürich, April 2016 Abstract The development of software is a cost- and people-intensive process. For years, the software development industry has been coping with a shortage of software developers. Besides just training even more software developers, an alternative and particularly promising way to tackle this problem, is to boost the productivity of every single developer. Traditionally, research on developers’ productivity has primarily focused on assessing their output using certain metrics and has therefore suffered from two major drawbacks: most of these approaches do not take into account the individual differences that exist between software developers, and the metrics used for these approaches can, in most cases, only be calculated once the work is done. Emerging biometric sensors offer a new opportunity to gain a better under- standing of what developers perceive during their work and thereby a new way to better understand what aspects are affecting developers’ productivity. The basic idea behind biometric sensing is to measure a person’s physiological features that in turn can be linked to a person’s psychological states. A multitude of studies in psychology have already shown that biometric measurements can be used to assess the emotional and cognitive states of a developer. In our research, we investigate the use of biometric measurements to assess a developer’s perceived difficulty, progress and emotions while working on a change task. Based on the assumption that more difficult code has a higher likelihood to contain a bug compared to code that is perceived as being easier, we also investigate the use of biometric measurements to identify code quality concerns in the code developers are changing. Our vision is to gain a better understanding iv of what every individual developer experiences, feels or perceives during his/her work, and how these aspects affect his/her productivity, to suggest approaches which increase every individual developer’s productivity. In our research, we conducted three studies, ranging from lab experiments to a two-week field study, to investigate the use of biometric sensors in a software development context. The results of our studies provide initial evidence that biometrics can be used to better understand what a developer perceives in real- time, while s/he is working on a change task. In particular, using biometric data, we were able to distinguish between positive and negative emotions, phases of high and low progress and to predict a developer’s perceived difficulty while working on a change task with high accuracy. Additionally, we were able to use biometrics to predict code quality concerns that were identified in peer code reviews. These findings open up many opportunities for better supporting developers in their work, for instance by automatically and instantaneously detecting potential quality concerns in the code, before they are committed to the code repository, or by avoiding costly interruptions when a developer is in the flow and making a lot of progress. Zusammenfassung Die Entwicklung von Software ist ein kosten- und arbeitsintensiver Prozess. Trotz der wachsenden Anzahl an Softwareentwicklern kämpft die Software-Industrie seit Jahren mit einem Mangel an Softwareentwicklern. Neben der Ausbildung von weit- eren Softwareentwicklern liegt eine besonders vielsprechende Lösungsmöglichkeit darin, die Produktivität jedes einzelnen Softwareentwicklers zu steigern. Forschung mit dem Ziel die Produktivität eines Entwicklers zu steigern