|Happy Programmers Produce Better Apps|
|Written by Mike James|
|Monday, 10 July 2017|
There is a saying that "happy hens lay better eggs" and so it seems to be with programmers. We are not the logical automatons that we pretend to be and that management would like us to be. It really does matter that we are allowed to be free range ...
Back in April we reported on what made programmers unhappy, see On the Unhappiness of Software Developers, and now the same team is back with another study that tries to find out what impact being happy or unhappy has. Daniel Graziotin, Fabian Fagerholm, Xiaofeng Wang, and Pekka Abrahamsson of the University of Stuttgart, University of Helsinki and the Free University of Bozen-Bolzano used a survey to find out what impact being happy or unhappy had on the development process as well as the developer.
The effects of being unhappy on the developer were fairly predictable -
The most significant consequences of unhappiness for the developers’ own being are: low cognitive performance, mental unease or disorder, low motivation and work withdrawal.
Categories for consequences of unhappiness. The numbers indicate the amount of coded instances at each level, including subcategories.
Work withdrawal is one thing that has consequences for the rest of the team:
Work withdrawal is a very destructive consequence of unhappiness, and it emerged often among the responses. Work withdrawal is a family of behaviours that is defined as employees’ attempts to remove themselves, either temporarily or permanently, from quotidian work tasks. The gravity of this consequence ranged from switching to another task, e.g.,
“[. . . ] you spend like 2 hours investigating on Google for a similar issue and how it was resolved, you find nothing, desperation kicks in. It clouds your mind and need to do other things to clear it”,
to considering quitting developing software,
“I really start to doubt myself and question whether I’m fit to be a software developer in the first place”, or even, “I left the company”.
Another consequence is broken flow. If you think that interruptions are your only problem, then you need to take into account that unhappiness could cause you to interrupt yourself:
Unhappiness causes interruptions in developers’ flow, resulting in adverse effects on the process. As put by a participant,
‘things like that [of unhappiness] often cause long delays, or cause one getting out of the flow, making it difficult to pick up the work again where one has left off. ”.
Unhappiness and broken flow make developers stand up and
“[. . . ] make me quit and take a break”; the feeling of getting stuck is persistent.
Tragic though all this is, what about the code?!
As expected by the foci of previous research, the most important consequence of unhappiness of software developers was low software quality.
Low code quality represents the consequences of unhappiness of developers that are related to deterioration of the artefacts’ quality. The participants reported that
“eventually [due to negative experiences], code quality cannot be assured. So this will make my code messy and more bug can be found in it”,
but also mentioned making the code less performant, or
“As a result my code becomes sloppier”.
Moreover, participants also felt that they could discharge quality practices, e.g.,
“[. . . ] so I cannot follow the standard design pattern”,
as a way to cope with the negative experiences.
And to the unforgivable sin of code deletion:
We found some instances of participants who destroyed the task-related codebase, e.g.,
“I deleted the code that I was writing because I was a bit angry”,
up to deleting entire projects:
“I have deleted entire projects to start over with code that didn’t seem to be going in a wrong direction”.
The only problem here is that I can think of plenty of programmers who, while being otherwise happy, have deleted a code base simply to be able to start over - something that made them even happier.
Categories for consequences of happiness. The numbers indicate the amount of coded instances at each level, including sub-categories.
The analysis of the effect of happiness on programmers concluded mostly things you might expect - it made them more confident, more creative etc. But the key finding is:
The main finding of our study is that software developers experience several consequences of unhappiness and happiness, with most of the consequences of unhappiness being external (55%) and most consequences of happiness pertaining to the developer’s own being (58%) (internal consequences). We may say that broadly speaking, developers more frequently consider their happiness to benefit themselves, and their unhappiness to be detrimental to others.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Monday, 10 July 2017 )|