With so much open source software getting created every day, itâs amazing how much we all benefit from the work of others in the community. But even free software, both as in beer and speech, isnât all unicorns and rainbows. So what do you do when you have problems with that shiny new set of bits? Hereâs a few items to consider.
1: Join the mailing list
Most software projects have a mailing list. Google Groups seems to be the most popular, but Librelist is good, too. Before you post your question, check the archives. Perhaps someone has already asked and gotten an answer.
2: Find an IRC channel
IRC seems to fly below the radar of a lot of developers I meet, but itâs a whole universe of project-focused real-time communities where you can ask questions and get answers. Find an IRC client and join the conversation. You can usually find me in #redis, #github, #mongodb, and, of course, #thechangelog.
3: You've got issues
There is a difference between a bug and a feature, and surprisingly a lot of folks donât know the difference. Wikipedia defines a bug thusly
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways.
Whereas a feature is
A distinguishing characteristic of a software item (e.g., performance, portability, or functionality).
The takeaway is that youâll get a lot warmer reception from the project community in most cases if you report an issue and ask for help determining if itâs truly a bug, by design, or a great idea for a new feature.
4: No reason to get nasty
The term ânasty bugâ seems to be used so much that we wonder if there are any other kinds of bugs. Nasty has become at best trite and at worst loaded. When reporting an issue and its severity take into account actual damage caused by a software flaw and donât inject your own feelings of frustration or inconvenience.
5: When reporting an issue, include as much detail as possible
Most of the time, software authors want to help you with your issue but when you drop into the chat room or mailing list with something like âIâm getting errors, any ideas?â, thatâs not actionable information. Hereâs some information you should include:
- Software version
- Your environment (OS, language, browser versions if applicable)
- A stack trace
- Steps to reproduce if possible
6: Write a failing test
One of the most convincing ways you can communicate an actual bug is by submitting a failing test. As a gem author, I love it when someone forks the project and provides a failing test for an issue theyâve found. It is the clearest, most concise way to express expected and actual behavior.
7: Submit a patch
If you can write a failing test for your issue and youâre familiar enough with the code to fix it, please go the last mile and submit a patch, preferably on a topic branch. GitHub makes this too easy.
8: Tweet for help, but don't stalk or bitch
Twitter has encouraged the #lazyweb. Itâs so easy just to include a couple of well played hashtags and fire off a call for help to the Twitterverse. But please donât stalk @gruber with Markdown questions or @mxcl with Homebrew questions that are probably already answered in the wiki.
9: (gasp!) Pay for it
One of the quickest ways to get support is to pay for it. I know, I know, crazy, right? Appcelerator is an example of a company that gives away their tools and has a booming community around it, but also provides professional paid support for their platform. Opscode is another example, providing supported, hosted deployments of Chef.
10: Be thankful
Perhaps most importantly, even when youâre frustrated with some bit of open source, show some appreciation. Itâs easy to lose site of the fact that it wasnât your blood, sweat, and tears that went into that code you didnât have to write. A thankful attitude will go a long way in getting help from the author or community
Now it's your turn!
What are some tips you could pass along to the community on how to get (and give) support for open source software?
[button href=âhttp://news.ycombinator.com/item?id=2190097â]Discuss this on Hacker News[/button]