Cimi says that we have a large userbase and a small number of developers, and the key to continued survival is to have more of the users become the developers. Then we have new blood, and new ideas, and also some help (good grief, I could clone myself four times over and still work full time on some of the work I have around here).
I have often wondered what it is that stops people crossing over from being users into being developers. Here are some thoughts I’ve had:
- Not understanding “free”. I once saw that someone complained about Wikipedia because the version in his language couldn’t even get the word for “free” right: they’d used the “as in freedom” version, and he had an assumption that “the free encyclopedia” meant “the encyclopedia you don’t have to pay for”. Similarly, when I was downloading a particular program with Rio last night and I explained to her what GPL meant, she got very excited and said “cool! Can I give it to my best friend at school? And we can make a version which looks like this or that!”.
- Not being a hacker. The other day Fin was somewhere getting lunch with a group of people and there were no forks; Fin picked up two wooden stirrers from beside the coffee machine and used them as chopsticks. All the other people in the group were amazed at this ingenuity. This is the sort of thing I mean: some people are content not to figure out ways to improve the stuff they’re given and rethink the fundamentals. It’s the sort of thing that RMS called “creative playfulness”, and some people are content not to have it.
- “But I’m not a programmer”. Some people, creative people who would otherwise do well, think of themselves as non-programmers and so don’t get involved. But we need more than just programmers to get involved– we need artists, copywriters, testers, triagers, sysadmins, coordinators. At least, we say we do, but I think there’s a public perception that to be a real GNOME person you need to be a programmer; I wonder if we went down the membership list of the Foundation and checked how many people were coders whether there’d be an obvious disproportionality. Something that struck me today was Mårten Woxberg mentioning the proliferation of Metacity themes; I think we see so many of them because they’re something relatively harmless and easy for non-programmers to modify, and they really have got the idea of free software about the right to share and the right to fork that only far more rarely happens with real software. Secondly, however, it is hard for us to remember that coding isn’t just something you can sit down and do, especially writing patches. We programmers have a fair amount of training merely to be programmers, and we take that for granted. Look at the willingness people have to contribute to Wikipedia, where the bar to entry is far lower (you might also say that the quality is lower too, but maybe we have better QA). What is the solution? Can we identify creative people who aren’t programmers but who might want to help, and help them become programmers somehow, not solely so they can have A Lucrative Career In Information Technology™ as my radio keeps telling me but so that they can help the world? Some kind of course, perhaps including work on actual GNOME programs as a project? Maybe we can join forces with an existing distance-learning institution?
- “But it’s all so huge! Where do I fit in?” (And hey, Rob, I promised you an essay about this a few months ago. It is coming, when it’s ready.) When Mozilla’s first public release was made, I decided I wanted to help even though I’d never worked on free software or on a collaborative project that large before. So I checked it out of CVS and started looking around. After a few hours I started freaking out at the size of it all (who was it who called it a code-katamari?) and ran away and wrote my own little projects for the next eight years or so. In the GNOME project, we do actually have a place for this to happen, GNOME Love, so we’re actually doing pretty much okay on this point. It certainly helped me fit in with GNOME. (If there was such a place for Mozilla back then, I apologise; I never did find it, though).
I suppose the existing GNOME Love can always use improvement, but something I’d really like to see is a sort of Job Centre for all free software. I’d like to be able to say “I need someone who knows about P to help out on Metacity and I’m willing to help them with Q and they will learn useful things like R and presumably gain XP on the system”. And then someone could enter all the things they knew about, and the stuff they wanted to learn about or have appear on their resume, and it would email them when things came up. Maybe this is something Canonical could fit into Launchpad somewhere.
Any more reasons than these why people don’t dive in?
I think you missed a few obvious ones.
1) Not wanting to. Those people who want to work on software to the same extent I want to make my own wooden kitchen furniture
2) Computer is a tool. Tools work. If they dont work you accept it, or you live with the quirks. My scooter is hard to start when cold. I live with it.
The reason why I haven’t is a form of 4, I guess. I make my living as a programmer, but it isn’t exactly easy to jump from server side Java to GObject and friends. So far, I haven’t had the time to learn a new way of thinking so that I could really contribute.
I think that instead of providing bindings for virtually every possible language, Gnome – as a platform – should make one higher level language a first class citizen. And yes, I know that this suggestion is a good way to start a flame war.
I have tried to do what I can by fixing translations etc. When reporting bugs, I’ve usually tried to provide debugging information. That’s pretty much it.
It would be nice to give back more than I currently do, but on the other hand I’m quite happy to be “just a user” and I’m not sure Gnome really “needs” me.
Hey Thomas. True, True and True. I’ve been doing minor programming projects at work for some time, starting with php web apps, and now mostly python webapps and simple interfaces to machinery we use.
I personally find it hard to contribute to gnome because of how hard it is for me to wrap my head around C. I’m getting better though. I’m not so good at much else other than minor python hacking.
That where my dilemma come in. Do I only work on python based gnome apps? I really dont want to see core parts of gnome appearing in python. I did learn a little C# a few years ago, and have just started working on some patches for banshee now. I like C# but I dont make the time to learn it because I dont see core parts of gnome being accepted as C# wither.
So… I tend to try and avoid getting involved in gnome at all. I LOVE the idea of courses to introduce gnome structure though. Even when I dont fully understand what i’m learning at the time, as I start to put it into practice, it all slowly starts to fit into place.
Also.. How about a brainstorm site for gnome? Something to help everybody get good ideas out there.
> I’m not sure Gnome really “needs” me.
>
There you have the IMO second-biggest reason why people don’t come helping. This might be just a German thing, but a very huge amount of people think that they aren’t worthy of “big things” and GNOME is in the papers, so it must be big. Even though we could use every minute of every person.
The biggest reason however is that people don’t even get the idea that they could help. See http://www.hadess.net/2008/06/how-not-to-do-laptop-support-page.html for an example. Those people don’t get the idea that they could (no, that they _should_) come directly to use instead of ranting on forums or wikis.