Volunteer Open Source Contributions - Your Showcase

Volunteer Open Source Contributions - Your Showcase

Volunteering your time in open source projects is one of the absolute best ways to advance your open source career. By spending time contributing to open source projects you are not only demonstrating your dedication to the open source environment as a whole, but also the kinds of projects you are interested in participating in. In addition, you are showing the open source community the kinds of code contributions you tend to make, how you participate with the community, and a bit of your own personality.

There are a lot of factors in contributing to open source software. While code contributions are a major part of the process, they are only one aspect of participation in an open source project. In addition to contributing code you should also be following the chat rooms and mailing lists and contributing your ideas and support in those areas. Another area frequently neglected in open source projects is documentation. By contributing documentation to an open source project you can show the world your deep understanding of the subject matter, as well as your willingness and capability of sharing that understanding with others.

Contributing documentation is a critical aspect that is lacking from many open source projects. Whether the primary developers do not have time to comment their code or provide documentation for the project as a whole, or they feel that is beneath them or unnecessary many projects consider documentation a secondary concern, if at all. By taking the time to comment code and provide documentation for the project, you are demonstrating that you fully understand the project to the point where you are capable of teaching it to others who may not have the same level of understanding you do.

Another frequently disregarded portion of the open source software development environment is road mapping and planning. By taking the time to participate on the mailing lists and chat rooms to develop functional and technical specifications, goals, and time frames for meeting those goals you can demonstrate to the open source community as a whole your dedication to that project, as well as your capabilities in the areas of management and resource allocation, both very important aspects of landing a career in open source software development.

It is far too common in open source software development for the primary programmers on a project to spend almost no time interacting with the community or providing support for the software they are writing, and this is one of the primary reasons that open source development tends to remain in the margins of software development as a whole. By spending time contributing documentation and support to an open source community, in addition to programming assistance, you are demonstrating to potential employers that you are the cream of the crop in regards to open source programming.

Another significantly important thing you can do to improve your standing in the open source community, and to showcase your programming skill and technique, is to thoroughly document any code you are contributing to an open source repository. Not only does this give you the advantage of well documented and easier to maintain code should you need to revisit that code in the future, but you are allowing others to make use of your work much more easily than if you had not commented the code as well. When trying to write interfaces to existing code nothing is more useful than being able to look over the comments in that code and know how everything works.

One pitfall many open source contributors fall into is obfuscating their code for fear of it being used by someone else. There are several problems with this approach, not the least of which is one of the primary goals of open source software development is code re-use and integration. By obfuscating your code you not only make it harder for others to use that code, you make it harder for yourself to maintain that code in the future. Take the time to come up with useful, coherent variable and function names and comment your code thoroughly and you will remove weeks of poring over unreadable code from your life in the future. Should someone else take your code and integrate it into another project, or extend it to perform other more varied functions in the future do not look at it as someone stealing your code, but instead as their way of showing appreciation for the hard work you put in. Depending on the license your code is released under, you may be able to insist that others mark your code as having been written by you.

While it can be difficult, overall participating in volunteer open source software development is a terrific way to hone your skills, and showcase your abilities and personality to others in the field.