Friday, April 16, 2010

Facilitating Non-Code Contributions

In today's column, Carlo Daffara continues his discussion on non-code contributions:

In a previous column, I mentioned how a substantial amount of contributions in large projects are not provided in the form of code, but in many other forms. Examples include documentation, knowledge (maybe enclosed in mailing list posts), graphics, and so on. Code is actually one of the last, and most complex, form of contribution as it does require substantial skill and knowledge. While it is true that most projects provide a structured form to submit and contribute code, there are very few projects that make it easy to submit other types of contributions.

A good start is to show that you actually want contributions. There are countless open source projects that never mention in their web page or documentation the fact that external participation is welcome. Having a page like “contribute” on your project website is a good start. A perfect example is the Fedora Project page.

In this example, the join page is really a contribute page and is found just after the link on how to obtain the distribution – a very visible and clear position. The page also shows the many different ways someone can contribute: by writing text or documentation, contributing graphical elements, by being an ambassador or representative, and so on. In the single subpage, the complete description is simple and allows latitude to adapt. As an example, in the “People Person” page there is a welcoming text that says “Remember that you have complete freedom to do less, more or different tasks in the many projects and teams. Only your imagination sets the limits.”

A similar approach appears in the Funambol participate page. While simpler, it conveys a similar message: participation is not exclusively about code.

We can provide, based on these examples, a few suggestions to improve your project visibility in this area:

  • Explicitly mention the opportunity to participate in your project, and if possible add a participate page to your website.

  • Before listing what you want from others, think about what may be considered a contribution, even if it may be small. For example, mentioning the use of your project's software can be considered the smallest, but still a significant, form of contribution. In the case of Funambol, it provides an indirect economic value to the commercial project that is based on the open source code base, as it demonstrates market viability and the fact that there is an established user base.

  • List explicitly all the possible contributions, and for each present an example. Instead of simply mentioning “graphic contributions”, list a set of possible tasks, like “a new splash screen”. Try, if possible, to list potential contributions of different sizes, listing the easiest ones at the beginning. This provides an immediate frame of reference for the amount of time or effort that may be necessary for a contribution, and gives even first-time participants the opportunity to work on small activities.

  • Whenever possible, provide tools for specific tasks. For example, Bazaar provides a translation tool that helps in creating localized strings. In larger scale projects, creating a sub-project for a specific activity may help in coordination and in reducing duplication of effort.


There is a huge world of potential contributions, and just a little effort is needed to assist potential contributors in materializing those potentials.

No comments: