[explained] how do you feel, developer? an explanatory theory of the impact of affects on programming performance

2018-07-10

This post is part of the scicomm series [Explained]. Read about it.


Graziotin, D., Wang, X., & Abrahamsson, P. (2015). [How do you feel, developer? An explanatory theory of the impact of affects on programming performance](https://peerj.com/articles/cs-18/). PeerJ Computer Science, 1, e18. doi:[10.7717/peerj-cs.18](http://https//doi.org/10.7717/peerj-cs.18)

Open access. Click the link and read the study.

We have established that pre-existing affect (or, one might dare to say, happiness) of software developers is positively correlated with analytic problem solving performance and that the real-time emotions raised by a programming tasks are positively correlated with the task productivity. Nice, what now?

In science it is interesting to move away from “lab” research that studies how entities are related with each others in absolute. That is, X has a relationship with Y. Sometimes, we also want to have a higher level view and understand the context, the dynamics, the players, and, more interestingly, how these relationships develop and change over time. We call the former approach variance based, the latter process based. This is what we did in our study published at PeerJ Computer Science.

We molested followed very closely two developers working on the same project for 5 weeks. We observed them, interviewed them, took notes, and analyzed the so-called qualitative data we gathered (that is, not numbers to compute statistics with). By coding the data (in other words, tagging and classifying interview transcripts), we constructed a theory that explains what happens when developers feel happier and thus perform better.

The following picture is a summary of it, but the theory is actually the entire paper.

A theory of the impact of the affects on programming performance.
Distributed with permission of myself under the terms of the Creative Commons Attribution License. Source: https://doi.org/10.7717/peerj-cs.18/fig-2.

It is rather simple. High level: things (events) happen and cause emotional reactions and/or moods to developers. This affect influences how we focus on the code and actions towards medium and long-term goals. This focus influences how much we accomplish in terms of coding.

More details: we classify the event types according to where they originate from (while at work or not) and whether they could be observed by third-party or not (public or private). We theorize that certain emotions and moods, named attractors, have a super boost effect on focus and performance. We do not know why or how to really distinguish them from “normal” emotional experiences.

This type of research is uncommon outside of the social science (but it is becoming more common in software engineering) and it can be classified as qualitative research. Qualitative research is as important as quantitative research because it is better at providing a higher level view of things, see how they evolve over time, and explain how and why things happen. Quantitative research often tests all these relationships numerically. Both types of research are very important.


I do not use a commenting system anymore, but I would be glad to read your feedback. Feel free to contact me.