To make it clear: I am not against Open Source Software, in fact, I am for it. But I am increasingly frustrated with Open Source software written by hobbyists; hobbyists who write a specific application or library because they need a specific function out of their applications, for their own needs and only their own needs. Here’s what happened:
UPDATE: Some explanation here. Make sure you read it first.A few days ago I was in the middle of a cyclone in the desktop-devel-list gnome mailing list asking the gnome devs to include the Gnome users in the process of evolving Gnome (because currently feature requests are getting very much ignored on their bugzilla). I just wanted the Gnome users to be asked (whatever the way, not just by using a poll) what are their most needed features and having the Gnome devs implement the ones that makes sense to implement. This way, more users would be happier about the apparently “closed” nature of Gnome’s development.
I got the answer I expected from the Novell/Sun/Red-Hat people: “regarding market research, we care about it only when happens from our marketing department and to our customers”. They don’t care about the “generic” Gnome user. That’s ok. Understandable. These guys have a business to run.
However, I was not happy from the answer I got from the Gnome developers who don’t work for a Gnome-related corporation:
“A feature will be implemented if and only if there is a developer who wants to implement it” (it was later mentioned in the discussion that this is if the developer actually has such a need himself for the feature).
I do not like or agree with the above statement, because I see software as simple tools. Only good tools can ultimately succeed. And I want Open Source to succeed.
Tools are meant to do what people need to do (integrating them after careful consideration without bloating the platform, of course). If the Gnome devs completely cut off their users in such a way, I see no reason why anyone would would still want to run Gnome. Their voice would never be heard because the corporate developers don’t care about their kind, and the hobbyist developers don’t care anyway. And that’s the reason why many Gnome users left the platform over the past 2 years: closed development cycle. There is a real community problem here, and the thing is, the gnome devs pretty much agree that there is one but they don’t seem to care to do something about it. For example, the No1 Gnome feature request, a menu editor that actually works properly, is still not realized after so many years. And the decision for the spatial Nautilus that created an uproar to the Gnome user community (users had to wait 6 months to get a checkbox on the preference panel to get back to the Classic View instead of having to go dirty with GConf) was pretty much taken single handedly by Red Hat.
Sure, not every developer is like that. There are many other OSS developers who actively ask for feedback. On GnomeFiles.org I see third party GTK+ developers asking for feedback almost everyday, and as a user, this really makes me feel good about their applications. But that’s not the norm and definitely not the norm with Gnome. Open source devs generally only code whatever they personally need, and that’s a huge difference from a commercial application where the “customer” is being asked repeatedly what features he/she needs in the application.
You may argue that in the second case you pay real money to get such support, but in my book, engineering is engineering. In our article yesterday about “The Ten Worst Engineering Pitfalls” by Keith F. Kelly, on the No2 spot you will find this: “2. Basing the design on your own motives rather than on users’ needs.” So, no matter if something is developed for OSS or for commercial reasons, the principle of engineering remains the same, because in both cases, the software is released out there to be consumed by [innocent] people. So in both cases, there is some responsibility on what the user would expect out of a given application and in the case of Gnome, there are a few millions of users that developers should take into account. If these developers really don’t want user feedback, they should close down their bugzilla, stop offering their software freely (only use it for their own needs), stop sending press releases out and stop asking for donations on their front page. It’s as simple as that.
If the “plain user” entity in the OSS world is such a taboo why the hell would I want to use OSS software? Just because the code is open? I don’t personally have any real use for the source code (and most normal users don’t either). I don’t do C anymore (in the case of Gnome) and I can’t possibly pay $100-200 per hour to a consultant to add features for me. All that “the source code is open, send me patches” it’s all looney-baloney for the vast majority of users. However, I wouldn’t mind at all paying about $30 per year to a big project like Gnome, but get assured that users aren’t cut off from its development process (the current donation scheme does not take care of this).
Red Hat’s Havoc Pennington & Novell’s Jimmac suggest that users write an analysis and test cases of a feature request the user wants to see implemented, because this way you might get the developer motivated to actually implement it. The problem I see with this is two fold:
a. Not many people have a clue how to write a test case or use Gimp/Photoshop to create a mockup to illustrate their point. They can only quickly describe what they need, and that’s that.
b. Normal users don’t use bugzilla. Only power users & developers do. Besides, no one likes spending time to register.
It’s the project itself that needs to do the right moves to reach its audience and take a pick on their problems, not the other way around. For example, Apple has a very simple feedback page on their web site that doesn’t require registering (as opposed to bugzilla which is very technical and requires extra thinking) where “normal” users can send, well, feedback. Apple developers use Apple’s bug reporting page on their developer’s sub-site, but plain users just have a form with few straight-forward fields to write down their gripes. Problem is, OSS developers don’t like anything that’s not filed on their bugzilla (“if it’s not filed, it doesn’t exist” they say), but point of the matter is, the user should be the center of attention and incovenience-free, not the developer.
What I like to see, is some market research. Approach all kinds of users, put their gripes in line, make a note of their features they really need and evaluate them. Then, create a project plan and distribute the tasks that need to be done to your developers and make sure they deliver what they must deliver. People will say “that’s not how OSS works”, but as a user, I don’t really care how OSS works. I care about using software that’s been properly developed taking users into account rather than purely developers’ needs. Be careful: I am not asking the OSS developers to implement every little thing that’s asked out there, I am asking them to simply take users into account and get an idea of what the whole of their userbase needs. Extracting useful information from the mass will be difficult, but it is achievable if the right resources & infrastructure are into place.
I personally find it “deteriorating” for any user to use Open Source software made from such ‘lone’ developers and not by a company which specifically asks for feature requests or does market research. It would be like the user does not respect him/herself by using a tool that does not do all it could do or all things the user needs it to do (please note: that’s in the cases where the application indeed does not do everything the user needs — other OSS software are really rich already, e.g. emacs, apache, postgresql etc).
To me, software is a tool, nothing more. I am as practical as it goes when it comes to computers. I don’t idolize them and I don’t have a political ideology about software or hardware (and in fact, I personally take pity to anyone who does — there’s more important things in this world than to be political over bits and bytes).
If something is open source, that’s cool, it’s a meta-feature that the closed source apps don’t have, and I welcome it and I embrace it. But when it comes to software written by hobbyists who don’t want to implement anything apart from what they personally need, and systematically ignore their users (apart for their crashing bug reports, which is the only thing that they seem to need them for), I refuse to use that software, because I respect myself and my choices. I prefer to shed down the right money for the right commercial software (open or closed), than to use half-baked, half-implemented OSS software made by deaf developers.
While this might not be a huge problem for small time applications, it is a big problem when a project that’s used by millions has the same attitude towards its users. It’s disappointing, to say the least.