Solution: I don’t have one. It’s not a real problem.
Yesterday, I saw someone asserting that open source projects have poor UX, and that this is the result of a toxic culture created by developers who both don’t care about users and are incapable of making good tools. I feel this was a very broad assertion to make. I also feel that making demands upon what people produce for free within a society that makes selling labor for money a prerequisite for survival shows a certain level of entitlement. While I can understand frustration with the lack of polish many open source tools display, attributing this lack of polish to malice shows a distinct lack of empathy for people who are often well aware of the faults of their projects, and struggling to find time and help.
I write open source software. My contributions are to various tools that are relatively obscure unless you have some specialized interests. I’ve contributed to libaries for load testing, distributed computing, and log aggregation. I’ve started two relatively real projects - a Go wrapper for the ZeroMQ distributed messaging library, and a Go syslog message parser. I’m relatively well known in a community or two, and I’ve given a couple of conference talks and spoken at a local meetup or two, but I am not a “name brand” developer.
If I examine why I spend some considerable amount of my time producing software for free within an economic system based on the concept of selling labor for money, I find a multitude of reasons.
One reason is that free software changed my life. I don’t have a college degree - I’m a self taught software developer. I started my post highschool life washing dishes for a living. Finding the book “The Linux Bible” in a book store in the mid 90s changed the course of my life dramatically. It came with a CD with a copy of Yggdrasil Plug and Play Linux, and all the source code. This was when free software outside of very specific circles was still unheard of. If you are a person who has come of age during the time of ubiquitous internet access and github, you cannot know what having access to the source code of an entire operating system meant in the mid 90s. When I saw the impact this access had on my own life in the coming years, I began to view closed source software as unethical. In a society that was increasingly mediated by software, restricting access to learning about software works is in my opinion a means of control and subjugation.
Another reason is that I simply enjoy writing code as means to explore ideas, make things, communicate and share with other people. Creating free software on my own time allows me to work and share outside of the constraints of business value that must be considered when you are trading your expertise for money from a company. It allows space for creating software from a different set of values than those that come with solving problems people are paying you to solve. A far simpler and less wordy explanation is: it’s fun!
A third reason is the people. I’ve made wonderful life long friends working on open source. People who I clicked with instantly, who shared many of my own interests.. people not at all like me, who have challenged my thinking and exposed me to perspectives other than my own. People who have mentored me, and people I have mentored. I have spent most of my life in the same city.. having friends and colleagues all over the world was an unthinkable thought to me in my 20s, and now I’m discussing traveling to Brussels for FOSDEM in January and getting excited about reuniting with my overseas friends.
If I have a point here outside of reminiscing a bit, it’s that the people giving their free time to produce open source software are people, each with their own story. I live in a mid-sized city in the U.S. with my family. As I write this blog post I’m also chatting with my wonderful wife and best friend of 25 years, who is on her laptop researching techniques for working with children with autism. I have a son who is upstairs asleep, and most definitely stayed up too late playing on the computer last night. My daughter (currently in college) is off at the beach with her boyfriend. Our dogs and cats are all scattered around the room napping. Hi! I’m a real person, and not just a robot that produces software for free. Any time I spend on open source is time that I most assuredly could and probably should be spending on something else.
There is no such thing as “open source developers”. There are people, who write open source software, along with all the other things they do. When you are frustrated that some software doesn’t do what you need, or is hard to use, or has confusing or incomplete documentation, please remember this. Instead of inferring that the project maintainers are malicious elitests who don’t care about other people, consider another possibility: that they are generous people giving away their work to benefit others, but that they don’t have unlimited time to spend on it. Consider that people prioritizing other things in their life is ok. Consider that being angry that other people aren’t prioritizing what you want with their own time is perhaps being a bit entitled.