What causes 'bad days' for developers?
Microsoft's new study found that engineering system friction is a top cause for bad days.
Welcome to the latest issue of Engineering Enablement, a weekly newsletter exploring the data behind world-class engineering organizations. If you want insights like this delivered to your inbox, subscribe here:
This week I read Identifying Factors Contributing to “Bad Days” for Software Developers: A Mixed-Methods Study, a new paper from Microsoft that dives into what disrupts developers’ workdays. In this study, researchers combined developer feedback with telemetry data to identify the factors that contribute to "bad days” for developers, and learn about the impact these issues have on productivity.
Summary:
A mixed-methods study at Microsoft identified engineering system friction as the top cause of bad days for developers.
Friction included unreliable tools, infrastructure issues, and slow processes.
Bad days led to reduced productivity, increased stress, and self-doubt among developers.
Senior engineers reported frustration, while junior engineers experienced heightened self-doubt.
Telemetry data corroborated the qualitative findings.
My summary of the paper
Microsoft researchers conducted a three-step study to identify what makes developers' days challenging and how it impacts their work. First, they used interviews and surveys to uncover common problems and their effects. Next, developers kept daily diaries to document their real-life experiences. Finally, the researchers analyzed telemetry data, focusing on metrics like code review and build times, to validate how these issues affected productivity.
Here’s what they found:
Engineering system friction is one of the main reasons for bad days
In interviews and the survey, developers were asked to describe what makes for a “bad” day. Researchers analyzed their responses and ranked the issues from most to least common.
The top challenges included problems with engineering systems. These issues involved unreliable tools, infrastructure problems, or slow processes that made it difficult to get work done. Other common causes of bad days were feeling blocked and feeling unproductive.
An interesting but unsurprising finding: Principal and Senior Developers often cited heavy meeting days as a major challenge.
Bad days lead to lower productivity, increased stress, and self-doubt.
The researchers’ analysis revealed that bad days not only make it harder for developers to get work done but also leave them feeling stressed and questioning their abilities.
Bad days consistently led to lower work quantity and quality, with developers struggling to focus, feeling unmotivated, and having trouble completing tasks.
Interestingly, senior and junior developers experienced these challenges in distinct ways. Senior developers often felt frustrated, annoyed, or even angry, sometimes becoming disillusioned with their organization’s lack of action to fix these problems. Some admitted that bad days led them to start "checking job boards."
Junior developers, on the other hand, internalized these challenges. They often felt guilty and doubted their abilities, blaming themselves rather than recognizing the systemic issues causing their struggles.
Telemetry data confirmed qualitative findings
The researchers wanted to validate their survey and interview findings with telemetry data. They chose to use measures for pull request duration and build times because both were causes of bad days (under “engineering system friction”). Other top-ranking factors are not easily measured using system data.
The telemetry analysis confirmed the qualitative findings. There was a statistically significant difference between the pull request and build process log data of those who reported that pull requests and build process caused them to have bad days versus those who reported that those factors did not cause them to have a bad day.
Final thoughts
This paper provides another lens into the factors that impact developer productivity and satisfaction. It also supports the idea that developers are more satisfied when they're not slowed by friction from tools or processes.
Who’s hiring right now
Here’s a roundup of Developer Productivity job openings. Find more open roles here.
Pinterest is hiring a Senior PM - Infrastructure | San Francisco
Snowflake is hiring an Engineering Manager - DevEx | San Mateo
Nursa is hiring a Senior Director - DevEx | US
Credit Acceptance is hiring a Senior Engineer - Platform | US
Clio is hiring a Director - Engineering Platform | US, Canada
That’s it for this week. Thanks for subscribing to Engineering Enablement. This newsletter is free so feel free to share it.
-Abi