Characterizing Software Developers by Perceptions of Productivity
This is the latest issue of my newsletter. Each week I cover the latest research and perspectives on developer productivity. Subscribe here to get future issues.
This week I read Characterizing Software Developers by Perceptions of Productivity by André N. Meyer, Thomas Zimmerman, and Thomas Fritz. While previous work found that developers have varying definitions of what it means to be productive, this study aimed to help leaders find a path forward by categorizing developers based on their ideal workday.
This paper may be helpful for better understanding the wide range of definitions of productivity, as well as how managers can better support their teams.
My summary of the paper
Previous research has provided valuable insights for better understanding and improving engineering productivity. However, these studies often neglect to take into account the varying perceptions amongst developers of what it means to be productive, which may make it challenging for leaders to confidently put findings from some prior studies into practice.
Developers are different in what they consider as a productive or unproductive workday; this study aimed to help leaders make sense of these differences, so they can better support their teams. Researchers conducted this study through a survey with 413 developers at Microsoft. The survey asked questions about developers’ definitions of productive and unproductive workdays, the factors influencing their productivity, and the usefulness of different productivity measures for them. Then, the researchers normalized responses and clustered participants into groups.
Here’s what their cluster analysis identified:
Six types of developers
The researchers’ analysis surfaced six clusters, each representing a group of developers with similar perceptions of productivity. They named these clusters: social, lone, focused, balanced, leading, and goal-oriented developers.
The table below describes the characteristics of the six clusters in more detail. In particular it shares the name of the cluster, the statements for which half or more participants in the cluster gave HIGHER scores (second column), and the statements for which half or more participants in the cluster gave LOWER scores (third column). Prefixed with 🔨, the table also lists the productivity measures which developers found potentially helpful for reflecting about work (second column), or not helpful (third column) to the majority of developers within that cluster.
Recommended by LinkedIn
Possibly the most prominent difference between clusters is between social and lone developers, where the former embrace social interactions while the latter feel productive when working alone. Also notable, focused developers and goal-oriented developers are related: one group feels productive when focused on a single task at a time, while the other feels productive when completing or making progress on tasks.
The table also shows which measures developers reported as interesting for self-reflection about their work. For example, developers in most clusters found “time spent coding” and the “longest period focused on a task without an interruption” as being interesting for reflecting about their own work. Not surprisingly, lone developers are particularly interested in using measures about the number and duration of interruptions, and focused developers are interested in the number of tasks they worked on.
“The differences between software developers’ preferred collaboration and work styles show that not all developers are alike, and that the cluster an individual or team belongs to could be a basis for tailoring actions for improving their work and productivity.”
The authors conclude with some recommendations for applying these findings:
Final thoughts
This paper may prompt leaders to consider the preferences on their teams when choosing communication format or when assigning certain tasks to developers. By better understanding how team members perceive productivity, they may be able to better support them.
Part of this paper is also related to other work on the benefits of self-reflection: in another study, developers were asked to set goals to improve their work habits, and then regularly reflected on their progress towards those goals—this led to productive behavior changes that increased productivity. This study suggests that developers’ individual productivity and satisfaction may benefit from regularly reflecting on their workday, paying special attention to the number of tasks they worked on, the number of interruptions, and uninterrupted time.
That’s it for this week! If you’re interested in more research, send me a connection request or message on LinkedIn with the note “research” and I’ll share a downloadable bundle of my top 10 favorite papers of this year.
Turning ideas into working software so you can focus on your business.
1yThank you for sharing this. I’ve observed companies tend to create a culture that optimizes for only one of these groups, leaving the rest to figure out how to cope in an environment that’s not their strength, or to move on. I’ve not yet found an environment that can accommodate all of these at the same time.
I help senior software engineer take control of career through coaching program
1yLove it! I can quickly identify some of them in my team :)
System Engineer | Engineer Coordinator
1yAderlei Coraini
Senior Software Developer | Software Manager | Writer | Electronics Developer
1yThanks for this nice share, Abi. Enlights. Good read.