Georg asked to interview me for this course. The video will be available later on opensource.net, but Georg gave me permission to publish the questions and my answers in advance.
Q: What does “Open Source Community” mean to you?
A community is a self-organized and self-identified collection of people sharing a concern or interest.
I think this self-identification is very important.
Not only does it mean that I can’t put you into a “community” where you don’t feel you belong, but it also means that, if you identify as a member of a community and unless you’re a jerk about it, you do belong there.
Years ago I watched a TED talk by Roy Bunker, detailing the lessons we can learn from the institution he founded, Barefoot College. In it, Bunker says, “You are certified by the community you serve.” That line has stuck with me ever since as one that perfectly describes what it’s like to be a member of a free and open source software community.
From an open source perspective, communities in FOSS are similar to all the other millions of communities in the world. Each one is a collection of people who self-identify as belonging to that community. They share that identification, and that can mean a lot when building and maintaining relationships, let alone when building and maintaining software.
Q: In your book, chapter 4 is about finding an open source community to contribute to. The students in the class will be required to decide on communities they want to investigate and learn more about. Where can they go, what should they look for, what does someone who is new to open source need to know before getting started?
“How do I find a project to contribute to?” is one of the most common questions from people new to free and open source software.
Before you start looking for the WHAT, I strongly encourage you first to look for the WHY. Why are you looking to contribute? What are you hoping to get out of contributing? What are your goals? Know the answers to these things first before looking for projects to contribute to, as not all projects will be able to help move you toward your goals. If you try contributing to a project which isn’t helping you in some way, you’ll lose interest more quickly and have less of a chance of success with contributing.
As far as looking for a project to contribute to, people tend to default to scoping out the big projects, the ones everyone has heard of. Linux, for instance. People don’t only gravitate towards these because they’re well-known, but also because folks new to free and open source software don’t yet understand how massive the ecosystem actually is.
There are projects out there for everyone, for every topic, for every interest. I recommend new contributors take the time to do some web searches to locate some of these. Finding a project related to something that already interests you—like a hobby—not only means the project is more likely to keep your attention, it also means you’ll already be familiar with the jargon and concepts of the domain. Music, automotive, knitting, sewing, digital painting, whatever. Knowing what’s going on with projects related to these things requires understanding, for instance, what a seam allowance is in sewing and why it’s important. You’ll get up to speed with the project more quickly this way and are therefore more likely to be sucessful.
Also, these are likely to be small projects and communities. This can work in your favour. Not only are you (maybe) more likely to get attention with your questions if the community isn’t distracted by dozens of other new contributors, it also means that your contribution may make a bigger difference to the project.
Q: What advice can you give to someone who wants to learn more about an open source community and get involved?
Lurk First. You’re going to be excited and want to jump right in and get going, but if you do you might create a lot of waves and get washed out. Take the time to join the various communication mechanisms of the project and get a sense of how they interact. What are the mores and expectations? Do they prefer one communication medium more than others? What sort of jargon do they use, and do you understand it?
While you’re spending time getting to know them better, read all of the available documentation for the project. This can help you understand the conversations. Slowly everything will start to make sense.
When you do start participating in conversations, introduce yourself very briefly and let people know that you’re new there. It also can help a lot, when introducing yourself, to do so when people are discussing a simple tedious task. Politely volunteer to help with that task, and I guarantee your first impression will be better than otherwise. The tedious task might not be fun at the time, but not only will it be a great way to learn more about the project and community, you’ll also be amplifying the impact of your contribution. By taking on this simple but tedious task you’ll be freeing up a more experienced community member to focus on more advanced problems than you’re ready to take on yet. It’s a great service for the community.