6 Takeaways From 9 Different Developers Productivity Studies
Discussing developers’ productivity is usually a sensitive matter. Even when your goal is to help individual developers become more productive, you can’t help but imagine some middle manager holding up a finger pyramid of evil contemplation, thinking of ways to make developers’ lives more miserable after reading such an article.
Rest assured, the goal of this article is the former and not the latter.
Another goal is to try and work out what the science says about how you can become more productive as a developer. That’s why I’ve rounded up nine useful productivity studies, which explore different issues and questions such as:
- As a developer, can you expect to reach a high level of productivity and maintain it throughout all your tasks?
- Are happy developers more productive?
- How does unhappiness (both long- and short-term) impede developer productivity?
- What are the main causes of dissatisfaction and unhappiness among developers?
- Why is the glorification of “no sleep” an extremely problematic part of the developer culture?
- What helps developer teams be more productive?
- Can music help boost your productivity?
Let’s have a look at what these studies have to say, and translate that science into actionable advice that will help you improve not only your work but also your work satisfaction.
Developer Productivity Depends on the Task at Hand
You’ve probably heard stories about 10x developers, those mythical creatures that are able to do the work of 10 regular developers like it’s nothing. You might have even met some people who claim to be one of them. Hell, you might even be one of them.
And while there are definitely developers who are more productive than others, the 10x developer is, in all probability, just that—a mythical creature. The unfortunate thing is that it’s one of the cornerstone myths in software engineering—a myth that has been propagated by studies dating back to the 1960s, with various such studies claiming that some developers are 10 or 20 times more productive than others.
Luckily for most of us, more recent studies have shown that such massive productivity leaps are usually not constant and that the vast majority of developers will have varying levels of productivity depending on the task at hand.
Most prominently, in 2019, William R. Nichols, Jr. from Carnegie Mellon University did a study that showed that, when presented with a number of tasks, the vast majority of devs’ performance will vary greatly. Most of them will fall in the least productive category on at least one of the tasks.
The study did show that some developers are more productive than others, but that in most developers, productivity will vary greatly depending on what they’re working on.
Takeaway: Don’t beat yourself up for not being as productive as you wanted to be with a certain task. You will probably excel with another. When the going gets tough, stick with proven productivity strategies: Tackle the hardest tasks in what are typically your most productive hours, and break big assignments into smaller chunks.
To make it easier on yourself when it comes to tasks you find dreadful, studies suggest it’s best to tackle the hardest tasks first. When you get stuck, turn to a simple task to gain a sense of accomplishment, which will give you the boost you need to push on.
Unhappy Developers Are Less Productive
This one should probably be filed under the “duh!” category as it is something we all instinctively know to be true—when you’re unhappy, you are not productive.
Daniel Graziotin and Fabian Fagerholm have conducted a number of studies to determine exactly how being unhappy impedes the productivity of developers. In their review of those studies, they identified a number of negative effects:
- Impeded cognitive performance. They discovered that unhappy developers have trouble focusing, that they get frustrated and sloppy, and that their problem-solving abilities suffer.
- Breaking the flow. Their studies also discovered that being unhappy makes it more difficult to get into developer flow and that their flow gets interrupted more easily and frequently.
- Loss of motivation. In the least surprising piece of insight ever, their studies have found that unhappy developers are less motivated and that they start to withdraw, adopting a “working in a salt mine” kind of approach to coding.
One important thing to note here is how the researchers defined and measured happiness in these studies. They observed it as “a sequence of experiential episodes,” which means that being happy corresponds with frequent positive experiences that ultimately result in generally positive emotions.
What this means for us in terms of workplace satisfaction is that the things that frustrate us or make us unhappy at work are likely to make us genuinely unhappy in the long run, as we meet them on a regular basis.
In the studies, participants were asked to report on their emotions and moods from the past four weeks. That way, the researchers could more adequately measure their happiness as the result of both recent and long-term (underlying) emotions.
An underlying, long-term feeling of contentment will help us push through even the worst days, but without it we can’t ever reach the productivity levels we are capable of. However, although happiness cannot be observed short-term, our passing moods definitely do have an effect on productivity. Happiness is rather a balance of all our emotions—and when the scales tip in favor of the negative, even if it’s only for a day, we can’t expect to be as productive.
Takeaway: If you’ve had a bad day, don’t expect to be too productive. Accept your current mood and its effects on your performance. Things will get back to normal once you perk up.
However, if you’re generally dissatisfied with your life and work, if you experience negative emotions more often than positive ones, or if you’re struggling with a mental health issue such as depression, you certainly can’t expect to “perk up” out of the blue. The only path here is to seek professional help and actively work on your well-being—trust me, it will be worth all the time and effort.
There Are a Lot of Causes for Developer Unhappiness
One of the studies from the aforementioned review was conducted by Graziotin and Fagerholm in collaboration with Xiaofeng Wang and Pekka Abrahamsson, and it focused on what exactly makes developers unhappy.
In this study, they surveyed more than 1,300 developers to identify the factors that make them unhappy and divided them into two main categories—internal (software developer’s own being) and external (people, artifact-related, process-related, and other).
Somewhat surprisingly, they discovered that being stuck in problem-solving is the most common cause of unhappiness, reported by 186 participants.
Time pressure came in at number two, with 152 participants reporting it as a cause of unhappiness.
These were followed by:
- Bad code and coding practice. (107)
- Under-performing colleagues. (71)
- A feeling of inadequacy. (63)
- Mundane or repetitive tasks. (60)
- Unexplained broken code. (57)
- Bad decision-making. (42)
- Imposed limitation on development. (40)
- Personal issues. (39)
When only external causes were analyzed, the most common causes for developer unhappiness were:
- Artifact-related causes, like technical infrastructure, coding, bug fixing, and requirements. (788)
- Process-related factors. (544)
- People-related factors. (416)
Takeaway: Being stuck in problem-solving and time pressure will (probably) get to you. Prepare well, be aware of the pressures, and plan your time accordingly.
Alternative takeaway: Something will get to you sooner or later; don’t despair.
Sleep Is Crucial
Doing 48-hour hackathons and crunch-time coding sessions has become part of developer culture. Energy drinks, copious amounts of caffeine, and living on four hours of sleep is almost a rite of passage among developers, especially younger ones.
In reality, there are few things that will make you as unproductive as being sleep-deprived.
In 2018, an Italian team of researchers did an experiment on how novice developers perform in a sleep-deprived state. As you might have expected, they discovered that not getting enough sleep severely impaired the productivity of software developers.
Not only were they less productive on average, but sleep-deprived developers were almost 50% more likely to write code that would not fulfill the predetermined functional requirements. Their code was also 50% more likely to require fixes later on.
This is by no means the only research on sleep and productivity. Just type “sleep and productivity studies” into Google and you’ll find myriad studies showing how important it is to get enough sleep. For example, something as seemingly inconsequential as hitting the snooze button can result in a negative impact on how productive you are at work.
Takeaway: Get enough sleep. It’s as simple as that.
Productivity in Teams
Most developers work in teams, so trying to separate the productivity of individual developers and their productivity as a team makes little sense. The good news is plenty of research has shown what helps developer teams be more productive.
For example, according to the 1995 report Understanding Software Productivity by Walt Scacchi, software team productivity can be improved by introducing factors such as:
- Substantial computing infrastructure.
- Rapid prototyping tools.
- Document management systems.
- Configuration management systems.
- Object-oriented programming languages.
- Software testing tools.
According to a 2008 paper by Stefan Wagner and Melanie Ruhe called A Structured Review of Productivity Factors in Software Development, soft factors like team identity, culture, cohesion, and communication can also contribute to building productive software development teams. Turnover and support for innovation were also factors that affected team productivity.
On the other hand, the 2002 paper Brooks’ Law Revisited: Improving Software Productivity by Managing Complexity by Joseph D. Blackburn, Michael Lapre, and Luk van Wassenhove points out that teams become less productive as they get larger.
Other authors have also argued that the size of the team is one of the crucial factors in determining how productive a team will be. The 2002 paper showed that the experience of the project manager can be a contributing factor to a team’s productivity.
Plenty of research also showed that the individual experience of developers, the choice of technology, product characteristics, and organizational structure also affect the productivity of software development teams.
Takeaway: Lots of things affect how productive your team will be. Communicate openly, and don’t expect someone else to solve all of your problems.
Developers Are More Productive With Music (and Some Noise)
To wrap things up, here’s something less project management-y: it turns out that music and sounds can help developers be more productive.
A study from 2005 by Teresa Leusiak showed that with no music, the quality of work was the lowest and time-on-task was the longest. Participants reported that listening to music helped improve their mood, which I believe is something we can all agree with.
When it comes to observing developers’ productivity, it’s invaluable to link music with the previous points about how positive emotions are necessary for productivity. Essentially, music is a tool—a simple yet powerful tool for driving positive emotions and, consequently, helping us get in the flow and be more productive.
Not only that, but participants also reported enhanced perception on design while working and listening to music—which only goes to prove the value of music as a force for driving creativity. That’s something you’re probably familiar with if you’ve ever enjoyed listening to music while cooking, drawing, or doing any other creative task, including work-related tasks. In your work as a developer, a trusty playlist might help you get unstuck on problems and find creative solutions.
Takeaway: Put on your headphones and play some music while coding.
Knowing Is Half the Productivity Battle
There are a lot of things that affect how productive you will be as a developer. That includes the type of assignment you’re working on, your overall mood, as well as your ability to handle work issues, time pressure, and problem-solving fatigue.
And that’s not all. There’s also the size and dynamics of the team you’re working with, and lifestyle factors (primarily, sleep) that have a vital effect on productivity.
You might find your productivity is currently affected by some of these factors more than others. The key here is that there is a way to boost it, but you first need to understand how and why each of these factors affects you. I’ve outlined in the takeaways how you can apply these productivity studies to your own work as a developer—and now the work is on you.
Maybe something as simple as finding a good focus playlist will help you make strides at work. Maybe you’ll have to adjust your sleep schedule or work with a therapist to help you find contentment and handle the pressures of your job.
Maybe you’ll need to start a conversation at work about improving specific processes and solving issues that are making you and your colleagues dissatisfied. Or, you might find yourself confronting your team and trying to work out a better way to communicate and raise your productivity together.
Whatever it is, it will need some introspection and some work on your part. But with the science there to back you up, you can know where to turn your focus and rest assured that you’re not throwing darts in the dark.