发表于2016-11-13 00:32:54 +0800

在Apache社区有一个不成文的规矩:“没有在邮件列表里面发生的事情就没有发生”。今天这篇blog就和大家聊聊为什么会有这样的规矩。

由于社区的成员遍布世界各地,时差是大家在沟通的过程中需要解决的一个很重要的问题。在Apache社区大部分的开发人员都居住在欧美地区,如果要大家一起坐下来开会,基本选的时间都是在东半球的开发人员睡觉的时候。例如每年两次的Apache成员大会基本上就选在了北京时间凌晨三点左右召开。 通过邮件列表这样的方式可以比较好的解决时区问题,因为邮件是异步的,接收者可以选择他比较方便的时间回复信息。

当然使用邮件列表还有一个好处就是,邮件存档检索都比较方便,这样可以让关心邮件主题的朋友随时跳进来参与讨论。 我经常可以看到在Camel的用户组里有人会就几个月以前讨论的问题接着发信寻找更好的解决方案。社区成员可以通过搜索公开的存档邮件及时获取到相关的问题的讨论上下文,通过邮件列表可以极大降低社区成员获取信息的成本,这对于人员流动性比较大的开源社区来说是非常重要的。

说了这么多使用邮件列表沟通的好处,那为什么国人很少用邮件列表问问题呢?简单分析一下,可能会涉及几方面的问题。

第一是语言问题,因为在Apache社区,大家都是用英语来进行沟通, 对于大多数的开发人员来说,他们想比较快的解决问题,往往会先选择使用Baidu搜索相关的中文解决方案,而很少尝试去邮件列表里面去用英文来问问题。对于大部分和用户使用相关的问题,使用中文来检索应该能找到相关的解决方案。但是如果我们想深入研讨软件内部的细节问题的时候,使用英文往往能获取到第一手的信息。

第二可能是大家觉得邮件会比较慢, 如果邮件的讨论方正好分布在东西两个半球,一次有效的来回讨论可能就会占据一天的时间。也许正因为这种慢可以让我们在写邮件的时候可以好好考虑一下上下文的逻辑关系,以及相关讨论人的认知以及感受等问题,让大家的讨论能够比较通畅的进行下去。

现在国内的开源社区发展地也非常迅猛,大家大多会选择QQ群或者微信群等这样的及时通讯群来进行交流。这样的交流的好处是大家可以随时随地进行沟通,由于大家在这样及时通讯工具里的沟通没有相关的存档检索功能,大家的讨论很难沉淀成为能被后续加入的成员所使用的有效信息。这样表面的繁荣很难有持续发展的动力。

最近在Apache孵化项目社区中就有这样有关项目建立中文QQ群的讨论,有兴趣的同学可以通过邮件列表存档获取相关的内容。 当然由于这个主题涉及到多方面的内容,大家讨论的方向会比较多: 有讨论Apache是不是应该鼓励多语言讨论的,有讨论是不是邮件列表讨论是必须的。 就从方便让大家围观,及时全面了解问题的上下文的角度来说,大家应该能够体会到邮件列表的强大威力了。