How to contribute to open source without writing a single line of code

Read the intro­duc­tory post here first.

So, you found an open source project you really like, it saves you a lot of time, takes some fric­tion away from your life, saves you money and you’re full of admi­ra­tion and grat­i­tude to the peo­ple who spend their free time work­ing on it, so that you can stand on their shoul­ders. You feel like you really should give back to them, or to the (rest of the) com­mu­nity around the project, but you don’t really want or can do the obvi­ous – start fix­ing bugs or imple­ment­ing new fea­tures, so you don’t. But is it the only way to con­tribute to the project? Hardly – you can be of great help to the project with­out writ­ing a sin­gle line of code, and ded­i­cat­ing just a tiny frac­tion of your time to contributing.

Give feed­back

The small­est thing you can do to con­tribute is give feed­back. Devel­op­ers work­ing on every healthy open source project are con­stantly look­ing for users feed­back. How would you like a fea­ture to work? How do you like the cur­rent fea­ture set? What would be the fea­ture you’d like to see the most in vNext? What behav­ior in this or that cor­ner case would you find more log­i­cal? These the kinds of ques­tions that tend to be asked by the devel­op­ers to the com­mu­nity, and by speak­ing your mind on these issues you’re help­ing the devel­op­ers make the right decisions.

Some project have set up ded­i­cated web­sites, using uservoice.com where it’s incred­i­bly sim­ple to give feed­back – you just click. For more elab­o­rate ques­tions dis­cus­sion groups, or project blogs are used to ask open ques­tions to the com­mu­nity. Take a moment of your time to write a few sen­tences to shed some light on your per­spec­tive on the mat­ter. This may not seem like much but giv­ing feed­back is the most impor­tant thing in ensur­ing that the project pro­gresses in the right direction.

Help oth­ers

For com­mer­cial soft­ware where there’s a big com­pany behind the prod­uct, there are usu­ally peo­ple hired to build up the body of knowl­edge about the prod­uct. They write doc­u­men­ta­tion, they write arti­cles in mag­a­zines, they blog exten­sively, speak on con­fer­ences write books, answer ques­tions on forums etc. Open source projects have usu­ally just a few vol­un­teers writ­ing code, doc­u­men­ta­tion, blog­ging, answer­ing ques­tions, all at once and on top of that – they do it in their own free (as in speech) time.

What you can do, is to ded­i­cate some of your own time to take some of the non-coding off of their shoul­ders. Do sub­scribe to dis­cus­sion group of your favorite project, or to your favorite Q&A web­site where peo­ple ask for solu­tions of their prob­lems with the project. If you see some­one ask­ing a ques­tion that you know the answer for – do answer. This won’t usu­ally require a lot of time, and some­one will be very grate­ful to you. Also this has another aspect – by stat­ing clearly what you know, or think you know you’re learn­ing bet­ter the prod­uct itself – you’re build­ing up your exper­tise and gain recog­ni­tion and respect in the com­mu­nity. This is espe­cially vis­i­ble on sites like StackOverflow.com where for giv­ing good answers you’re rewarded with points.

Write doc­u­men­ta­tion

If you find some aspect of using the project hard, and the doc­u­men­ta­tion is not very help­ful – improve the doc­u­men­ta­tion. Many projects keep their doc­u­men­ta­tion in the form of a wiki, which means that you’re free to edit and improve it. After all – the doc­u­men­ta­tion is the place where every­one is the most likely to look for solu­tions in the first place. Help keep it up to date. Help it cover the areas you strug­gled with. If you blogged your prob­lem – you’ve done most of the hard work already. Add parts of your blog post to the doc­u­men­ta­tion, ensur­ing that they fit with the rest of the doc­u­men­ta­tion and its rules.

It’s not only the code

Open Source projects are not only the cod­ing and doc­u­men­ta­tion – it’s also all the ‘meta’ stuff. If you can help improv­ing the web­site of the project. Write the copy. Improve the design of the web­site. Design logo. This all is impor­tant stuff, although often there’s no per­son to take care of that.

Blog, speak on User Group meetings

If you have a blog – do write about the project. Post solu­tions event to what after the fact may seem as the most triv­ial prob­lem. If it took you 15 min­utes to fig­ure out, it is worth post­ing about. You’ll be sur­prised how many peo­ple will find your post helpful.

If you like the project – get oth­ers involved. Speak on your local user group meet­ing about it, show what you like about it, how it helped you, why you like it. By advo­cat­ing good project you’re get­ting oth­ers involved. You’re expand­ing the com­mu­nity which means more peo­ple learn about it, use it and ulti­mately more peo­ple con­tribute to the project.

Donate money

Open source projects are free to use, but they cer­tainly are not free to develop and main­tain. Con­tribut­ing with your wal­let can be very effec­tive way of help­ing the project progress, yet many peo­ple don’t even con­sider this. Small amounts to cover host­ing costs, costs of hard­ware band­width etc may make make a whole world of dif­fer­ence to the main­tain­ers of the project.

Also devel­op­ing soft­ware often requires soft­ware which is not free. You want project X to sup­port ver­sion Y of Z? Donat­ing money so that the devel­op­ers can pur­chase the license of Z can be a great way of con­tribut­ing. That is espe­cially true on the Microsoft stack, which con­sists almost entirely of com­mer­cial software.

On the larger scale donat­ing can help some­one to start work­ing full time on cer­tain aspects of the project to make what would oth­er­wise be impos­si­ble, pos­si­ble. Prob­a­bly the most famous exam­ple of this is IMeta cor­po­ra­tion, which donated one of their top devel­op­ers to work full time for sev­eral months on bring­ing LINQ sup­port to NHiber­nate.

Comments are closed.