D. Graziotin, X. Wang, P. Abrahamsson, “Happy software developers solve problems better: psychological measurements in empirical software engineering“,PeerJ, vol. 2, pp. e289, 2014. DOI:10.7717/peerj.289
Open access. Click the link and read the study.
In this study we tested a series of hypotheses coming from various psychology fields. These hypotheses were about a difference of intellectual (and cognitive-driven) performance in terms of creativity (finding new, surprising, but effective solutions) and analytical (logical, mathematical) problem solving. The hypotheses were tested on various types of workers but not software developers.
We wanted to perform a study where all the tools and measurements came from psychology research and were validated. So, we designed a quasi experiment in a laboratory, where 42 BSc and MSc students had their pre-existing affect (strictly speaking, mood or happiness) measured and then conducted two tasks. The first task was about creativity, the second about analytic problem solving.
For measuring the pre-existing affect we opted for the Scale of Positive And Negative Experience (SPANE). It is a questionnaire, where participants rate how often they felt in certain ways over the last four weeks.
The analytic task was similar to algorithm designing and executing. We setup the opensource Psychology Experiment Building Language (PEBL) to load the Tower of London test, which resembles the more famous Tower of Hanoi game. PEBL was able to collect the measures that let us calculate a score for the analytic performance.
We compared the scores obtained in both task with the pre-existing affect of developers. The results showed that the happiest software developers outperformed the other developers in terms of analytic performance. No statistically significant results could be reached about creativity.
Our study offered an initial support to the claim that happy software developers perform better. But there is more. This study was likely the first in software engineering research to completely adopt psychological measurements, theories, and concepts related to affect and performance in terms of creativity and analytic problem solving. Finally, we raised the need to perform studies on the human aspects of software engineering properly using psychology.