The Human Side of Software Engineering Teams
The most common human-related challenges that teams face.
This is the latest issue of my newsletter. Each week I cover the latest research and perspectives on developer productivity.
This week I read The Human Side of Software Engineering Teams: An Investigation of Contemporary Challenges by Marco Hoffmann, Daniel Mendez, Fabian Fagerholm, and Anton Luckhardt. In this study, researchers sought to develop a list of the most common human challenges in software engineering.
This paper sets the foundation for future studies exploring the relationship between human challenges and developer productivity. It also offers a list that may be useful for managers to identify potential improvements in their teams.
My summary of the paper
Software engineering is a complex activity with many challenges, one of which being that it requires developers to work together to build products. Previous research has highlighted some of the human-related issues in software engineering, such as communication or how teams treat each other, but had not yet put forward a comprehensive set of challenges.
In this study, researchers surveyed 192 software engineers to gauge the frequency and severity of human challenges, as well as strategies to address them. Additionally, they examined whether distributed work environments exacerbate these challenges.
Here are the key findings:
Common human challenges in software engineering
In order to understand which human challenges matter most, developers were asked to rate the criticality and frequency of a set of challenges compiled from prior research. The researchers calculated the mean and median values of all responses for each challenge. Then, to rank the challenges in order of importance, they introduced a property called “Impact.” A challenge that occurs often and is critical has a high impact.
The two most impactful challenges identified were insufficient analysis at the beginning of a task and lack of leadership. Other impactful challenges included missing documentation, demotivation, and information not being made known to the team.
The researchers hypothesize that insufficient analysis at the beginning of a task was seen as highly impactful because it can have a ripple effect, and can lead to problems such as a misallocation of time, staff, or resources. When asked how to tackle this challenge, developers suggested dedicated meetings for reviews, or special time slots for team members to ask about areas they have insufficient knowledge about. Developers also said a formal specification process, if it doesn’t already exist, would be beneficial.
Developers proposed that lack of leadership, the second most impactful challenge, could be mitigated through leadership coaching for current and future leaders, structured feedback sessions, retrospectives, and the use of software tools to gauge team satisfaction.
Building a more complete list of challenges
To ensure their list of challenges was up to date and relevant, the survey prompted developers to contribute any additional human-related challenges that were missing from the predefined list. Nearly half of the participants responded.
The researchers then categorized the challenges into two types: interpersonal challenges, involving challenges that occur when people interact with each other, and intrapersonal challenges, encompassing burdens of any sort on an individual that may impact the work they do in a negative way (e.g., the emotional state of the individual).
The impact of remote work on team challenges
Researchers also explored whether remote work affects the frequency or severity of challenges in teams. They asked multiple questions to assess the degree of a team’s virtualization, then analyzed how team virtualization influenced the challenges studied.
The analysis revealed that increasing the virtualization of teams could lead to a higher frequency for some human challenges:
Working with an offshore team was linked to more frequent occurrences of challenges such as neglecting business needs and dealing with frequently changing team members.
Working from remote was also associated with an increase in the frequency of frequently changing team members.
Geographically dispersed team experienced higher frequencies of challenges such as neglecting business needs and conflicts of interest at the management level.
The researchers suggest that distributed team members may have weaker bonds with their colleagues, which could result in reduced mutual understanding and less loyalty towards the company.
Final thoughts
This paper lays a foundation for some exciting future research, particularly in understanding the link between human-related challenges and developer productivity. While most leaders recognize that communication, collaboration, and mentorship are important factors that can help or hinder productivity, this study sheds light on which problems are experienced by most often. In doing so, it paves the way for researchers to quantify the actual impact of these problems.
That’s it for this week! If you’re interested in reading a guide for running an internal survey to identify problems impacting developer productivity, send me a connection request with the note “guide.”
Subscribe here if you haven’t already:
-Abi