12 Open Source Project Tips to become an Open Mind Developer
The following list is about some basic principles to become an Open Source developer. Feel free to post comments about each point in the list, and remember that the list is unordered, so we can vote to know which are the top five tips.
1- Know before you ask
About 99% of the open source projects have a way to communicate and ask questions. It could be by mailing lists, forums, IRC channels, etc. It's important for you to know that the project leaders are reading all the questions and trying to help people around the world. Make their life easier asking detailed questions. The following points will help you to improve the quality of your questions:
a) Read and use the vocabulary proposed by the official documentation. It's very important that your questions uses the project vocabulary to make clear your problems.
b) Provide context about what you are trying to achieve. If you have an error when you are running your application, please paste the entire stack trace of your problem. If you are in a IRC channel or in a direct chat with one of the project members use solutions like: http://pastebin.com/ to share your errors or big blocks of code.
c) Debug, analyze your problem before asking, try to understand what is happening
2- Read the Friendly manual (RTFM)
Open source project are often criticized by the lack of documentation. This is a true problem, that's why nowadays the documentation is one of the easier entry points to the people that wants to contribute. If you found documentation about the project that you are using, please read it carefully. Remember that the documentation was done by developers for developers. This official documentation will contain the key points needed by a developer to understand how to use the project/tool. If you thin that is not enough, please get involved and contribute with demos, walk throughs, and all the things needed in your experience to learn about the project.
3- Get involved with the project
Know who is the current project leader, know all the active members of the community. Remember that a lot of the Open Source Projects are create and maintained by small group of developers. You will start to know people that share interest with you, causing collaboration to reach common goals. Community leaders are always trying to help people to solve their problems and also they want to share their knowledge with all the people that shows interest about the projects.
4- Test, Debug, Debug, Test!
The debugger plays an important role in your daily life when you are solving problems. Try to master your IDE's debugger and step into the project source code when something goes wrong. If you have complicated environments, create isolated tests focused on your problems and debug it to clarify your scenario.
5- Blog about your experience
Writing about your experience in Open Source projects will help you to consolidate the knowledge that you gain during your work. When the people around the world see that you are already using the project they will start asking questions and you will learn a lot answering and discussion with the people interested in your writings.
6- Teach people about Open Source projects
Find the way to share your knowledge about open source software project with other people, like your partners, teachers, co-workers, etc. This will force you to improve the knowledge that you have about that specific topic and all the interactions with all the related technologies. One common way of teaching is improving the documentation and then talking about that, answering questions in the mailing lists and forums, and give talks in your local communities of developers.
7- Read about the tool/project background and the project history
Try to understand why the project was created, what kind of problems try to solve, how old is the project, how the original problem can be matched with your current situation, etc. Try to analyze the project history to know if the project is still active and if no other project replace it. Try to understand if the project focus is the same that the project has when it was created. If not, try to understand the evolution that it suffers. review the project theoretical background, remember that all begins in theory. Read about the standards related with the project topic. Why the standards are created, what exactly they are trying to solve with those standards, etc.
8- Submit Patches
If you find a bug, get the project source code, fix the problem and contact some of the project leaders. They will be glad to receive your fix and to include it in the next version release. Submitting patches are the first step to be a contributor, and shows to the project leaders that you are really interested in making the project better.
9- If you don't know how to contribute, ask for tasks to the project members
They probably have hundreds of unfinished tasks to tackle down. They will also will know what kind of task will suit best for you and your background experience. In this situations the project members will do their best to coach you and introduce you to complete the task that they delegate you.
10- Find / Create / Join a local user group
Sharing experiences with other users and developers will help you to understand different ways to use the same tool to solve problems. These local user groups will also give you opportunities to show your contributions and to talk about your favorite open source projects.
11- The code is the best documentation
Remember that in open source projects you will always have the source code to download and build. A good practice is to always download (check out) the project source code to get it handy to be able to step into the source code when you are looking about how internally works. It's also important to know how the project can be built, remember that you can always customize the framework to suite your needs.
12- Open Source project is a win/win situation
You will learn a lot without costs. You will contribute with with improvements and the community will pay you back offering interesting jobs. The only thing important here is that the project likes you a lot and you get interested in helping the project members to improve their project. To understand in depth about the open source world please read about the open source guru: Eric Raymond http://en.wikipedia.org/wiki/Eric_S._Raymond, and one of his famous books: The Cathedral and the Bazaar. http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar