Over the last two weeks I've gone through two "new idea introductions" with two entirely different Free software/hardware communities. (I used the word "two" three times in that sentence, and were I a slightly odder sort of person I might try to use the word "three" four times in this one but I'll refrain at just three. ;) Both went fairly well, and perhaps that's because it was not my first time around.
I've had my fair share of opportunities to introduce new ideas to a Free software communities in the years I've been a participant. In the process, I've learned a number of "do"s and "don't"s (the hard way) and I thought I'd take a moment to share some of them here in hopes someone else might find them useful.
Tell the community first. This may seem like an obvious one, but I can't count the number of times I've seen someone waltz into a community's common area and tell everyone what they had just done in hopes of support. Without naming names, I saw this done just last week and it turned out rather poorly.
There is a saying that goes, "it is easier to ask forgiveness than permission". However, when it when comes to introducing plans and ideas to a community, this is often very bad advice. It too easily puts people into a position where they feel a binding decision has already been made on their behalf, and when that happens people often stop listening effectively and start talking loudly. This is, needlessly to say, not good for communication.
There are even people who will push back on the idea simply out of principle, no matter how good the idea is, as a means to reclaim their (or the community's) right to input and dissent.
It is therefore far more effective to approach with a proposal rather than a decision. It is also usually far wiser to do this before actions that may appear official or binding are taken. Even if you've done a lot of work already on your concept / idea / implementation, approach the community with the humility required to present it as a proposal rather than a statement.
This is actually an area of constant conflict-creation which I attempted to improve over at freedesktop.org ... to no avail. My proposal was accepted in words and reject in actions, despite over a year of patiently working on the concept in an open and collaborate manner. That brings us to the next point quite neatly:
Be prepared for "no". Sometimes people will reject an idea. Sometimes that idea will be a really, really good one. Sometimes it won't. You'll always think it is a really, really good idea though otherwise you wouldn't have proposed it, right? ;) That can make accepting "no" really difficult, but it is important to realize that you can't force a community without breaking it.
This doesn't mean you have to take the first "no" as the final answer, however. Usually "no" comes in the form of a question or an objection. Be ready! Before presenting your idea, play your own devil's advocate and think of all the ways you might counter your idea. Better yet: present your idea privately to a friend or three that you trust and have them take a good, hard run at it. This will help you be ready for when you get a "no", because that will enable you to more effectively: (... hello, segue!)
Engage in dialog. When presenting an idea, others may have valid ways to improve it. They may be able to inform you how to make it more appropriate for that specific community in ways that may not make it better but may make it more contextually suited for that community. So pay attention to what people say and really work in the good ideas that come in, even if at first you may feel protective of your idea just the way it is.
If the idea you're pitching is not a simple one, people will often not understand it right away. They will offer feedback which may be less than informed or ... overly brilliant, shall we say. Be patient and respond to the misunderstandings factually and patiently. To be honest, I really struggle with handling those situations constructively, but have improved incrementally over the years. (.. or at least, so I hope.) I've found that this skill is one of the most important ways to turn an initial "no" into an eventual and enthusiastic "HELL YES!"
So when I say "engage in dialog" I mean it as a two-way street where everyone gives and receives. Don't assume an outcome or you may find yourself unable to engage in dialog truthfully, and people will pick up on that and when they do they tend to respond poorly.
Communicate your journey. In the process of dialoging, be sure to share your journey: how did you arrive at the idea, what obstacles have you faced (if any), how much are you invested in this idea. If you share the "how I met your mother" version of the story, people will more easily be able to travel that same journey in their mind that you did in yours. When your realize that it was the journey that took you to the destination, the reason to share that journey with others should become obvious: it helps them arrive there too.
Open, honest, transparent ... I've found that in presenting ideas, it is really hard to "overshare". If people feel you are holding back, they will often assume the worst about what you are holding back. Some people have really sensitive "bullshit meters", and unfortunately other people have really broken ones. Those people tend to perceive bullshit where there is none. Otherwise, they tend to be nice people. ;) Transparency helps bring those barriers down and is a key ingredient in engaging in dialog.
Still, be prepared for "no". Even after extensive dialog, sometimes the "no" remains "no". Maybe the idea wasn't so good after all, but don't just assume that: ask for feedback to understand why it was perceived that way. Take that feedback and tuck it away, don't re-open dialog at this point, you'll just annoy people with endless discussion.
Maybe it was the wrong time for the idea. If you feel that's the case, hold on to the idea for when it is the right time. There's a careful balance to be found here though: if you keep bringing up your idea every few weeks, you're (again) going to annoy people. Annoyed people don't accept new ideas very readily.
Or perhaps it was the wrong community for the idea. If you feel the timing is right and the idea is worthwhile, shop it around to other communities. Never be afraid to join a new community if that is where your awesome ideas can find fertile soil. Sometimes we allow ourselves to be anchored to the communities we are in due to sentimentality, comfort, etc. when we really ought to be looking for opportunities for our great ideas to bloom. This, by the way, is why it is critical for communities to provide ways to introduce ideas and experiment: if you are closed, your best idea people (that you didn't even know you had) will find better ways to spend their time.