Joshua Mulliken

April 27, 2021

How to Deal With Unrealistic Expectations from Users of Open-Source Software

The Problem

It is a problem that I have heard from many other maintainers of free and open-source software, "the users have unrealistically high expectations from my project". Whether it manifests as demands for new features or free support it seems to never end if you have a popular project.

One of the largest forms of burnout comes from this issue of high expectations and the lack of any positive feedback. Issues are an inherently negative form of feedback, basically it is saying, "you need to do some work for me for free". This is not to discount the value of finding flaws in the software that can help improve it for everyone but for a maintainer and developer the promise of open source is that with each issue there is an opportunity to get help to resolve the problem that unfortunately seldom materializes. 

For each issue that has a corresponding pull request that means work for the maintainer to review, and often they are not aligned with the styles and standards of the project requiring even more work to either go back and forth with the contributor to make sure that it fits correctly or to write it yourself. I'll give you a hint much of the pull requests end up getting rewritten by the maintainer.

These issues of too much work, not enough support, and the endless requests wear down on a once starry eyed open-source dev. Does this mean that open-source has failed? I don't necessarily think so, but I do believe that we need to adjust our thinking as maintainers and developers.

My Solution

I have decided to change my mentality around how I think about my project. If I am not getting more out of it than I am putting in than it is not worth any of my time. I have disabused myself that I will be getting any code back, and I am understanding that there will always be issues to be addressed. This is why I have decided to be ruthless with what I choose to work on.

Guidelines for open-source software development and maintenance:
  • It's one and only purpose is to support me and my interests. 
  • I will make sure the project benefits me and I will share it so that anyone else who wants to use it can. 
  • I will not change it to fit someone else's designs for how it could be better for them. 
  • I will only provide the level of support that I want to (I like helping people but if someone is being difficult, then I will not hesitate to end support)
  • I accept money to help incentivize myself to continue working on the projects that have a broader appeal so that I do not develop a disdain for my users.

Open-source is a terrible business model, but it does not mean that it cannot be useful for an individual or even fulfilling. My takeaway is that I will always make sure that I have set the proper expectations for myself and am not afraid of saying no or turning down users who attempt to put higher expectations on me.