On the Unbearable Anxiety of Contribution
Despite my ordinarily boisterous personality in communities where I feel comfortable, I suffer from moderate to severe anxiety in new situations or situations where I am not fully confident in myself. I’ve been a public communicator for most of my life and if you ask me to pop up and give a speech or act out a part or do some improv, I’ll gladly make a scene. But ask me to do some interpersonal communication, especially where I can be perceived as talking down to another person? Fly me to the moon and leave me there before I need to do that.
So perhaps to those of you like me, introverts with a seemingly contradictory ability to open yourself up to the public, perhaps you’ll understand my greatest fear in the tech world: contributing to open source projects.
I get the incongruity. I am a supporter of FOSS projects. I promote them in daily life, often in places or to people who may not get the point. I utilize FOSS software on a daily basis, including the platform I’m writing this blog post on. And yet, despite my deep understanding that these projects depend on communities of support, I struggle to ever offer more than the most minimal of contributions.
This is largely due to me utter inability when it comes to software. I am an attorney, often involved in tech focused cases. I’ve got considerable experience in tech support positions and hell, I have a computer science degree and have been writing code for the last 20 years. And yet, when it comes to software more complex than solving specific problems I experience in my life, I’m a complete buffoon. In fact, I decided to transition from computer science to law, because law school was easier.
This anxiety due to my own inability is compounded by the brutality experienced by commenters and bug hunters on the mainstream platforms. I think we’ve all seen the threads of a user asking what may seem like an obvious question to some getting obliterated for not searching, or not understanding, or simply not divining the solution. And perhaps this negativity is catching up to the traditional platforms. StackOverflow is in the process of killing itself largely for the toxic community it developed over years of poor moderation and worse commenting. Reddit is no killing itself due to greed and taking a decent repository of information with it. Twitter was never a useful tool for support and now is useless.
So what is a FOSS advocate to do when there is a bug in some software I use, or an error I can’t solve, or feature that would help make a project more usable. I used to be able to reach out to Reddit. For whatever reason, it felt like everyone on Reddit was either a bot or at least as ignorant as me. Maybe it was simply because I had been on the platform for over a decade and I was not afraid to ask questions. Then again, I never wanted to venture too deep into r/programming and be torn to shreds by people who either were smarter and less patient than me or who were at least confident enough to pretend to be more competent.
Instead, the advice has become to either contribute feature or bug reports on a project’s github/gitlab page or, if the project is large enough, go to the forums. These too, however, trigger considerable anxiety for a person like me. Going to a project’s github page and filing a bug report is like calling out an artist for a missed stroke or an actor for a flubbed line. It can be helpful in the right context, but can be damaging if done without care. I always feel, when filing a bug report or feature request a need to be deferential to the maintainers time and expertise, which invariably makes the report less valuable. Most of the time, I want to make sure I’m saying something meaningful so I don’t waste the maintainer’s energy, and even then a maintainer may come back hot and bothered because I missed a similar bug or misunderstood how a feature was meant to work. I can only imagine the frustration of receiving 100 more reports like mine, and thus, the anxiety spiral drives further. Forums, filled with real and pretend experts can be even worse.
God help me if I ever want to submit a pull request.
What’s The Point?
Why write up this whine about my personal problems with anxiety? I saw an article the other day describing the extreme mental health toll on community managers for the variety of fediverse. The article called for mental health support for fediverse service providers, managers, and moderators, as running an instance constitutes serious mental, physical, and emotional work. The article got me thinking about my own experiences with mental health and the FOSS community.
I mentioned I’m a public communicator and a lawyer. I have lots of experience with criticism of my work, both the constructive and destructive variety. I’ve developed emotional tools to incorporate that criticism in healthy ways, but it has taken considerable effort, training, and support from friends and community members. Many in the FOSS world are not so lucky.
FOSS by its collaborative nature, invites constant criticism in the form of bug reports, feature suggestions, and pull requests. If someone doesn’t like the work you are doing, they may just fork your work and taken your efforts in a different, often contradictory direction. FOSS encourages not only collaborative efforts, but strong, opinionated debate about anything from high level operating systems to low level APIs, from important issues like accessibility by design to the trivial about default color schemes. These fights occur thousands of times a day on thousands of project pages and forums and social media platforms and microblogs. And at the center of each fight is a designer or engineer or hobbyist or highly stressed team. At the center of each fight is a person, with emotions and hopes and plans and egos.
In computer science school we would talk about the grand religious wars of the computer world. Tabs vs spaces. Emacs vs Vim. Windows vs Linux. The educational environment introduced these fights as fun or whimsical. As core to the CS experience, not because they ultimately mattered, but because everyone who taught you, who came before you had an opinion, and you needed to have an opinion to form a community. And in these large scale fights, its ultimately fine. There are zealots and priests and followers and believers on all sides. You have a community to support your choices, and community to engage in to debate your choices. For the large projects, we do not have to consider why we call these religious debates.
Small-Scale Inquisition
We call them such because people get passionate, zealous, and sometimes irrational in their belief that their decision is right. Their faith that their approach is supreme. For the large projects, their are defenders at the ready and the core leaders of each individual faith need not face the attacks of the opposing belief alone.
But when the zealots come for a passion project run by one maintainer, the buffer is gone. The sole maintainer must weather the slings and arrows of those who believe their way is right. The lone programmer must regularly make decisions about whether this project is ultimately worth it for them to maintain, given the criticism or demands or attention of the faithful. If their project is forked while they are actively maintaining the project, it can feel as if a rival religion has stolen the heartbeat of your work. If the maintainer quits, then we the people lose out on any future updates for the project unless another poor soul wishes to take up the mantle. Or worse yet for some, the project withers on the vine as both users and maintainer decide it isn’t worth it.
Perhaps this has always been the way of FOSS. Programs developed from passion and collaboration for sure, but tempered by the flaming steel of a hungry public or forever forgotten. The mental health toll on the maintainer be damned for all time, so long as they fix the bugs I want gone.
I may be wildly off the mark with all of this, projecting my own insecurity onto the FOSS world. That said, I’ve seen developers and other creatives complain about unrelenting users or abandon projects because of the unending wave of attention. This has always been the bargain. A successful project garners attention, but a successful project is largely successful because it utilizes that attention to grow. If Mozilla began ignoring its user base entirely, the project would not have users for long. So too must any project that seeks a wide user base engage with the potential firehose of comments. So is the mental health harm and burnout all that there is?
I think we can do better.
The FOSS Approach to Mental Health
I think three things should happen to help offer a more healthy FOSS space.
First, users submitting bug reports, feature suggestions, and pull requests or just discussing a FOSS project in another venue should always remember there is another person on the other end of the project. In my experience, most people in the FOSS community are excellent to each other, but to the extent people try to emulate Linus Torvalds when interacting with dev who makes a tool to turn dog pictures into gifs, we, as a FOSS community can do well to calm our collective butts. This includes discussions in more traditionally toxic places like Reddit, Twitter, or the various “Stack” platforms.
Second, we need better search tools to help users identify whether their submissions are duplicates. As Google rots due to over reliance on Reddit and other social media platforms for search results, users will struggle with the choice of spending hours (or more realistically tens of minutes) trying to see if someone has filed or fixed a duplicate issue with the speed of just asking someone for help. I am empathetic to those who do not wish to see the same issue reported or discussed over and over again, especially for devs who must constantly respond to duplicate conversations. On the flip side, people in a project community should not run people off when they ask the simple questions, even if they are duplicative.
We are human, and often American, where a common experience is the instruction, “If you don’t know something, just ask.” While that is not a universal experience, many users will come to a FOSS project or FOSS community with the sense that talking with someone may be easier and faster to get a resolution rather than digging through approximate solutions that may or may not apply. Patience is the virtue, but those developing better tools for users to conduct self help will make everyone’s life easier.
Finally, I think we need more non-project specific, dev support groups. So many FOSS communities are focused on either a specific project, its uses, problems, and future, or a general sense of “what are you working on now.” My experience in computer science school and as part of many FOSS communities over the years suggests that many developers are workaholoics. In school you were expected to do your homework and then, in your free time, do other development work for “fun.” There is a sense with many devs I know that if you aren’t working on some project, you aren’t using your time right.
From my understanding, this is mindset is how you speedrun burnout. As many FOSS projects are volunteer driven, often passion projects, we as a community need to create space for devs to take breaks, enjoy community that is not focused on work, and offer help and support to devs who are facing burnout or mental health problems. Communities of support and escape are important for dealing with a variety of mental health issues, be it my anxiety, the substance use disorders with which so many are afflicted, or burnout. The FOSS community is a grand and welcoming community, so we should not lose sight of the importance of offering space for devs to not be focused on their role as a “dev” and instead can simply be part of the community.
Each of us in the FOSS community should be empathetic and offer a hand or ear in support as frequently as we are able.
To the three people who will read this, I certainly appreciate that I am making sweeping generalizations based on my own anxieties and experiences. Perhaps your experience in the FOSS community is different, and, if so, good! From my own view, I’ve seen burnout hit projects I care about more than once, and I only hope that we can build stronger communities of support for people in the FOSS community, to ensure that we remain vibrant and diverse, beyond just a workaholic culture.
Feedback is welcome!