views:

180

answers:

6

I have recently become interested in the possibility of actually attempting to contribute to one of the many open-source projects out there. I'm interested in not only gaining development experience, but also gaining experience tweaking UI's, improving usability, etc. I found this and this regarding getting involved, and there are some great responses there, but I'm wondering specifically about the range of roles available within open-source projects. Are there opportunities for my additional interests in interface design, usability, etc. and how do these aspects mesh with the open-source contribution process in general?

Edit: I didn't intend to emphasize my age (I'm not all that young anyway :) so I removed that for clarity. For the purposes of this question, I'm interested in the UI and usability aspects of open-source projects and how I might contribute to those aspects in addition to programming contributions. Thanks for the responses so far.

+7  A: 

One of the wonders of the internet is that nobody knows how old you really are. People only care about what you actually do - so do something.

And when you ask "what range of roles are available", well there are no "roles" and if there were they would all be available, self-contradictory as this may sound.

I think you may have confused FOSS development with the heirarchies you see at school, university or business. But it realky isn't like that. There is no "manager" to assign a "role" or a bit of the project to you. Instead, you identify some code, documentation or whatever that needs fixing/improving/adding and do the work. If it is good work, it will be accepted, if not it won't be. And after you have had some good work accepted, you may be given acceptance privileges yourself.

anon
+1 ... and do it well. Source code isn't ageist.
Aiden Bell
Thanks for the addition to your answer, Neil. That helps.
Colin
+2  A: 

Have you checked out Google summer of code program? It is a program especially setup for young developers and students who have interest in working on open source projects. There is a HUGE range of projects and programming roles. It is a great way to get your feet wet and code something that interests you.

Byron Whitlock
+2  A: 

However, with age, experience will be a factor. I know myself that the learning curve was steeper when the following were combined with inexperience of active contribution:

  1. Learning a new code-base
  2. Learning the conventions of that code-base
  3. Learning what hurdles I have to leap (formatting, test submission)
  4. Self evaluation; Is my code good enough? Bug-free itself? A shining example of my competence?

Of course there are always the entry level items to get noticed:

  1. Fixing bugs in old/unmaintained versions
  2. Introducing a new package to your distribution (as a .deb/.rpm whatever)
  3. Helping with webdesign, advocacy
  4. Correcting documentation
  5. Fixing bugs

Of course, there is always the question of where to submit bug reports. It might be that the bug is in a distro specific package ... and so will only get closed on the upstream bugzilla.

The Gnome Project has tons of projects, some with only a handful or less of developers ... this makes it easier to build a relationship and communication with the primary developers.

Plugins are also a great way to contribute ... and are often written in languages like Lua or Python. This allows you to get 'promoted' to the core code by way of merit.

Bottom line is age is the least of your worries, having the project know you exist and are willing to help, then to become an active member is much harder ... especially in projects that are clique-bound like Kernel development. Even Wikipedia suffers from these things (but I am not applying this to all projects)

Anyway, good luck on your endeavours and I hope any difficulties encountered are not demotivating as open source development is fulfilling.

Aiden Bell
A: 
  • Write tutorials about some project on your blog and let the other developers know about it through their forums or something
  • Write plugins for the SW piece you've decided to contribute to, then write blogs about your plugins and post in the forums what you've done
  • Help out in the forums of the project answering support requests

When you have done things like this it is highly likely that a patch sent to the project will attract eyeballs. Then after sending in a couple of patches you might get SVN/GIT/CVS read/write access and get to "shine" as one of the "core developers" ...

"Marketing" of a FOSS project is often perceived as invaluable and often a job which few does and many project needs...

Thomas Hansen
+1  A: 

The only advice I'd offer is to inquire about helping on a project that you use a lot and are a passionate advocate of already. E.g., if you find yourself raving about jQuery to anyone who will listen, ask them if there's anything you can do to help. On a big, successful project like that one, you will have to demonstrate both your skills and commitment to earn commit rights, but then the accomplishment will be all the more meaningful.

Andrew Hedges
+1  A: 

Making things work better is not as simple as just writing and checking in some code and it can be difficult to get into a position where you can contribute to the overall design of the project. Perhaps you should start by evaluating some of the usability issues within an app and sharing some solutions with that community. If it's possible to actually fix these issues (by hacking forms or source code) then that can help you prove you case.

Tom