11 ways to fit into a free software project
Off the Beat: Bruce Byfield's Blog
Many technical writers believe that all they need are writing skills. Consequently, my contracts usually began with a period of proving to developers that I could handle the technical details as well. Talking about Linux worked wonders, but it could still be an uphill battle. Later, I found journalism required much the same process of overcoming a closed community's reaction to an outsider long enough to gain useful information.
With these experience, I was surprised the other week to come across several complaints that the free software community was hostile to outsiders. I had never found it particularly so -- but then, I've always approached it as someone worth placating, either to justify spending money on my consulting fees or else in the hopes that I would give a favorable write-up.
Others, of course, don't have those advantages. In fact, free software has systemic bias that can make becoming active in a project unnecessarily difficult, such as those against women and non-coders.
All the same, based on my experience and that of veteran contributors, I believe that outsiders have a better chance of being accepted by a project if they follow a few simple practices in the early days of their involvement.
I have summarized them here in no particular order:
11. Introduce yourself: Don't just suddenly start participating. Let people know who you are and what you do. Welcoming you should give others a reason to start up conversations with you.
10. Learn how the project communicates: Each project has different ways of communicating. For some, it is a chat channel, for others a specific mailing list. Whatever it is, you need immediate access to wherever discussions are held and decisions are made.
9. Establish yourself as competent as soon as possible: The myth of meritocracy may be inconsistently applied, but, generally speaking, the sooner you demonstrate that you have areas of expertise, the sooner you will be accepted. Try to find a few small tasks you can do quickly to demonstrate your expertise.
8. Don't over-promise: While you may be eager to prove yourself, don't take on more than you manage. You need to show that you can do what you promised in the time you said you would. A newcomer who makes too many excuses is less likely to be accepted or trusted.
7. Where you aren't an expert, ask questions: Although the free software values expertise, the next best thing is a willingness to learn. Besides, few people can resist explaining their work, especially when they take pride in it, and most will view questions as an acknowledgement of their expertise. Just remember not to pester or gush.
6.Ask for feedback: Your contributions will probably get feedback without any need to ask. But don't hesitate to ask for feedback in ordinary discussion. A simple change of wording from "Let's ..." to "Is there any reason why we can't ..." may be all that you need to do -- and tends to keep discussion civil as well.
5. Find and cultivate allies: The chances are, you aren't the only one in the project with your interests. Learn who has similar interests, and ask them what is being done in those areas. You will probably spend a lot of time working with them anyway, so this shouldn't be difficult.
4.Observe more than you speak (or chat or email): Aside from asking questions, think twice before jumping into conversations. A reputation for pushiness won't help you, and you don't want to embarrass yourself with assertions that are wrong.
3. Be patient about advocating changes: Even if you are confident that you have a better way of doing things, don't be in a hurry to propose them. Suggestions from a newcomer are unlikely to be well-received, no matter how brilliant they are. Besides, once you've been around for a while, you might discover that there are reasons for how things are done that you haven't considered.
2. Get to know the leaders: The official leaders may be listed on a web page. But pay attention to the unofficial leaders, too -- the retired leaders, the ones who have carved out their own niches, and the veterans who know more than most members of the project have forgotten. Often, the unofficial leaders may be given more respect than the elected or appointed ones. Both types of leaders may also be willing to give you advice; in my experience, the senior members of a community are far less likely to give newcomers a hard time than the less experienced ones -- perhaps because they have less to prove.
1. Consider finding a mentor: Even if a project doesn't have a formal mentoring system, you should be able to find some veteran who can informally help give you advice and tell you the unwritten rules. Your success will reflect on your mentor, so you'll have at least one person with a stake in helping you succeed.
Learning the social side
You may think that acceptance in a project is simply a matter of submitting good patches. However, in most projects, the social aspects can be as important as your work. How you conduct yourself and who supports you sometimes matters as much as much as merit, even if many people believe otherwise. Being obsequious will work against you, but, the social aspects are inevitable, so you might as well make sure that they are working for you rather than against you.
The good news is that these suggestions work in other situations, too -- most notably when you start a new job, but also in any situation where you are a lone outsider joining a group.
Of course, you may still have to struggle against systemic biases. However, by following these suggestions, you can at least have some confidence that any difficulties you have are not due to anything that you're doing or not doing.comments powered by Disqus
MSBuild is now just another GitHub project as Redmond continues its path to the light.
Malware could pass data and commands between disconnected computers without leaving a trace on the network.
New rules emphasize collegiality in coding.
Upstart lands in the dust bin as a new era begins for Linux.
HP's annual Cyber Risk report offers a bleak look at the state of IT.
But what do the big numbers really mean?
.NET Core execution engine is the basis for cross-platform .NET implementations.
The Xnote trojan hides itself on the target system and will launch a variety of attacks on command.
Spammers go low-volume, and 90% of IE browsers are unpatched.
Adobe scrambles to release patches for vulnerable Flash Player.