A lot of talk in the Open Source community is about contributing. Indeed in a previous blog post I mentioned a discussion I had with a guy who doesn’t directly contribute back to the community. I think there’s distinct reasons why people don’t give back to the community directly. First it’s worth outlining some of the ways in which people can contribute.
Design Software
Software doesn’t just appear out of nowhere (unless it’s written by Novell
). Ideally someone has to design and spec up the software before any code is written. If you have an idea for some software, and a search on line yields no results then write up a design specification for your idea. Run it past your local Linux User group or other distribution specific communities such as forums or mailing lists. Some might pooh-pooh or praise and embellish your idea, others might tell you it’s already been done. You never know, you may stumble upon a developer who is willing to take up the project and help develop it.
Write Software
This is an obvious one, but clearly can be a tricky
If you know a programming language then you have a good head start here, if you don’t and feel you don’t have the inclination to learn then maybe try some of the other things in this list first.
Fix/Enhance Software
Pretty much all software has bugs. If you know a programming language then maybe you could contribute by fixing some of those bugs in existing software. Of course as with writing software, fixing bugs is a tricky thing, so again maybe something else on this list might be more accessible.
Test Software and Feedback
Testing software might mean installing new versions of applications you already use, using new distributions or just using your existing setup as you normally would. The essential part is the ‘feedback’. Authors of software generally don’t test their software in every possible permutation, that’s what their users do. It’s critical that users who experience issues with the software feedback to the development team (or individual) when things go wrong.
Test Software and don’t Feedback
Testing without reporting bugs back to the developer could also be considered useful, especially if you think that you might be one of only a few people using the software. Maybe the experience you have gained in the testing you’ve performed could be used in discussions with other users of the software. I’ve lost count of the number of times I’ve heard someone say something like “Function ‘foo’ is broken in application ‘bar’ version 3.” and someone else pipe up with “That’s fixed in version 4 of ‘bar’.”. The second person may have learned this through testing the software themselves. I believe word of mouth is very valuable in the Open Source community, many people are much more likely to use some (version of) software that a friend personally recommends than if they stumble upon it somehow.
Support Users
No matter how little you think you know about something, chances are there’s someone else who knows less. These people often frequent user groups, mailing lists and discussion forums. If they ask questions, maybe you can help them. Some distributions such as Ubuntu have a help desk ticket system in which users post their questions. Maybe you can try answering some of these questions.
Write Documentation
Have you ever looked at some software and wondered why the documentation was awful? It’s probably simply because nobody set aside time to write it. Developers often like to develop and aren’t motivated to write up documentation about how to use their product. If you are unable to code, maybe you can write some documentation or a how-to on how something works. You could pick something that you know and document that, or maybe pick a new application to learn and document as you go. When users search for help with applications online for a product it’s great to find a how-to from someone learning the application because they often write with less assumptions than an expert, so you get a better view of how to use the product.
Translate Documentation
Can you read/write more than one language? If so maybe you could contribute by translating some documentation or how-tos from one language to another.
Translate Application Data
Most applications tend to be written in English first and maybe translated later. Sometimes there are missing translation texts or whole languages that are missing from an application. Maybe you could contribute by correcting spelling/grammatical mistakes in an application.
Design Collateral
I have no artistic skill whatsoever and I admire anyone who can draw/paint/compose anything. If you’re one of those lucky people maybe you could help by designing logos, sound effects or other collateral for an application. Alternatively an applications website may need a touch-up.
Help Your Local Community
Wherever you are in the world, the chances are that there is a local user group near you. This may be a LUG (Linux User Group) or one more specifically tailored for your distro or specific applications or hardware you use. Many of these groups are organised and run by a limited group of people. They may have very large memberships but most of the work is often done by a small number of people. They may well need help in running group events, managing resources or helping their membership in other ways.
Ok, so those are some of the ways in which people could contribute, but what about those people who don’t, why don’t they?
The “I don’t have time” excuse
What do people do with their lives that doesn’t leave 10 minutes for a bug report once a day/week/month? I suggest that people who use this excuse are actually saying “I have other things I would rather do with my time”, and not actually (as is implied) “I’m just so incredibly busy in my life I have no time for all this extra non-essential stuff”. Yet people who complain about having no time have time to read a mailing list and reply with “This application is broken” reports to people can do nothing about it. Seriously, if something is broken, report a bug.
The “I can’t do anything” excuse
As I’ve tried to outline above there’s a lot that people can do, even if they (like me) can’t code well (or indeed at all).
The “Nobody helped me, why should I help them?” or “I learned the hard way, so can everyone else” excuses
These are of course just plain rude and really don’t help the community. The fact that someone has learned how to install and configure an application all on their own with little help for that from outsiders doesn’t diminish the fact that the software wouldn’t even be there in the first place if it wasn’t for the community. Just because nobody helped you install and configure the software doesn’t mean that they’re not helping you by providing the source code in the first place.
The “But everything I use just works fine, there are no bugs I see” excuse
That’s great! How about writing up how you manage your software stack, how you use the applications effectively. Others might learn from your sagely tips, and it might provide motivation to others to get their system in a state where they are unaffected by bugs.
The “I just don’t want to” excuse
Not much you can say to that is there?
The fact is we can’t force people to help, but we can make it easier and give them alternatives to ‘fix bugs’.













5 Comments
Advocacy is also a valid contribution. Over the past several years I have distributed hundred of Linux CDs, helped dozens of users switch or dual boot their machines, gotten a linux server adopted at work, generally spread the word about free software. I’ve participated in anti-DRM actions and talked at least 2 programmers into contributing code to free software. All in all I don’t think that’s a bad contribution for someone who isn’t a coder.
Tim
Reclaim your digital rights, eliminate DRM, learn more at http://www.defectivebydesign.org/what_is_drm
Advocacy is what I do most of myself
How could I forget that. Thanks!
Maybe there should be a big “Don’t Panic” button on the desktop.
If you visit ubuntu.com and click the big happy smiley support dude icon you get to ubuntu.com/support, but if you click just below him on ‘Community’ you get to ubuntu.com/support/free and at the bottom of that page you find a link to https://launchpad.net/distros/ubuntu/+tickets labeled “tech support system”.
It’s certainly not obvious, that’s for sure.
So I filed a bug, number 64149. Not sure it’s in the right place or has sufficient detail, maybe you could add to it if you think it doesn’t?
A good post and some good points.
Here are a couple of reasons that I can empathise with (I have reported a couple of bugs in the past…with help):
That last point generalises out to why people may not want to contribute in any of the ways listed in the post – they don’t realise that it’s an option, or they’re not interested in how it works – they just want to use it.
On the other hand, when I have made the effort and reported bugs (especially on small projects where there’s just a contact to email) I do like the satisfaction of having helped to make it better.
Well, I appended to yours anyway.
Thanks. I’ll try to remember where to find it in future.