About contributing to free software
I’ve been a continuous developer of free software for 7 years now. I started a few years ago on a decentralised social network named diaspora when I was still a post-high-school computer science student. At the time, even though I had a few flight hours as a developer, I had still no experience in Ruby on Rails, HTML, CSS and basically any web technology. For a time, it was fun. And I learnt a lot from that experience. Especially what not to do to animate a community and attract new contributors.
What is not contributing?
Apart from people who actually contribute to FLOSS (minus a few elitist people that contribute to FLOSS, sadly), people imagine that contributing can be narrowed down to exclusively spending 6 hours alone in your bedroom throwing 600 lines of code in order to close 12 issues altogether.
This myth is a pain in the ass.
It is because when you are a contrinutor of FLOSS – especially a project that counts very few ones, if not only one – it will prevent basically every person surrounding your project except a few technical profile to help you. And even just to try.
Lots of people keep asking questions about next release. Will it feature this? Will that long-lasting bug be finally fixed? Will I be able to finally add unicorns!? 😲
The generic answer is: “contributions are welcome”. And the generic response to that is: “I can’t code”.
“Well, you know, contributing is not only about throwing code. And I can help you learn anyway.
– I don’t have the time to learn.
– Not a single hour over the 168 ones of the week?
– Well, I have this and that and…
– Me too. But you know, I can’t reproduce the bug myself so I won’t go very far. You need to help me.
– What can I do?
– Start by looking at the logs here and there.
– How do I do?
– You do this and that.
– Ok. Oh… Wait… I found this in the logs. Could this be related?
– Could be.
There… This is the moment I prefer. The moment the person persuaded he/she was of not help a few seconds ago starts trying…
–Let me try something… Hmm… Yes, now it does that.
– Ok, I think I know where the problem is.
That’s it. You started contributing.
You can’t imagine how many time I had this conversation in the past. Counting on my fingers, it’s like… this many:
It seems like the person you’re talking to is back at school. Being questionned by the teacher. And rather than try something and take the risk of being wrong, just kicks into touch and fly.
Now, I understand that behavior. I went trough it myself. My guess is this is a protection behavior you learn at school to avoid being lectured and patronised. Pre-school kids I see in my daily life rarely act like this. On the contraryv they often want to explore, to try, to pet that unknown dog. Often at the expense of the parents who fear the worst.
Well the remedy to that problem is always the same to me: inclusion, kindness, teaching.
What is contributing?
Contributing to an FLOSS project is not only about throwing code. I stated this in FreshRSS for Android contribution guide. A FLOSS project needs a variety of profiles: UI/graphists, UX designers, evangelists… Down to people who just open issues to report bugs or make feature proposition.
Have you ever wondered why we’re always talking about communities when talking about FLOSS projects? Well, it’s because FLOSS is all about this: community. It’s not just the devs on one side and users on the other. It’s not the binary thing you will always find on proprietary projects. It’s about collaboration in one of it’s purest form. Where every person involved in the project is important. Not just the devs.
And it’s also about getting out of your comfort zone, sharing knowledge and seeking for it by asking questions and requesting help. Hence, the solution being inclusion, kindness, teaching.
As a FLOSS developer, I prefer a 100 poorly skilled contributors with good will that I help and help each other than 2 exceptionnal developers that can throw 2000 lines of high quality code in two hours but who can contribute only once in a while because other project need them too.
And I prefer that by far. Because elite coders started just like everyone started: by being a poorly skilled contributor who makes a lot of mistakes. And a hundred poorly skilled contributors with good will makes maybe 30 elite developers within 3 year. And the other? Well, they are equally important. Because very few projects actually need elite developers. And most professional developers are actually just good enough. I am just good enough.
So, if you are not an elite coder, do me a favor: start contributing. Whoever you are: male, female, in between, queer, asexual, undetermined, trans, alien, social worker, garbage collector, construction worker, unemployed… Whatever you are. No matter how you see yourself. Just. Bloody. Contribute.
Because I desperately need your help.