Exploring 11 Causes of Frustration for Software Developers

Frustration. Annoyance.

To some extent, all software developers are familiar with these emotions while working in the tech industry.

This article investigates the paper “Exploring Causes of Frustration for Software Developers” authored by Dane Ford and Chris Parnin and the 11 types of issues we face every day at work and speculates as to how we might improve the developer experience.

“I’m frustrated to the extent that it negatively impacts my performance. I’m not alone, as 67% of developers consider their frustration to be severe”

The 11 Areas Of Frustration

Here are the 11 categories that cause frustration in rank order.

Mapping Behavior to Cause

Finding where a bug is called can be frustrating, and poor mental models of the codebase can cause difficulties that take up much of our working life.

“We have all been there. Spending hours solving a problem and then realizing it has to do with a typo or layout issue or whatever.
It's worse in the cases like our codebase. Nobody has touched some of the code since 2017 and the lack of tests is causing me plenty of ire.”

Programming Tools

New tools require a learning curve. Sometimes we need to use a new tool and it might be broken or simply not function as expected.

“It’s a bit of an adjacent story but I’ll tell it anyway. I needed to use Photoshop in my work a few years back and had no issues. I then needed to do a couple of things in Blender.

I know NOW that they don’t share anything in terms of interface because they are entirely different tools with different uses. Then I just tried to mash the interface in a way I understood.

I felt that I might cry.”

Size

There are three issues related to the size of tasks.

  • Large goal spaces, high cognitive load “Where do I begin?”

  • Gulf of completion “I’ve come a long way but there is a little thing blocking me”

  • Large artifacts “There is so much to understand”

”Breaking down problems seems like a good strategy. Unfortunately, when you are using a codebase like ours with mistakes littered around the code, it is really difficult to get things done.

If people then give you ill-defined tickets to integrate into a nonsensical codebase then you’re in trouble. This happened to me last week.”

New Project Adjustment

Working on a new project takes time. You might be unfamiliar with how to accomplish tasks. Configuration might move to haunt you.

“I once started working in a hard culture. Project setup wasn’t easy and the pressure started to build at the start of the second day.

Since nobody would help me get setup I couldn’t start work. Then there were questions about why I wasn’t moving tickets to the right.

I didn’t last long.”

Unavailability of Resources

Poor code documentation is an issue in many code shops. People might not be available and services might be offline for various reasons.

“I am constantly surprised at how much our ‘environments’ are offline. What are those DevOps people doing?

I think that’s it. They aren’t doing anything.”

Programming Experience

You might be expected to take on a new language at a moment's notice. Syntax and frameworks can be tricky to handle.

“One day our boss woke and decided to change the language that the company used for one of the systems. They said ‘you can learn it’ for a live costs plus project.

I couldn’t leave fast enough.”

Simple Problem

Sometimes, when tasks are assigned, they are considered to be simple without fully analyzing the depth of the task.

“Remember those times when you were expected to change one quick thing and it took all week?

I know it’s a junior thing to happen but given a new codebase, this can happen to anyone. It’s one of the things that worries me about changing jobs and the impression it gives your colleagues as you join a new team.”

Fear of Failure

Anxiety can build over fear of failure which produces worse performance in software developers.

“This is one reason that nobody in my current job works to improve the code. Since there is no support if you ‘break it’ you’re better to leave it alone.”

Internal Hurdles

Procrastination and failure to record what needs to be done properly. Software developers can create frustration for themselves due to how they approach software development.

“You can be the cause of your own frustration? Brilliant.

I knew it was my own fault, even when blaming everyone else.” 

Limited Time

We can be given tasks that are simply unreasonable in the time we are allotted. 

“I’m back to the memory of learning a new language while delivering a live project. There is no amount of money that makes that journey worthwhile.”

Peers

Working with others can always be tricky. They may be distracting or might even be incompetent or subordinate.

“I knew the problem was other people. 

Even when the problem was me, I knew it must be everyone else.”

Impacts

Psychological Impact

Frustration faced by developers can have long-term impacts. Some might leave software development together which loses the knowledge and talent they have gathered, while others never reach their potential.

A Natural Part of The Game

It is argued that frustration in software development is a natural part of the work.

“Software development has and will always be frustrating. It is how we tackle this frustration that matters and how we solve the problem of our staff leaving and performing sub-optimally“

Solutions

We need to solve this problem. It is how we tackle this problem that matters as it is pertinent.

Tools

Tools developers use can contribute to their frustration. 

  • Allow developers to select their own tools

  • Allow time for exploration

  • When migrating tools consult the team

Safe environment

Developers should work in an environment where it is not only safe to call out issues but where it is safe to make mistakes and even delay delivery where circumstances demand.

“Imagine an environment where you’d be able to ask ‘silly’ questions. I’ve given up on my latest gig and used AI to rubber-duck debug. Who else would I ask?”

Work on yourself

Before blaming others look at yourself. If you are frustrated with others is there something you could do to make the situation better?

“Not me as I’m perfect in every way”

Conclusion

Software development can be a frustrating business. In this article, I’ve covered the 11 areas of frustration and suggested ways that the software development community can ease the frustration.

“Some of those interventions require change at the business level. That’s never going to happen.”

Previous
Previous

The Best ‘Jerk’ in Software Engineering I Ever Knew

Next
Next

I’ve Been Asked to Serve Drinks on Friday Night. What Will the Secret Developer Do?