I want to contribute to the open source community, but I've never done it before, and I have some concerns regarding the collaboration process - I am afraid that I will just "get in the way" of other developers, and since (I assume) that they are pretty polite guys, they will feel bad about telling me to bug off. I imagine things like adding the feature X in 1.3.0, just to realize that there was actually such thing in 1.1.5, but it was intentionally removed in 1.1.8 because of Y.

Being an independent contractor (a freelancer) I work very rarely with other developers, as a team, and I do understand that the software collaboration is a complex area (I've read a couple of books on management of big teams, seems to be a delicate area, at least to me).

To my actual question - should I start with something small (that I will create), and wait for other contributors to join it (ones that will know how "the stuff works", so I can slowly get my head straight on the collaboration part), or I should try to join a big project, which has a lot of activity in it, so I can see the big picture (but risking to be a pain for them) ?


Go find a project that interests you. Then go to their bugs list. Find one you think you can fix. Fix it well and cleanly. Find another bug you think you can fix...keep doing that for a while, then move on to trying to help with features and other such things. Don't worry about doing your own project at first, I've run projects for school and it's much easier if you are used to dealing with a multi-user codebase before trying to manage one. I'd recommend picking a project that has a reputation for good documentation and a strong, friendly, inclusive community. Don't worry about being perfect, after all if you make a mistake, someone else can fix it. Just do your best on the thing in front of you and you'll be fine.

The point really is to make sure you understand how large codebases work and in turn when you start your own project, not only will you understand how to set up, structure and manage it; you will also be a known quantity and have allies to help you work on it.

  • 1
    I think you mean "Don't worry about being perfect." – Bernard Dec 15 '11 at 2:26
  • You're right I do. – World Engineer Dec 15 '11 at 2:26
  • Ok, thanks, I have one question - is it OK if I frequently ask other contributors questions ? In my 1.3.0 example, I assume that it is perfectly fine (to ask before you start a feature), but if I ask for small stuff here and there (out of fear not to get in their way later), would they feel it as a time waster ? Is there a "standard" on this, or it depends on the contributors ? – PatientZero Dec 15 '11 at 2:31
  • 1
    It's going to depend highly on the community. – World Engineer Dec 15 '11 at 2:32

You have a fear of working on a large team, therefore you should work on a large team. Reading books about what it is like to work with programmers could be a waste of time and money. Just get in there, get your ass whooped, get up and keep going. Many a successful actor, athleet, etc. has gone through this. The sooner you get over this, the better of you will be. It might be tough, but man up. Other people aren't there to kill you. They need all the free help they can get. If you could not win, at least leave some blood on the ice instead of yellow liquid.

  • 1
    Absolutely. To quote Yoda, "Do or do not... there is no try." In doing something -- whether you succeed or not -- you will learn a great deal. You then take that learning and ... do it again. – Peter Rowell Dec 15 '11 at 4:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.