Home Stretch | The emotions of software developers
Software engineering is often seen as a purely technical discipline, but emotions play a role in this field as well. PhD candidate Nathan Cassee researched how expressions of negative emotions influence the choices made by software developers. Last month, he defended his dissertation (with honors) at the Department of Mathematics & Computer Science.
“We know software engineers experience and express emotions and sentiments during different software engineering activities,” says Nathan Cassee. “With my research, I wanted to provide more insight into the influence of these emotions on their work and decisions.” In so doing, he mainly focused on how negative emotions can subconsciously affect the prioritization of technical problems.
The human aspects
Cassee first studied software engineering at Fontys University of Applied Sciences, after which he completed the Master’s Program of Computer Science and Engineering at TU/e. He’s interested in the human aspects of software engineering, a sub-area of computer science that highlights the human side of the development process, including emotions, team dynamics, and collaboration. “We research how software engineers work together to meet technical challenges,” he explains.
During the development process, software engineers communicate a lot via written text, both with each other and with clients, managers, and other stakeholders. This often happens on platforms such as GitHub, which offers tools allowing engineers and developers to efficiently collaborate on code. If something’s not working, they can file a report or complaint that describes the problem. “We know that negative emotions are often expressed on these kinds of platforms, but the effect of this was hitherto unknown,” says Cassee.
Cassee started his research with a literature study. There are many AI tools that can automatically classify written communication based on the emotions expressed. “This can be tricky, because developers often use specific terminology,” he explains. An expression such as ‘to kill a process’ can sound negative to an AI tool, while for developers it is a neutral, factual term. Part of his dissertation focuses, therefore, on improving these AI tools to better interpret domain-specific language and accurately assess communication.
Negativity in source code
Cassee also researched how software developers express emotions in source code when describing technical problems. Source code is the set of instructions that developers write to build software applications, which is ultimately converted into machine code so that the computer can execute it. Oftentimes, problem descriptions in source code don’t only include technical details, but also expressions of emotion such as frustration or annoyance.
In a controlled experiment, Cassee had software developers assign a priority score to technical problems to investigate whether negativity in the description played a role. “We found that between one-third and one-half of developers rated the priority higher if the problem description emphasized negative emotions.” Negativity increases the likelihood that a problem will be given a higher priority, generally without people being aware of this.
Tension
Although many developers indicated in surveys that the use of negative language shouldn’t have any influence on prioritization, the research showed otherwise. “Developers that think negative emotions don’t affect them turned out to be affected after all. This creates a certain tension,” Cassee explains.
He thinks this can also influence collaboration within teams. “If tasks are chosen based on the tone of the problem description rather than technical criteria, this can cause friction,” he asserts.
By the way, he’s not saying there should be no emotions at all in technical remarks, he emphasizes. “We cannot expect that nobody will express themselves negatively anymore. We’re still human, and showing emotions is part of that,” he says. “But all of this has brought up enough interesting questions that I would like to investigate further.”
In the technical world, we often take facts and logics as our point of departure. Emotions are said to be irrelevant. But my research shows that emotions definitely have an influence
Team dynamics
Cassee’s research focuses on a small aspect of the technical process, but he thinks there’s lots of research left to do in this area. However, the availability of data is often the limiting factor for researchers. “More and more experiments and surveys are conducted because they’re feasible. But for the moment, little research has been done on team dynamics in software engineering: how teams work together in small or large companies, the role of managers, and the importance of expressing emotions in the workplace,” he explains.
“These questions are interesting and important, but also difficult to answer, unfortunately. For this kind of research you need access to organizations, so you can study the behavior of teams, which most companies aren’t too keen on. In addition, it requires a multidisciplinary approach and close collaboration with fields such as sociology or psychology.”
That being said, he does think more attention should be paid to the human aspect of software engineering. “In the technical world of software engineering, we often take facts and logics as our point of departure. Emotions are said to be irrelevant. But my research shows that emotions definitely have an influence. It’s important to be aware of this and gain more insight into it.”
PhD in the picture
What is that on the cover of your dissertation?
“The old theater masks that represent happiness and anger – the two great, contrasting emotions. They are overlayed with pieces of technical source code in the programming language. These are the pieces of information that ultimately influence choices like prioritization.”
You’re at a birthday party. How do you explain your research?
“I research how expressions of emotion can influence the software development process.”
How do you blow off steam outside of your research?
“Not enough,” he laughs. “At one point I did climbing, but I gave that up. I still run a lot and like to hang out with friends.”
What advice would you give to future PhD candidates?
“My thesis supervisor always asked me: ‘Are you still enjoying yourself?’ He would also say: “Make sure you have fun doing what you’re doing.’ It took me a few years to realize why he kept saying that, but he was right. Everyone obviously wants to make an impact and get published, but what do you yourself like working on? What do you really enjoy doing? That’s at least as important.”
What is your next step?
“I’ll leave for Canada in a few weeks to do a postdoc. There, I’ll continue my work on the human aspect of software engineering and study the influence of generative AI tools – such as ChatGPT and Copilot – on collaboration within teams, among other things.”
Discussion