如何解决创建全球社区的挑战

如果你熟悉一些全球性的开源社区的话,就会遇到诸如语言障碍、文化差异、时区等等的挑战,本文尝试给出几个典型的解决办法和思路。共勉之。

引子

随着互联网技术的发展,如今的社区成员是来自世界各个地方,在建立在线社区时,会遇到什么样的挑战?我们又该如何解决这些挑战?

人们为开源社区做贡献,某种程度上说,是为实现帮助开发软件的承诺。在过去,人们通过在约定好的时间和地点会面,或者是使用写信的方式,或者是打电话。在今天,技术的发展已经让在线社区无处不在了,人们可以很轻松的随意的进行视频沟通,并开始一起工作。举个例子来说,你如果在跨过公司工作过的话,在早上可能是和摩洛哥的人在协作,到晚上又在和夏威夷的沟通,这些都是稀松平常之事。

全球社区:三大挑战

任何在群体中工作过的人,都能明白当拥有不同意见的时候,是最为棘手的。在线上的社区,则更是增加了新的难度,比如语言障碍、不同时区以及文化差异等。

语言障碍

英语在开源社区仍然是主要的语言,所以说想在开源社区成长,没有一定的英文水平,就会在阅读文档和沟通方面遇到困难,要解决这个问题就得从吸收成员做起,首先要邀请一些具备双语能力的人的加盟,向周围的人打听一下,总是有人精通多门语言的,那些懂得多门语言的人,可以通过帮助他人在语言上的障碍,进而让这些人们能够为社区做出贡献,而且还能够通过翻译项目和文档进而与更加广泛的人们交流。

程序员们会使用各种不同的程序语言,你或许最拿手的语言是 Bash,但是,其他人会选择诸如 Python、Ruby、C 等等。这也意味着,由于编程语言的原因,人们可能会发现很难为你的代码库做出贡献,一般来说,项目负责人选择一种被软件社区采用的语言是非常重要的。加入你选择了非常小众的编程语言,那么也就意味着能够参与的人将会很少。

不同时区

时区也是一种为开源社区带来挑战的形式,举个常见的例子,加入你住在旧金山,想要与在伦敦的小伙伴作一次视频通话,那么你就不得不调整8个小时的时差。那么这也就意味着,你需要根据合作伙伴的所在时区,要么早、要么晚的去工作。

还有一种形式,就是现实中的冲刺活动,如果你的团队是在一个时区下工作的话,这根本就不是什么大问题,但是社区则很少能做如此的选择。只能去定期举行虚拟会议来讨论项目,并建立一个定期的时间和地点,让每个人都可以讨论悬而未决的问题、即将发布的版本以及其他主题。

但不同时区也有另外的好处,因为团队的成员是全天候都可以工作的,如果你有 IRC 等实时通信的话,就可以在白天或晚上的任何时间找人回答他们的问题。

文化差异

文化的差异可能是开源社区中遇到的最大的挑战,人们来自世界各地,拥有不同的思考方式,不同的计划方法,以及不同的解决问题的思路。政治情况也会对工作环境产生影响,甚至会影响到决策。

作为项目的领导者,我们应该努力从不同的角度去创建出宽容的环境。文化差异可以鼓励社区之间的讨论。建设性的讨论总是对项目有好处,因为它们可以帮助社区成员针对同一主题可以有多种不同的视角,不同的意见也有助于改善最终的问题解决。

要想让开源成功,你的团队必须去学习拥抱不同。这并不是一件容易的事情,相反会很难,因为改变思路是最难的。但是实践证明,多样性是有利于社区的,你的改变绝对是值得的。

一些增强社区的方法

深入当地:在线社区成员可能会发现附近的贡献者 —— 能够相识见面,并成立本地的社区,两人成从,三人成众,人数不在多,只要项目有意义。也要去邀请一些当地公司的用户或老板,或许他们可以为聚会提供场地。

寻找或举办线下活动: 举办线下活动是非常有意义的,它是建立本地社区的一种划算的方式,在当地的咖啡店或酒吧聚会,庆祝最新版本的发布或核心功能的实施。你举办的活动越多,有更多的人会加入你(即使只是出于好奇)。你也可以考虑,让一家商业公司为活动提供场地,或者是自行来筹集一些款项来维持或活动的日常开支。

保持联系:在每次活动之后,要与参会的人们保持联系,收集电子邮件地址或者其它的联系方式,邀请他们加入某些聊天群,邀请他们去为更多的社区做贡献,你可能会发掘出更多的本地的人才,而且谁也无法预测——说不定会挖掘出下一代的核心开发者。

分享你的经验:你所在的本地社区是非常有价值的,不仅仅是对于你自己来说,这是泛指范围更大的社区有益,将你的发现和经验分享给大家,或许对他们是有用处的,如果您确定如何开始筹划活动或聚会,请向他人询问他们的见解。有机会能够向拥有更多经验的人请教,可以让人们更加快速的走上正轨。

考虑文化差异:请记住,文化规范因地点和人口而异,所以在清晨安排一个特定的活动可能适合某些地方的人们,但是未必适合其他地方的人。当然,你可以 - 也应该 - 使用更广泛的社区的参考,以便更好地去理解这种差异,但有时甚至你需要通过反复试验来进行试错。不要忘记分享你学到的东西,以便别人可以从你的经验中受益。

收敛下个人的意见:避免在工作环境中传达强烈的意见(特别是关于政治)。因为这只会阻碍开放沟通,对解决问题也是无济于事。而应重点与团队成员进行建设性的讨论。如果你发现自己有一个激烈的争论,退后一步,冷静下来,把讨论的重点放在更积极的方向上。讨论应始终是建设性的,不同的观点应该有利于你的社区。切勿将你个人的观点置于社区更大的利益之前。

尝试去做异步沟通:如今的时代,尽管实时聊天已经司空见惯,但是仍然不要忘记电子邮件的好。如果你在在线聊天室(微信群)找不到某个人,就要尝试发电子邮件给他。或许,你还能得到一个快速的回复。也可以考虑使用一些新近发展起来的异步通信平台,如Twist,但是仍然不要去周期性的检查自己的邮箱,以及到论坛和维基上查看是否有新的内容。

尝试不同的解决办法:这个世界上是没有一把万能钥匙的,最为有效的学习方式往往是通过实践经验,不断试错反馈中得来的。反复的试验可以教会我们很多。不要害怕和担心失败,要学会从失败中总结,你要做到不断从失败中改进。

社区需要精心培育

将社区想象为一株刚刚发芽的植物,要想让它生长和开花结果,你就得每天为它浇水,确保能够吸收足够的阳光和二氧化碳。相应的,经营社区也是同样的道理:倾听来自贡献者的声音,还要时刻记得,你打交道的是人类,需要不断的沟通才能起的一定的效果。如果你的社区失去了人情味,人们将停止对此作出贡献。

最后,请记住每个社区都是独特的,所有没有什么全能的、统一的解决方法能够解决所有问题。要去坚持不懈的努力、持续的学习、并积极的采纳社区成员的意见。用心就好,静待结果。

关于原作者

José Antonio Rey 是一名参与Ubuntu 社区已经有7年的资深成员,他是图书《Ubuntu官方指南》第8版和第9版的合著者,他也是 UbuCon 拉丁美洲的前任当地社区委员会成员和活动组织者,目前来说还是一名在读学生,主要在Juju的团队工作,希望能够通过Juju给大家带来精彩。

本文由作者José Antonio Rey 发表在Opensource.com上:Overcoming challenges when building great global communities。本文在Creative Commons BY-SA 4.0许可证下发布。由开源之道精心编译,欢迎转载!