Answer to your first question, getting involved with an open source software is as easy as looking at the About
section of your favorite software.
There are loads and loads of open source software around and as a FOSS newbie, it's easy to get confused as to which one to pick and start working with. I'd suggest a software that you really care about and use everyday. Once you've done that, either look in the about section of that particular software or just Google, How do I contribute to xyz, with xyz being the name of the software.
Next, you need to find a channel through which the community maintaining the software communicates through. In general, these channels are IRC
, mailing lists
or sometimes even Gitter
. I've also seen a couple of communities that use chat.stackexchange
to communicate.
Once you're done finding the channel, go and Hello World!
. Just go to their comm channel and say that you've been using software xyz for a while and you think you can contribute, and that you'd like some help getting started. With the exception of a few people, most will help you personally, solving your doubts and giving you the right links whenever you need.
The links given by the community people will have one or more of the following:
- A getting started manual
- A link to their github/git/other version control page
- A link to their list of tools
- A link to their bugs page/review page/issues page
Read the manual completely if possible, it'll solve most of your doubts. Download their codebase, read the README, try fiddling with the codebase, learn how to compile it. If you screw up, delete and re-download.
Download their tools, install them, see how they work.
Look for basic bugs/ask for basic bugs on comm channel.
Once you've solved your first few bugs, you'll start knowing the codebase better and you can go for bigger bugs/wishlist-items. That's it, now you're a contributor.
Now your second question. Most organisations have rigid build tests/review systems which prevent against crappy code being pushed. And even if some bad code gets into deployment, affecting the software, the users come back and report to the organisation, and you can be sure that the bad code is removed within a short period, which is why open source is awesome!
Note: This is not a generalization. These are the experiences of me and my colleagues when we started off with Open Source.