Most of us agree that open source is a good thing. But then, so is fresh fruit and exercise, and it's very easy to pay lip service to all these things without doing anything about it.
Open source has at its heart a big idea, which some find uncomfortable and others find liberating: it's about collaboration. It's about getting involved. It's all about having lots of people working at making useful things: you pay with your time, and you get paid with the time of thousands of others.
Many people will find bugs, fix bugs and respond to needs fast: that's an open-source mantra. But there are plenty of good examples where great software is freely available because people shared the work.
Because the source code is available, in theory anyone can pitch in and develop new features for open-source software. And those improvements get fed back into the code for others to use.
If you're happy just using open source, then no problem. But if you want to contribute, because you have a problem that nobody else is fixing — or simply because you want to do your bit in exchange — it can be difficult to know where to start. The following suggestions might just inspire you to join in.
1. Use popular open-source software
It's not hard to play with Linux. If you have a spare system, install one of the free editions and see what it does. Apart from anything else, Linux will run happily on older, less-powerful hardware. You'll find it comes with a lot of useful software and very few limitations.
But even if you have to stay with Windows — for company policy, or to keep using that one must-have piece of software that is only supported on the Microsoft operating systems — there's plenty of open-source software for Windows.
Downloading Firefox is easy, and the browser is — proponents argue — more safe and secure than Internet Explorer. As you use it, you find there are extensions that can be added — with their own named authors.
There's OpenOffice.org — a suite of productivity tools that stands in competition with Microsoft Office. "There is a lot of opportunity to use open-source outside of the Linux world," says Linux expert Alan Cox. "OpenOffice, Firefox, PHP, perl ... a lot of web-based programming on Windows is done with open tools."
If you use open source, you'll encourage others to do so — and when others do so, the community grows. So even just taking time to learn and experience it is payback.
2. Make sure open source is considered as an option when your business specifies new systems
Now is a very good time to do this, as Windows users face the Vistafication barrier. Historically it has been difficult to move a large bunch of users to Linux because they will need re-training to use a different operating system (although many people believe this barrier has been overstated).
Now, though, the gratuitous changes in Windows Vista mean there's a training cost even if you stay with Windows, and move to the next version.
Even if you don't move bodily onto open source, it's well worth making sure than any hardware you buy can run Linux or Solaris in future, says Cox. That way it can be usefully recycled, or used if there is a change of plan.
3. Join online open-source discussion forums
You're likely to find yourself drawn to online forums when you want to find add-ons or clarify issues. Often you get what you want from lurking, reading FAQs and scanning other people's questions. But when a question comes up that doesn't have a ready answer, don't despair — that's your chance to interact. Ask the question and chances are you'll get a friendly and helpful answer — one you can pass on later.
You'll find yourself following up new ideas and — sooner than you expect — answering questions from people newer than yourself.
4. Learn to code
This would be a big step for most people and, for many of us, learning to code well might take more time than we can give it. But this is the open-source world, and there is help out there — for instance kernelnewbies.org for kernel programmers. And there is no shortage of alternatives covering just about any sort of programming you're interested in — just search for "teach yourself" and the language name, and pick the approach you're most comfortable with.
But there is a lot more to software development and delivery than coding. "Translators, designers and usability work are all important," says Cox.
5. Help document and debug
Documenting software is another place you can definitely help. It is an area where help has been most desperately needed and is easy to provide, yet ironically is hard to find. As a user of the software, and one who's had to go to forums to find answers, you have probably already realised what a good job you could do of explaining how it works — maybe even better than the people who wrote it. "Documentation is very open, and something we are always short of," says Cox.
If your native tongue isn't English, then you'll find the open-source world has a big job you can do: translation. Even a little work here pays off far into the future.
6. Go to open-source events
Nice as it is meeting other open-source people online, meeting them face to face is more rewarding. There are open-source events everywhere, but check they cover the areas you are interested in. The more you get involved with the community, at all levels, the more you'll be able to find ways to use your skills — and the easier you'll find it is to get the help, ideas and creative solutions you're after.
7. Put your money where your mouth is
Contribute to development and promotional activities. A lot of software is produced on a semi-voluntary basis, and requests for donation are not put there as jokes. If you use something and like it, why not pay a reasonable fee — comparable to what you have saved — to the developer?
But this is the open-source world, and money isn't everything: "I think a lot of people prefer code to money and it can be tricky handling money in voluntary projects," says Cox. "Far better to buy them all a beer and pizza at an event." And a simple "thank you" is always appreciated.
Paying for events, and joining groups puts money into the hands of people who might well promote open source, too.
8. Look around for other ways to use the open-source model
Wikipedia, for instance, takes an open-source approach to knowledge, and is building a knowledge base that anyone can refer to and anyone can contribute to.
There are weaknesses and crazinesses to this, and Wikipedia in particular can have a "culty" feel to it, but next time you use an open-source knowledge base, why not consider helping to tweak the articles? You may have expertise, or an eye for errors, that others don't. Or at least probe into the discussion pages to get the feel of how this kind of thing works.
And look at Groklaw, which makes innovative use of open-source concepts to help make complex legal issues understandable. Many companies are setting up internal wikis and forums with the express intent of capturing all that knowledge that's trapped in their employees' heads.
9. Report bugs — don't just complain about them
All too often people say they've tried to use a program, but it failed them in some way. Bugs won't get fixed unless someone reports them, and good bug reports are valuable, says Cox.
The tricky part is, you have to do some work to pin the bug down, understand it, to make sure it actually is a bug, and then explain it. The good bit is, once you've put in that work, the bug is much easier for the maintainers to fix — and many people will benefit.
10. Think things through, and be honest
Share with others what works. Share your best practice and successes. But open source isn't helped by a pretence that everything is perfect, says Cox: "Also share failures and war stories. It helps the community know where the problems are and it helps users make a more informed choice about when and where to deploy open source."
Open source is all about the community multiplying individual efforts: at whatever level you can, doing something you care about will bring rewards for all.