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]