Everyone, recently there was some tension/friction in a community, and I posted the following advice to everyone to better get along. Not only did the community members responded positively, but I also got pinged privately to make this available publicly, so here it is, and I will let the wider community do with it what it sees fit...
First a few general guidelines; a. Assume that the other party agrees more than disagrees with you. We tend to leave out agreements and focus on differences. Sometime this is forgotten and escalation becomes absurd for no rational reason. b. When in doubt, assume that you are interpreting the message wrongly and kindly ask for verification that you understood a particular topic well. c. When writing, assume that every sentence will be misinterpreted. Review and try to reformulate to be as clear as possible. d. Use a submissive tone in all writing. Instead of the strong "In my opinion, we must..." or the quite neutral "I think we should...", try to use "Maybe we should consider..." or "Another idea that we could..." e. If you disagree strongly with an email sent, tag it Important, then put it aside. Read it half a day later again. Put it aside. Read it again next day, and then it is easier to write a balanced and inviting response, instead of the initial vitriol that flows through us when we get upset. I found that sometimes a response wouldn't be necessary, as the importance was actually much lower than originally perceived, and I would be able to work "with", instead of "against", a given change. f. Be forgiving and accept different priorities. The other person is not out to get you or attack your work. More often than not, it is one of the above (a-d) that are failing, or that the other person prioritize some aspect higher than you do. Sometimes, this requires compromises, sometimes not and the different priorities can co-exist. Most communities at Apache consists of level-headed, reasonable people, who have a strong vested interest in its Apache project. This interest, often passion, is both the source of tension, but it is also what unites the people within the community. It is easy to forget the vast amount of agreement that exists, and get upset over relatively small disagreements. Ability to put that aside, or downplay the importance, will ensure a harmonious project. Face-to-Face is excellent way to eliminate disagreements, but that is often not practical. Consider Skype or Google Hangout, just for the social aspect of being part of this community. It should not be formal, and the invitation should go out to everyone, perhaps someone want to make a short presentation of what he/she is doing, to have some "structure", but that might not be needed either. Once we have a face to the words, and a general idea how that person is socially, we are much more capable to interact by email. Cheers -- Niclas Hedhman, Software Developer http://zest.apache.org - New Energy for Java