With my recent work on Fire, Adium, Perian, and A52Codec, I have come to realize several misunderstandings concerning open source software.
Ask anyone involved in Open Source Software (OSS), whether it be the users or the developers, and you will find there is often a disconnect between the two groups. The users are upset with the elitist attitudes of the developers and the developer are upset with the whining of the users. Why does this happen? The answer is simple, people are greedy.
The user’s perspective is simple to relate. The user is used to software made by a company. If they should find a fault with such software, the company has people paid to calmly acknowledge the customer’s concerns, and pass the information on to the developers who work to resolve it. The user sees a kind response, and a fix or requested feature usually shows up in the next version or two. When the user does the same to an open source developer, they often get a snide remark or no reply at all in return. The user doesn’t understand this, because the user doesn’t understand OSS.
In order to truly understand OSS, one must look at the perspective of the developer. Developers who works for a software company are paid to work, and so they are willing to work on projects they either dislike or even hate. They do the work because the dislike/hatred for it is worth the compensation they receive. The OSS developer doesn’t have this compensation, and so the motivation is clearly something different.
The motivation for the OSS developer to release a program free of charge is typically a combination of one or more of the following reasons:
- The software uses another piece of code or library which requires the work as a whole to be released under an open source license (GPL being most notable here).
- The developer hopes to interest more developers to join his efforts.
- The developer fundamentally believes that all software should be free and is trying to lead by example.
Now, with these motivations in mind, consider the user’s request for a feature which does not line up with the developer’s interests. The developer does not receive compensation for his work, so that leaves only altruism. Stack the requests on top of one another, and the altruism is quickly depleted, leaving the developer to reply with a variant of the classic response “Do it yourself” or the kinder “Patches welcome.”
Upon seeing this response, the user tends to think, “I don’t know how to program,” or, “I don’t have the time,” and sees the developers response as elitist because they seem to be saying “I am better than you, so go away.” The reality is the developer is really saying, “I don’t care about that. If you want it, you will have to do it yourself, because I won’t.” It is like giving a random person a $20 bill, and he says that it should really be broken up into a ten, a five, 4 ones, 3 quarters, a dime, 2 nickels, and 5 pennies. Do you proceed to go out of your way to find a bank and make change for him, or simply tell him that if he really wants change, he can do it himself?
In my previous post, I mentioned the fiasco concerning the Perian beta. A private build was posted on our download site (without a link to it I should add), and macupdate posted it as an official build. They refused to remove it when we asked, as so we just deleted it from the server. Another user cursed at us, and posted the link to our semi-public betas. His attitude showed that of a user who thinks he and others are entitled to something more that we were offering without giving anything in return. This is like the stranger seeing you take out your wallet, pushing you over, taking your wallet, grabbing the $20, and saying, “What were you waiting for?” Would you be inclined to give this person anything ever again?
These are two examples of the greed users express. There are many more. Now, I must point out that these users are not representative of the whole, but they the most vocal. Many of the users are quiet and the developers never hear a peep. Only once in a blue moon does the developer hear from one who is truly appreciative. Perhaps, if the users were more grateful for the work the developers put into their free software, then maybe the developer would produce more than they already have.
P.S. If you ask me to do something in OSS and I don’t care about it, you will receive an estimate of payment, a no, or no reply at all. I only make exceptions for friends, and OSS developers who work on programs I use. Don’t expect anything more from another OSS developers either.
Legacy Comments:
fgu - Jun 20, 2007
As one very happy Perian user I now feel compelled to say, everybody connected to Perian’s development has enhanced my / our ( people around me) “quality of life” considerably. It makes Quicktime a lot more useful, than we ever hoped (srt and flv especially). So much more could be said, but here’s a sincere and big THANK YOU from one of those “quiet and the developers never hear a peep” endusers… I / We really appreciate it.
Daniel Henninger - Jun 21, 2007
First off, let me say great article! I think you hit the nail right on the head! From my own experience, I’d like to add a couple of other things I’ve experienced. In many cases, not only is the OSS developer working on these projects with no compensation, but they likely also have a real job that takes up a good chunk of their time, and even some semblance of a “life” outside programming. There’s often a sense that folk feel like they are entitled to your free time. In some cases they also seem to feel entitled to the time when you are at your real job. At the end of the day, of -course- your real job that puts food on the table and your spouse or whatever takes priority over your OSS projects. But another reason I might add to the list of reasons to do the project is simply “because I think it would be fun”. A couple of my projects I tackled because: 1. a chunk of people were asking for it 2. i would probably like to use it too 3. it sounds like a fun project Now when you are trucking along enjoying yourself and suddenly all you hear is “this is terrible because X is broken” and “I don’t think you did this right” or … you get the idea… Typically you can brush that off for a little while but it keeps chipping away at you until you start not finding things fun. That’s generally when I start saying “send me a patch”. I think we all take a lot of pride in our work and if all you hear is negative comments it’s really damaging to said pride. No one wants to work on something that they know is just going to cause complaints. I generally work alone on my projects but at some point it starts getting overwhelming and I start considering asking other interested developers to join. But then what happens? No one wants to help. (in some cases) Now it looks like you are involved in a lot of projects that have a lot of developers and that’s great. Me, I just don’t have time for some of my projects, but people depend on them, and so I’m stuck in this state where I feel like I’m begging people to help out but no one wants to stand up. Now, I’ll certainly say that folk are starting to trickle in and help, and that’s great, but there was a long period of time when I thought that some of my projects might die off because I’m just not likely to have time for them anytime soon. The ideal I think is of course the rare times when you have some company actually sponsoring/paying or your development. Then all of a sudden there’s a good reason to tolerate being asked to do things that aren’t fun/interesting. Nothing sucks more to me than having something come up which I know exactly how to do, but it’s sooo damned tedious to do that I might keep finding other things to work on so I don’t have to be bored. But if there’s a compensation, hey… why not… ;) Bah, sorry for ‘bother’ your post with such a long comment. =) Great post!
vmarks - Jun 21, 2007
This is an interesting blog entry. The author frames it as ‘users and their failure to relate to developers’ - but I think it illustrates ‘developers and their failure to relate to users.’ When a developer says “submit a patch”,“can you add a developer to the project” or, “go do it yourself” the developer is failing to relate to his users. And they are his users. If he didn’t want them, he could have kept the program unreleased, or not distribute as a binary as a way of setting the bar high enough to weed out most users. But it doesn’t have to be this way. There are ways developers can relate to users without having an abrasive attitude. “I’m one person, doing this for the fun of doing it. If you can help, we might be able to do that work. If you can’t, I hope you’ll understand why what you’re asking for might be slow in coming.” That would be the right response. And for developers who lack the social skills to write it themselves, let them copy and paste from me. Rather than tell people their feature request is unimportant, tell them that they’re right. Their feature is a great idea. If they can contribute, it may get done faster. If they are unable, it may be a while. This way, the developer is acknowledging the person rather than dismissing them, without promising anything. Positive responses create positive feedback. Negative responses create a negative feedback loop. Responding with “submit a patch or do it yourself” is dismissive, and for non-developers is understood to be abrasive and negative. Most people I know, whether user or developer, would prefer to be in a positive feedback loop.
Rob Braun - Jun 21, 2007
The overall point of the article is valid and is easily understandable to a non-OSS developer. However, I have to take issue with your 3 point list of why people do OSS development. Let me rephrase your existing points: 1) blackmailed For someone to do OSS development because a dependent piece of software forced them to, the developer must not be too bright. Every developer should be paying attention to the license of the software they use, and if it does not meet their needs, don’t use it. Other than a few high profile companies, I don’t see developers not wanting to do OSS development, but “oops, I accidentally used GPL code, I guess I have to participate in the OSS community now” hardly qualifies as a typical motivation for an OSS developer. 2) lonely Again, a developer that is already doing OSS development may want to attract other developers to their project, but it is not a motivation to do OSS by its self. When I do development, I don’t think about doing a project and releasing the source because it will attract other developers. 3) zealot I certainly think this is more common than the previous two reasons/motivations for doing OSS development, and it may account for why the source is released instead of doing something like shareware development. However, it doesn’t really address why the development is done at all, or why the particular project is being worked on. I won’t presume to speak for all the other OSS developers out there, but my personal motivations tend to be along the lines of: 1) The project (either existing or new) has to fulfill a personal need. I don’t generally work on a piece of software in my free time, which I will never use. 2) I have to enjoy working on the project. There are many projects out there that fulfill a need I have, but aren’t a fun problem/environment/codebase. 3) I get a personal benefit from releasing the code and participating in an open development process. The most obvious of these is the software that I need (see #1) improves just by making it available to others. This happens through other people giving bug reports, suggesting features, and a lucky few projects actually attract other developers (in the scheme of things, this is a relatively rare phenomenon). There can be other intangible touchy-feely motivations, such as a sense of altruism, the good feeling of helping other people, contributing to the betterment of the field rather than wasting time watching TV, etc. But, at least for me, these are secondary benefits that came only after participating in OSS development. It’s kind of like a vegetarian that gave up meat for the health benefits, and then after the fact develops a sense of moral superiority over those that do eat meat.
Asheesh Laroia - Jun 21, 2007
There are some of us “open source developers” who write software because we want to accelerate our progress to a world where computers make sense and are useful tools. For those people, feature requests from users are considered helpful rather than painful. It is still true that these developers are typically developing for themselves more than their userbase, but they can come to value the community feeling that users can give. My experience with many GNOME projects (like f-spot) and some of the more geeky projects I use code from (like ctrlproxy) is that they have this sentiment. There are also many (many!) open-source projects (like alpine) where paid developers are creating a useful product for a certain audience (the University of Washington’s email users), and that project is still willing to listen to feature requests and bug reports from non-washington.edu users.
Ilgaz - Oct 5, 2007
Open source developers certainly think users are somewhat slave to their applications and by giving them away freely, they have right to treat them whatever way they wish. On Macland, there is a diferent issue. Open source Mac developers think Mac users are somewhat less technical, naive people who should have no clue about their application or operating system. When you go and mention an advanced problem, you are automatically treated as a complete moron because of the platform you are on. They forget many of us (switchers?) are coming from complete nerd operating systems such as Slackware and they have chosen OS X because it is a working open source OS with commercial choices which aren’t available on PC/Linux and will never happen because of the “community” and their alergy to commercial solutions. Not all of us have gave up Windows because we got “infected” by spyware or viruses or got so much impressed by “iPod”, the overpriced closed devices and got a “halo” affect. We have chosen Mac because of PowerPC G5, a real alternative to x86 and the OS X which is a very good mix of both Worlds. OS X open source developers and real supporters (e.g. artists) should stay on their IRC channels and log them. They should try to simulate a professionals feelings when they get treated like that just because the guy happens to use OS X. Some of us have chosen NeXT OS along with legacy Carbon to use in professional environment, not like we were so much impressed with “easyness” or we don’t have brain to use another OS.