Mastodon
sungate.co.uk

sungate.co.uk

Ramblings about stuff

Contributing to the Open Source world

Many people reading this will be aware that I am part of what is known as the Open Source Community, or the Free Software Community (sometimes called the “Free and Open Source Software” community, or F/OSS). It is often thought that one needs to be a programmer in order to be considered part of this community, but that’s not true. There are many aspects of the community to which it is possible to contribute: I try to be a part of as many as possible:

  • Writing code: Usually the first thing that people think of when referring to contributions to the F/OSS World. There are typically two parts to this: (a) writing complete applications or utilities (I’ve done a little of this, but considerably less than most; my own application colordiff being the major part) and (b) writing patches or additions to other, existing code: I wrote a small patch for Mutt a while ago, for example;
  • Submitting bug reports: This is an important contribution to any F/OSS project: if a program doesn’t work as expected, or crashes, it is good practice to submit a bug report to the developers. This doesn’t require any knowledge of the way the program works (although if you have such knowledge, you might be able to contribute a fix along with the bug report!) and typically one includes as much information about how the problem occurred, so that the developers can reproduce the problem and fix it. In the F/OSS world, these bug reports are deliberately made public (contrast this with many commercial software applications over which a facade of flawlessness is often draped!). Having flaws well-documented and openly discussed generally results in quicker and more efficient fixes. It also adds a degree of accountability to the whole process. Submitting bug reports is something that I will always try to find time to do, if I come across a problem with an application I’m using, at least after checking whether the same problem has already been reported or not;
  • Beta-testing: For programs that you use a lot, it can be very helpful to the ongoing development of the code if there are plenty of people testing new versions of the program. This is essential for many projects where there are only a small group of actual coders. This beta-testing will involve using the bleeding-edge versions of the program and reporting back on impressions of useability and so on; often, submission of bug reports will be part of the process. I used to beta-test Mutt, but don’t really have the time any more which is a shame;
  • Documentation/translation: There’s no use in having a wonderful application if no-one can figure out how to use it. Therefore, an often underestimated contribution to the F/OSS world is that of documentation. There are different ‘levels’ of documentation for a large project. Typically, there will be (a) a full comprehensive manual, (b) a “quick start” guide of some sort and often (c) an ad-hoc set of “tips and tricks”. Some people are best suited to writing one or other of these types of documentation. Related to documentation is translation: an application will often be written in such a way that alternate-language versions are easy to “plug in”; however, someone needs to actually translate all the text. This can be anything from the simple names written on application buttons or menus, up to full translations of the entire manual. For F/OSS users in non-English-speaking localities, this is an extremely useful facility to have and as a result, F/OSS translators are a very valuable resource;
  • Helping other users: When starting to use some new applications, it can be very helpful (and reassuring) to find a large community of other users to give guidance and assistance. Therefore, if you possess skills and knowledge, a great contribution is to provide this kind of help to newer users. For example, answering questions on mailing lists and on IRC is a very good way to help bring other users up to speed on the use of software, but also helps to build a community around it. I try to do this on IRC and on some of the Debian mailing lists. I find them helpful myself, so I try to “give back”;
  • Money: Many F/OSS projects, especially those that require extensive resources to function, will benefit from donations. This is always encouraged! The money is not generally used to ‘pay’ the developers, but to provide funding to the project’s infrastructure, such as server hosting charges, bandwidth charges and so on;
  • Advocacy: Explaining the advantages of F/OSS to technical and non-technical users alike is a also an important part of the F/OSS world. There’s more to all this than just getting software for no cost: there’s a freedom associated with it that is not generally available in the commercial software world.

Notice that there are many aspects of the F/OSS community that don’t require much in the way of technical skills. The actual programming part of my contribution is probably less than 1% of my entire time spent on F/OSS projects.

6 Responses to Contributing to the Open Source world

  1. Well done, davee.

    Here is another one, just out of my head: art.
    It’s been said a few times: there are not enough artists involved in the FOSS community. If you have any talent in art, design, dive in it.

    Permalink
  2. Oh yeah, good point, forgot about that. I was meaning to talk about it too.

    BTW What on earth is the picture in your gravatar?

    Permalink
  3. front of an oldschool roller-skate, isn’t it?

    Permalink
  4. (avatar is a skate on a floor.)

    Um, my comment is that contributing on FLOSS projects usually only means benefits for the project maintainers, such as what happened at JBOSS. Do you really think that JBOSS and all its internal company developers (when they finally incorporated) developed all that code by themselves? The answer is no, and yet most in that company (especially the owner) benefited boo coo amounts out of it.

    My point is ethics. We need to encourage ethics at the grassroots level even before a project is started.

    Permalink
  5. Yeah, I know the avatar is a roller-skate, I was wondering why kNo’ *chose* that: didn’t make myself clear.

    Permalink
  6. Supermike: I don’t follow your comments. I agree that an ethical approach is important, but I’m not familiar with “what happened at JBOSS”. In general, “contributing […] only benefits the maintainers” is untrue.

    Permalink

Comments are closed.