Providing support for an open-source project can be draining on the developers, and not receiving help can be frustrating for the users. If you need help with one of these projects, there are a few things you can keep in mind so you can find a solution sooner, and help out the developers at the same time. I develop a few sizeable open-source software projects that get around 100 support requests per day. I've based these recommendations on what I've seen, and the pitfalls that people often hit.

Read Documentation

Before even considering to ask a question, you should check if documentation already covers it. If you're still unsure after having read it, then it's fair to ask the question. The documentation covers many questions I see about my projects. Many people have their questions answered by being linked to the documentation, without any further explanation or query.

Ask your Question

This point sounds rather obvious, but most people do not start with their question in my experience. It's common to see people ask if they can ask questions, rather than just asking their question. Not only does this waste time, but it also majorly reduces your chance of getting a response. If someone sees a question they know the answer to, they can respond to it. Suppose someone sees a vague statement such as "Can I ask a question?" In that case, people can see a response as committing to answering the question once given. Unless someone knows absolutely everything about that software, they're unlikely to commit to something like that.

Rather than asking whether you can ask a question, you should ask your question.

Be Precise

When you're asking a question, make sure that you explain what is going wrong. Telling someone that a piece of software "doesn't work" does not provide enough information to attempt to help. You should explain what you did, what you were trying to achieve, and what result you got instead. Telling someone you got an error when you tried to run a command to achieve a result is significantly more helpful than saying that the command doesn't work. Make sure you provide all the relevant information.

Contrary to what you might assume, the problem you're having is not the most important thing to mention when asking for support. People often don't ask about their actual problem; generally, people ask why their attempted solution didn't work. Without knowing what the original problem was, it's impossible to provide the real answer. This concept is known as the "XY Problem". The best way to avoid asking an "XY Problem" is to explain what you're trying to achieve first. Not doing that can waste everyone's time and leave you without an answer.

Be Helpable

When asking for help, it's crucial to put in the effort to being helped. If asked for clarifying information, give that information. If you refuse to provide the information, often developers can do nothing to provide help. It's also important to provide everything they ask. If asked for a log file, give the entire log file. Do not provide a small section that you deem to be relevant. It's often not the information that was needed.

If provided with solutions, make reasonable attempts actually to use them. Outright rejecting answers or expecting someone else to do it for you shows that you're not willing to help yourself. If you won't help yourself, you shouldn't expect anyone else to help you. It's important to also not argue with the developer about their response. They likely know more about their software than you and the common problems that people experience.

Be Patient

When asking questions to open source projects, be aware that you won't necessarily receive an immediate response. Most developers of these projects work on them in their spare time, alongside their job and life. Developers also need to sleep and could be in a different timezone to you. Expecting someone to be available to answer questions at all hours of the day is unrealistic.

Similarly, if a developer is helping someone else at the time, wait until they've finished. Constantly reminding them that they've not yet answered your question is annoying and doesn't achieve anything.

Be Respectful

It's important to remember that the developers are people too, and have a lot more going on in their lives than answering people's questions all day. Treat them with respect, and they'll treat you with respect. They likely answer the questions of many people per day. Acting entitled or rude does not help you resolve your issue. Developers of open-source projects do not owe you anything unless you're paying them. Even if you are paying them, they only owe you what is under the payment terms.

If you're having a frustrating issue, make sure you don't take anger out on the developers. Harassing them will only lead to wasted time and disappointment for everyone involved.

Consider Supporting Them

If you make heavy use of a project, especially in a commercial context, look to see whether they accept financial contributions. If the project is available on GitHub, chances are it'll use GitHub Sponsors. Many open-source projects, especially those used by large numbers of people, are significantly under-funded. If you're gaining value from their work, it's great if you're able to give them something back for their time.

Conclusion

Asking for support from open source projects can sometimes be frustrating. If you make sure to ask good questions and be respectful, you'll have the best chance of getting a solution.

Maddy Miller

This article was written by Maddy Miller, a software engineer at Clipchamp at Microsoft. In her spare time she works on writing articles, as well as developing the Minecraft mods WorldEdit, WorldGuard, and CraftBook. Her opinions are her own and do not reflect her employer.