Contribution, a word a I first heard in 2004. I was a student back then. I
first contribution was to the KDE l10n project with help from Ankur Bangla
project. More than anything else it was fun. All the people I first met were
already doing many things, they used to do more work than talking, they still
do a lot more work than many people I know.
The last 10 years
Over the last 10 years the scenario of FOSS movement in India has changed.
Contributors used to be the rock stars. The people just starting always wanted
to become contributors. But a new word has taken the place, evangelist. Now
everyone wants to become an evangelist. Most of
the students I meet during conferences come to me and introduce themselves as
evangelists of either Open Source or some other FOSS project, they do only
talking and all of them want to change the world. But sadly, none of them seem
to want to contribute back.
How to contribute?
I can understand, contributing is difficult in many cases. One needs some amount
of preparation and some commitment to contribute to any project. That takes
time, cannot be done overnight.
To begin with, you have to spend more time in reading than anything else. Read
more documentation, read more source code, read more meeting minutes of the
project you want to contribute in. Remember one thing, one always reads more
source code than writing. But if you are just starting, you can spend more time
in writing code too.
Try to get involved in the discussions of the project. Join the IRC channel,
stay there. In the beginning you may not understand all the conversations in
the channel, but keep a note of the things people are discussing. You can read
about them later, use a tiny and shiny site called
I know new students have a tendency of trying to solve non-programming bugs.
But as most of you are in Engineering background, you should focus in
programming more than anything else.
At home, try to find the things you do in computer in steps and
repeatedly/regularly. Try to write small programs which can do those tasks for
you. One of my first proper project was a small GUI application using which I
used to upload photos to flickr.com, via emails.
When working on some other big project, try to solve easy bugs at first. These
days all projects somehow mark easy bugs in their bug tracker. In case you can
not find one, ask in the IRC channel for help. Remember that IRC is
asynchronous, you may not get the answer right away. If someone is helping you,
you may want to ask their timezone.
I am not saying doing work in other parts of the project is less meaningful. I
personally want you to write more code than anything else. That way we will get
more developers from India.
What about translation and documentation?
If you look at the people who contribute with translations or documentation,
you will find few common things. Like they all love their language, they love
writing. As I said before even my first contributions were translations. But
neither me or any anyone else that time used to do this for some goodies or
ticket to any conference. We love our mother tongue and we love to use the
computer in our language, period. If you are doing translations, then do it
for the love of the language and fun. Please do not do this for some stickers
or release parties.
What about becoming an evangelist?
Before you start calling yourself an evangelist, you should learn about that
project. You will have to spend a lot of time to learn about the technology
behind, you will have to learn why some decisions were taken. The evangelist is
a person who cares and believes in the project and most importantly, knows the
project intimately. [S]he knows the developers behind the project, constantly
talk, blog and spread the news about the project. If you look at the
established evangelists, you will find mostly veterans who spent a lot of time
contributing to the project first. It is not about the age of the person, but
more about the time [s]he spent in the project. Btw, if you want to call
yourself a developer evangelist, first become a developer of that project.
That means some real code, not some examples.