The Bi-Directional Relationship Between Developer Satisfaction and Productivity
What impacts developer job satisfaction and productivity, and how do the two constructs relate?
This week I read Towards a Theory of Software Developer Job Satisfaction and Perceived Productivity, a paper by Margaret-Anne Storey, Thomas Zimmerman, Christian Bird, Jacek Czerwonka, Brendan Murphy, and Eirini Kalliamvakou. This study aimed to provide a better understanding of how various factors and activities impact developer job satisfaction and productivity, as well as how satisfaction with specific individual factors impacts productivity.
My summary of the paper
Developer productivity and job satisfaction have increasingly become points of focus in industry reports, like those from Stack Overflow and GitLab. Prior research has established the theory that job satisfaction and work performance are positively (and bi-directionally) correlated. However, there isn’t as much of an understanding of which factors impact job satisfaction and productivity.
The authors define job satisfaction as “an internal state that is expressed by affectively and/or cognitively evaluating an experienced job with some degree of favor or disfavor". Productivity is measured through self-reporting (“perceived productivity”), as explained: “Much attention has been expended on the use of metrics from mined software project data to measure productivity (in terms of velocity and quality). However, such data has been shown to be misleading and may hide activities that may drive down the productivity of an individual developer, but may drive up the productivity or satisfaction of a team overall (e.g., by mentoring newcomers), or may hide activities (e.g., learning a new skill) that influence quality over a longer period of time… These findings highlight that productivity is not only multifaceted but also highly perceptual.”
The authors conducted their research in three phases. First, they reviewed prior literature to identify 30 possible factors affecting productivity and satisfaction, as well as impediments. Next, they conducted a survey study of 591 engineers that surfaced additional factors and impediments. Finally, they ran a study to understand the relative importance of the different factors, developers’ satisfaction with those factors, and the relationship between satisfaction and productivity.
Here were the key findings from the research:
Factors that are most important to developers
Developers were asked to rate how important they felt different social and technical factors were, as well as how satisfied they were with those factors. The table below lists the factors in order of their relative importance.
Top factors impacting developer satisfaction and productivity
The researchers recognized that some of the 44 factors listed above were related, so they clustered them into composite factors (Tables 3 and 4 below). A linear regression model was built to show how the factors influence job satisfaction and perceived productivity.
The main factors influencing job satisfaction (Table 3) are doing impactful work, feeling important, and having a good work culture. We can also see that higher levels of perceived productivity drive positive job satisfaction.
The main factors influencing perceived productivity (Table 4) are work autonomy, engineering systems, and doing impactful work. Again, job satisfaction emerged as an influencing factor for perceived productivity, which further validates the bi-directional relationship between satisfaction and productivity.
Top impediments faced by developers
The researchers also looked at the challenges faced by developers, and their effect on satisfaction and productivity. They expected “poor satisfaction” with previously identified factors to be surfaced as challenges, but new factors also emerged.
A conceptual model for developer productivity and satisfaction
The authors summarize their research by proposing a general theory of developer productivity and satisfaction. Specific factors are omitted from this model because “which factors and how they impact these relationships may vary according to specific contextual work factors… we emphasize that the factors, challenges, and work context variables may be quite different for other companies or development contexts.”
This model provides a path to test further hypotheses. For example, a manager that defines clear work priorities and establishes a good work culture should improve developer satisfaction and lead to higher perceived productivity. Similarly, showing developers how their work has an impact and how they are an important contributor may make them feel more satisfied and productive.
It’s not uncommon for leaders to view “happiness” and “productivity” as being in tension with one another. For example, leaders may push developers to work longer hours in the hopes of delivering more work, while knowing that the longer hours may result in unhappiness.
While there are scenarios in which this perspective holds true (e.g. hard deadlines), recent research studies like this one prove that satisfaction and productivity are inextricably linked, and cannot be tackled in isolation. Intuitively, this makes sense. Software development, like other forms of knowledge work, requires self-driven critical thinking, creativity, and motivation that are modulated by how satisfied you are with your job. Conversely, being productive at work leads to a feeling of joy and fulfillment that makes you more satisfied with your job.
We’ve already seen these findings begin to affect the way technology leaders think about measuring and improving productivity (e.g. the SPACE Framework), and I look forward to this trend continuing.
That’s it for this week! If you know someone who would enjoy this newsletter, please consider sharing it with them.
As always, reach out with thoughts about this newsletter on LinkedIn, or reply to this email.