What does it take to be a Linux contributor, and why be one?
No Rhino Hide
The short answer to "What does it take to be a Linux/FOSS contributor, and why be one?" is dedication, and to change the world.
You hear it all the time: Linux and Free/Open Source software depend on contributors. After all, someone has to make all that great software. But what does this really mean? You might think you don't have any useful skills, or it will be drudgey and no fun, or people will yell at you. The Linux/FOSS universe is very large, and it is quite possible to find yourself in communities that are drudgey and no fun, and people yelling at you. Which is pointless and punitive; why bother? It's not as though we lack opportunities to enjoy pointless and punitive endeavors.
The good news is you don't have to hang out with mean people because there are plenty of good Linux communities that have nice people who build great software, and do fun things like meetups and hackathons where you can meet them in real life. One of the most amazing aspects of my Linux career is making friends all over the planet, and then meeting them in person at events.
For example, I'm going to ownCloud's Contributor Conference this August in Berlin. (You can come too!) There will be talks, hackathons, and a ton or two of learning opportunities. The part I'm looking forward to the most is meeting my co-workers and contributors, people from Massachusetts, Spain, Germany, Switzerland, and gosh knows where. Last year's conference was attended by people from as far away as Taiwan. Sure, I could travel to Berlin, or anywhere whenever I want and play tourist. But events like the Contributor Conference are way better because there is a bunch of people to welcome me and hang out with. We already share common interests and have something to build real relationships on.
I've been to LinuxCon and SUSECon, had bales of fun and made new friends. Why, you may be wondering, do I keep nattering on about relationships and friends? Isn't FOSS a meritocracy and all that matters is the code? Not only No, but Hell No.
Space to Grow
There are two fundamental concepts: Relationships are everything, and everyone starts out as a noob. The Apache motto community is more important than code is wise and true. Every software project is a web of dependencies. Do you need to be a rockstar coder? Absolutely not. Put that out of your mind, because any project has multiple roles to fill, and all that rockstar bushwah is just ego-tripping. Even the smallest software project needs documentation writers, user support, artists, musicians, sysadmins, Web developers, community builders...poke around and you'll find something you can do. All projects need the exact same thing: not rockstars, but dependable people they can count on to do the work, develop new skills, and to help build a supportive, productive culture.
The programming talent myth, featuring Jacob Kaplan-Moss, addresses the rockstar myth in-depth. Fave quote:
"The talent myth sets an "impossibly high bar for entry", he said, and the fact that any of us are here at all "is kind of shocking given this myth". It needs to be dismantled and a community that recognizes that "average is actually pretty awesome" should be be built in its place."
In my not-humble opinion dedication is the most important trait of all, because experience is everything. At ownCloud there is a small set of developers that I rely on because they have been there for years, and they know the company, the code, and the people. I don't have to waste time banging around trying to find the answers to basic questions because they already know them. Then everything I learn I can pass on to the next noobs. They are productive not because they are "rockstars", but because their experience means they won't waste time figuring out what's been done and what needs to be done.
Another example of this is Linuxchix.org. Like many volunteer-driven communities it's had its ups and downs over the years. We're on an up-cycle now, with a volunteer (hi Terry!) leading a thorough housecleaning of our technical infrastructure. Which is in pretty good shape thanks to a core of faithful women who have been maintaining the server and services for years. We've had our share of "rockstars" who came swooping in all full of enthusiasm for spiffy new installations such as Drupal and Moodle, set them up, and then evaporated. Fortunately other people stepped in and have been taking care of the routine maintenance.
Of course every community and organization is going to have a mix of people who come and go, people who stay, and people at all experience and skill levels, which means all kinds of opportunities for everyone.
The best thing about any FOSS project is it's a fabulous learning opportunity. You can freely study the code, the code management, distribution, how they manage bug reports and feature requests, documentation, community-building, cooperation with other projects...it's all out there, a priceless education that is yours for the price of a little effort.
It's also a career-booster. There is a saying: your code (or whatever your role might be) is your resumé. It's all out there for anyone to see. As regular Linux.com readers know, Linux talent is in demand. Many companies hire people on the basis of their FOSS contributions, and it is often the better companies that do this; the ones that are fun to work at, that give people room to grow, be themselves, and change the world. FOSS hackers are better paid, on average, and you have a chance to turn a hobby into a job. If you pick a project you find interesting you might end up getting paid to do what you love.
So there you are, thinking hey yeah I want to be a FOSS contributor, but you don't know where to start. Start with Leslie Hawthorn's excellent Getting Started in Open Source Software. Start with something that you're already using and enjoy, because you already know the software. Every project has its own culture and way of doing things. Learn their workflow, learn the process for making contributions, build relationships and learn how to work effectively with other contributors.
Changing the World??
What is all this changing the world guff? It's real. Building bridges between people, building relationships and working towards common goals is exactly how progress works.
Carla Schroder is the senior technical writer at ownCloud, longtime Linux howto author and former regular Linux.com contributor