Difference between revisions of "OtherGoals"
m (link fix) |
(Removed Spam) |
||
Line 3: | Line 3: | ||
translates into more money since each user (in theory!) pays for their | translates into more money since each user (in theory!) pays for their | ||
copy of the software. Or it gets you bought out by Microsoft, or | copy of the software. Or it gets you bought out by Microsoft, or | ||
whatnot. ;-) | whatnot. ;-) | ||
But for an open source project, is it the case that more users equals | But for an open source project, is it the case that more users equals |
Revision as of 19:29, 25 January 2006
I think often people assume the goal of every software application is to get as many users as possible. For proprietary software, sure, that translates into more money since each user (in theory!) pays for their copy of the software. Or it gets you bought out by Microsoft, or whatnot. ;-)
But for an open source project, is it the case that more users equals more goodness? Are users the ultimate customers?
My feeling is that no, users are more of a means to an end. Lots of users can translate into a larger pool to draw developers from, and of course potential developers will consider the (potential or actual) size of the userbase when deciding whether to bother submitting their changes. But of course in these cases the real goal is getting more developer activity.
Sure there can be some personal satisfaction in knowing that the software is very widely used. Many times the desire to gain more users is what drives developers to work hard. But careful what you wish for! With many users comes many demands for changes. Your open source project can feel more like an job you can't get away from and don't get paid for! ;-)
From my experience there's four motivations for open source development that can easily be translated into goals; one is practical, one ideological, one educational, and one social:
First, you want good software available at a good price. For example, this is why I got involved with Sodipodi originally. I wanted a good drawing tool that I could tinker with to improve for my own d*mn needs. I suspect this holds true for a lot of us. We have a job or a hobby that needs a good tool. We want to make a good tool that'll last us and do well by us for the remainder of our lives. If few others use it, well then we can be special. If lots of users use it, and in doing so, it results in a better tool for me, then well that's great too.
Second is the desire to make the world, or more specifically the open source community, better. This is why adhering to and improving open standards is important, for example. For this motivation, a large userbase is kind of an objective, but again it's slanted in favor of developers since by definition the "open source community" is people who contribute to open source projects.
Third is to learn new things. Many open source projects started or gain contributions from people who are doing it out of curiousity, interest, or need to learn new skills, either for career purposes or personal fulfilment. A large userbase (implying a widely known application) can _maybe_ translate into recognition when interviewing, but otherwise is not very relevant.
Fourth is a desire to work with good folk and have fun working together. Because, really, for the developers this is a hobby, and hobbies should be fun, especially if they're going to take up a lot of your time. For this, the personality, friendliness, and dedication of the users and developers is much more important than their sheer quantity.
So, for all these reasons, in a way other developers are the real
customers of the open source developers, and users are just lucky sods
that get all their benefits as a side effect! ;-)
For Inkscape, I think that we still need to grow the userbase. However I feel that we can achieve that easily enough by just focusing on making the code better; this is best achieved by encouraging developers to develop.
Bryce
P.S. I should add to the above that I use the verb 'develop' to mean more than just programming. Develop could mean a variety of activities that improve the tool, including especially documentation, design, application art, testing, website, and administrative work. Even just providing feedback can be considered development work if it is done with consideration and in an organized fashion.