We can also get angry if we plan or promise too much and fail to meet our own expectations. Maybe some software has a steep learning curve, and it is kown to be impossible to learn and use in few days or even hours. Another possible reason is a stubborn mindset not ready to let go of concepts how to do something, when there is a totally different approach taken by the specific tool.
Screenshot of my dev rant looking back on 2022 as quoted in Constructive Criticism and Resolutions for Future Content Creation
Reasons for Rage
Finally, there are some reasons for rage and rants that can't be be tackled by a change of personal behaviour. I don't want to get too political in a technological community (but I will elaborate in my personal open mind culture weblog), but there have been increasing debates about gatekeeping, injustice, gender pay gap, and even harrassment preventing people to do their job in STEM / information technology and get paid and respected accordingly. The so-called "marginalized" groups are often a majority in the world-wide population, but the tech sector is still dominated by white dudes from rich countries. And that might be directly connected with some other systemic problems that many popular software and web apps lack proper testing, documentation, and accessibility.
In this case, rage as a rightful reaction, serves several positive purposes.
Rage shows us that something does not feel right.
Rage raises attention to find out what exactly is wrong.
Rage gives us energy for a change.
Helplessness, Disappointment, and Fear
Unfortunately, there is another aspect of this emotion that often comes up when we start to feel helpless and it's not easy to make a change. Helplessness, disappointment, and fear are other emotions that feel negative and might be connected to rage. But rage at least has a positive energy and a feeling or action and taking control.
So what can we do, as developers, when getting angry about a problem?
Here are some thoughts from my personal perspective, but I have to admit that it is a quite privileged perspective so it might not apply to your own situation or you might have completely different priorities.
Procrastination as a Form of Passive Aggression
Many people fail to understand why they procrastinate instead of doing what they want or have to do. Avoiding situations or tasks where we risk to fail is one possible reason, but I experienced a tendency towards procrastination in other situations as well.
We could look at procrastination as another reaction telling us that there is something not quite right that requires some kind of change. Between the passive emotions of helplessness, disappointment, and fear on one hand, and the active and possible aggressive emotions of anger and rage on the other, procrastination subtly sneaks in between as a passive-aggressive, and possibly more productive and inspiring alternative to anger.
Solutions using Anger as a Positive Motivation
- Rant! Sometimes it helps to say a swear word or write an ironic blog post or chat message. But some other times it doesn't, unfortunately. While it seems perfectly appropriate to swear and shout on a construction site, it can get you strange looks and worried reactions in an office.
- Question and observe: what's happening? Am I really angry? Maybe I just need a break?
- Is there something I might be doing wrong? Question my own mindset, take a step back and try to change perspective.
- Talk to somebody and/or write down actual questions.
Be the one to add a missing Issue
- If it's a technical problem (inluding missing or misleading documentation): How can I describe the problem in a way that others can understand and help me? Is there a minimal reproducible code example that I could show on CodePen, GitHub, or my own website?
- Who could have an answer? Where could I leave a question or feature request? GitHub issue, specific forum post, or a general interest question on StackOverflow?
- Anticipate possible inquiries and reactions before actually posting the question.
- Take a break! Then come back, re-read the question and think again about an answer.
- Post a question and proceed with another task. Maybe there will be help.
Wrong Tools vs. Wrong Mindset?
When we discover that we tried to (mis)use a tool with the "wrong" mindset, then maybe it wasn't the right tool in the first place. Also there can be different strategies to use the same technology. I used to rant a lot about React, but some reasons for my rants were caused by technological decisions like CSS-in-JS, or controlled input, that I would never voluntarily chose when setting up my own project. Later, I ranted a lot about WordPress. Again, there was a mismatch between my own preferences and what seemed to be required or advised, like using WooCommerce Blocks, Full Site Block Editing, or the new theme engine. After having successfully solved the specific problems and completed my project tasks, I asked myself, what exactly I would have preferred to use instead.
So when I have the chance to make my own technical decisions and choose which new technology to learn in my next project, at least I know what not to use next time and I have enought motivation and energy for a change by looking back on my past unhappiness and anger.
Major Problems beyond our Control
If there is no techhnical issue, what else is the problem? Maybe we are unhappy about a specific requirement, the whole project or our job. Can we quit, can we pass the problem to a coworker? Maybe we have to go on, knowing that we don't like it and why, and try to make another choice next time. If we are able to make a choice: say no to a possible customer or project as a self-employed freelancer, or ask to change teams or even quit our current job as an employee? But maybe we're happy about mostly everything, but there is a toxic person or some other specific aspect of our situation that we might be able to change, even without thinking of quitting our jobs (and becoming a blacksmith, gardener, or dancing teacher which will of course - NOT - solve all of our professional problems).
If it's a greater issue beyond our own control: who could help us? Is there possible support, communities, a way of getting in touch with other people who are in the same situation? That's one positive aspect of the internet and globalization: you can connect with like-minded people all around the world, and you can raise world-wide support for your issues.
Using our Power to Support and Make a Change!
Being in a privileged position, we can become the ones giving support, choosing what to work for, who to work with, where to invest our money. Stop our teams hiring the next white German dude with a high reputation on StackOverflow. Stop unknowingly taking part in common exclusion and harassment. Support, upvote, link, and talk about issues raised by people who face more serious problems than we do. For a start, Abbey Perini's 8 Ways to Support Women Developers offers very specific and measurable aspects that need our awareness as a "typical tech guy".
And there is Leah Thomas' Intersectional Enviromentalist, a book and an initiative imagining a more equitable and diverse future of environmentalism.
Conclusion
There are many valid reasons to get angry.
I started to write another post about productivity and might have wandered from the subject a bit, but this is my retrospective takeaway: don't try to suppress rage and anger! Take it seriously and make use of its positive energy. After a coaching session, I drafted a post about "healthy productivity", and I decided to keep those words in the title as it can be very unhealthy to suppress seemingly negative emotions, and a lot of people think they have to. We don't need to shout and get aggressive, or lay down and cry, but there are other ways to take our emotions seriously, and that can help us grow both personally and professionally as well.