Sj-
Nonsense. Money is an excellent resource when properly applied, but there is no fundamental reason why we should have fewer volunteer developers than Linux has, for instance. After all, what are we writing but the kernel for our collective intelligence?
An interesting comparison. However, it is worth noting that there is a billion dollar industry behind the Linux kernel, and many of its most active developers are directly employed by corporations like IBM, Novell and Red Hat. Hence, development tends to be driven by corporate interests.
It is no coincidence that the growth of desktop Linux, both on the kernel level and in the userspace, is depressingly slow (we're talking about a product which is almost 15 years old). It is facing many of the exact same problems that Wikimedia is facing, and the long-term solutions are likely to be identical: getting money from users to developers.
Open source, and volunteer activity in general, is not some kind of magic pixie dust which you can dispense to make everything just wonderful. This is especially true as the complexity of the project increases. We've had more offers for help on MediaWiki than we can count. Volunteers who say "I'm going to write some code" are easy to find. Those who actually do something are very rare indeed. Those whose code gets past Brion ...
Fundamentally, I also believe there is a moral obligation for each one of us, as individuals, to work on turning the free content world into a real economy, instead of trying to find ways to get ever more people to exploit themselves to an ever larger degree. We are not just dealing with "resources," we are dealing with human beings who deserve to be treated as such. I personally would encourage people to stop working on MediaWiki, or Wikimedia, if I can see that it harms their life, their children, their loved ones, their career.
That being said, here are some things we can do that will attract volunteers, short term and long term:
- provide an easier to use sandbox for people to work with the MediaWiki codebase, e.g. allow anyone to create a test-wiki from CVS HEAD, and perhaps even make the code wiki-editable. (Chroot jails, regular re- initialization, developer approval and the like help to keep the whole thing secure.)
- reach out to university CS departments. These give out projects to their students, and Wikimedia is highly loved in those circles, so it should be relatively easy to convince some of them to have their students work on MediaWiki.
- systematically improve the technical documentation and pages like "How to become a MediaWiki hacker". The parser documentation is especially bad to non-existent.
- do a better job of organizing the development-related pages. Meta is a mess. wikipedia.sourceforge.net is a static HTML page. It used to be a wiki, but SF.net was not suitable as a host. MediaWiki.org, in my opinion, should be a server outside our regular co-location facility, and be used for things like the above sandboxes, internationalization work, etc.
- use Subversion instead of CVS. It has a CVS-like syntax, so should be easy to learn for existing volunteers. It makes life a lot easier: atomic commits, very easy branching, moving files while preserving history is simple, etc. While we're at it, we could try to centralize extension development in one place.
- write and enforce a clear policy that new code needs to follow certain documentation standards before it is allowed into the HEAD branch. Undocumented code can be removed.
- long term: encourage the use of collaborative real-time editing tools like SubEthaEdit, use them in combination with Voice over IP to tutor new volunteers.
Needless to say, even the work that needs to be done to increase the efficiency of our volunteer efforts can be done faster if it is paid for, or at least organized under an official title. For the tasks for which you are qualified to do so, I highly encourage you to put ideas into action. Talk like above is cheap. Real work is worth paying for.
Regards,
Erik