Sign up ×
Open Source Stack Exchange is a question and answer site for people organizing, marketing or licensing open source development projects. It's 100% free, no registration required.

I really like a specific open source project and would like to contribute to it. Unfortunately I don't know anything about programming. What are meaningful ways in which a non-programmer can contribute in a meaningful way to an open source project?

share|improve this question

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

8  
It's hard to resist the urge to suggest learning how to program. – Pharap Jan 1 at 4:30
12  
If you know more than one national language, then consider providing translation for a project that is used widely. Git has a translation team that is separate from the programming team. Ubuntu has a similar translation effort. – Philip Oakley Jan 1 at 11:37
4  
1  
Many of the answers below list great points, but there's one little tweak: You can be a programmer, and you can still help out in the ways that people have mentioned below. The trick is to contribute to a project in a way that you are confident in your work, and that you feel like you can help out :) – Zizouz212 yesterday
    
I wrote an article on this: blog.smartbear.com/programming/… – Andy Lester 6 hours ago

There are lots of things to do around open source projects which do not require any programming knowledge at all. Among them are things like:

  • User Documentation: Programmers love writing code but hate writing documentation. And if we like to write documentation it's mostly the technical documentation for other developers. As a result, many open source projects have a user documentation which is hard to understand for non-technical users, full of gaps and in many places out of date. As an experienced user you can help to keep the documentation useful.
  • User Support: Programmers are already very busy programming, so they are glad about people who keep the newbies off their back by answering their questions. This goes hand-in-hand with user documentation, because by listening to the user's problems you learn where the documentation needs to be improved.
  • Artwork: Do you have artistic talent? Then you could work on the art assets of the project like icons or logos. Not just the software itself but also its website and promotional material can certainly benefit from your skills.
  • Internationalization: Are you fluent in a different (non-programming) language than the primary language the developers communicate in? Then you can help with translating the software and its documentation into that language.
  • Making good bug reports: We can only fix issues we are aware of. Unfortunately many bug reports we receive from users are of very poor quality. To fix a bug we must know exactly what steps must be taken to reliably cause the bug to happen. When you take the time to research a bug, isolate the exact conditions which make it appear and provide us with exact instructions, you can save us a lot of time.
share|improve this answer
10  
All five of these points are very valuable. Many open source projects are more likely to fail from a lack in these areas than in the programming itself. – Basil Bourque Jan 2 at 1:38
1  
Good answer. I'd just add that "Documentation" help can be as simple as improving or adding to the project's Wiki pages. – Brian Drummond 2 days ago
8  
A note on good bug reports, if you see a bad one, trying to reproduce it, then leave a proper report on the same thread as the bad one helps immensely. – RubberDuck 2 days ago
3  
It's worth noting that a lot of open source software consists of frameworks and libraries for other programmers to use, in which case the documentation, support and bug report bullet points would still require some basic programming ability. But for open source end-user applications this list is spot on, +1. – Ixrec 2 days ago
2  
+1 for artwork, artwork, artwork. It happened to me that I had ideas which I could code, but couldn't find anyone to do a proper artwork for, so ultimately the project was abandoned. – vsz yesterday

Testing.

You don't have to be a programmer to test a program. Use the program as it's designed to be used, but also use the program at the extremes or with "corner cases" to try to break it. In either case keep detailed notes as you work so when it breaks or misbehaves you know how you got there and can make it happen again. Conscientious programmers will love you ( I say this as a programmer) if you can give them a reproducible bug where there are clear steps on how to make it happen.

Make your bug reports programmer-friendly: A clear description of the bug, a clear (hopefully simple) set of instructions on how to make it happen, a complete description of the environment (OS, versions, hardware, whatever) and any necessary files or data.

share|improve this answer
    
+1 for this. Testing is a very different skillset than programming, and (also speaking as a developer) good testers are worth their weight in gold. Just remember the most important rule of bug reporting: reproducibility. If I can't make the bug happen on my end, it doesn't matter what's going on at your end, because I can't fix it if I can't find it. So give me details; tell me exactly what you were doing. If you got an error message, copy-paste it into the report directly, in its entirety; don't just say "I got an error message." If necessary, add screenshots or even screencap videos. – Mason Wheeler 6 hours ago

You might want to check out e.g. Fedora's page on how and for what to join. You'll see plenty of tasks for non-programmers. Some of the highly regarded members of the Fedora community don't do any programming.

You'll probably find similar calls elsewhere.

Disclosure: I'm a long time Red Hat and then Fedora user, currently an Ambassador for Chile.

share|improve this answer

An addition to @Philipp's answer is developing User Interfaces (UI's). A lot of programmers are absolutely terrible at designing good user interfaces, and know it. If you are good at such things, many would likely be delighted to have a designer to plan their UI's so they just have to implement them.

share|improve this answer

One of the greatest assets are people experienced in web design/development.

I find that this can be incredibly underestimated: websites are the platform for many projects to advertise. But they are also relatively underused. While some projects such as Github Pages make the job easier, it can be very hard to have a site that is both unique and attractive, while also serving its primary goal: to advertise the project.

Many websites need a great deal of effort, and it's an effort that many developers don't want to put, or don't have the time to put. For prospecting end users of a project that may take the project themselves and use it, the website is the place where a list of features can be culminated with. No developer will look at the code base just to figure out what a project does.

"Website Builders" such as Google Pages, Github Pages, or Wix offer templates, which can be difficult to extend with designs of your own, or with other functionality. Projects such as Django can also be difficult: it may involve learning another programming language, or familiarizing yourself with another code base, which can be very time-consuming.

This is also arguably a project within the project. But the asset of a proper website will assist you, and others in having a clean, central place to discuss ideas, present yourselves, and to collaborate. They can host your documentation, community resources, contributor resources and more.

Here's some attractive sites for various projects (you'll see the difference):

Sites may arguably be better for more-used projects, but the benefits of a site can be applied for any project, big or small.

share|improve this answer

There's one thing that I hadn't seen proposed yet: ideas. You might actually have some good ideas that can be discussed on the project's mailing list and end up getting implemented - the more thought over, the better. By not being a developer you're more likely to be the "regular user" kind of man and you can use it to your advantage by proposing things that you would like to see.

Another activity that comes to my head is advertising. Write a blog article and post it to Slashdot and Hackernews. Find related StackOverflow questions and make people aware of the tool if it's programming related (or do the equivalent thing if it's not). Write a Wikipedia article. All of those can help people find the project.

share|improve this answer
8  
Yes and no. Ideas are a dime a dozen, doing the work to see if they are worthwhile, ironing out the inevitable quirks, and deploying them is where the value lies. Sez Edison: "Genius is 1% inspiration and 99% perspiration". – vonbrand 2 days ago
    
I think that this is really project specific though: For projects of a specific nature, like Python-Requests, ideas aren't as valuable because the project needs to follow a specification, and it's in more of a niche region unlike something like Python-Django where ideas can't grow into new themes and features. Otherwise, you make good points. – Zizouz212 2 days ago
    
Added the advertising. – d33tah 2 days ago

UI specialist: you could download the open source software and tell devs what problems you have with it (is it easy to install, etc.). You could even make a Google Survey about if users who installed or used the software have ideas on what was hard to do and what made sense to them. If you have a background in psychology or sociology UI studies will be perfect for you.

share|improve this answer

Since the Phoenicians invented money, one of the possible answers is clear. Many open source projects has a possibility to donate.

share|improve this answer
    
Okay, so... I donate money to a project. Then what happens? It would be helpful if you could elaborate how an open source project could utilize donations from anyone. – Zizouz212 4 hours ago

protected by ArtOfCode 3 hours ago

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.