对于建设和管理由开源社区主导的项目,我们并没有一种唯一正确的方法,但一些常用工具和实践可以帮助我们完成这项工作。关键问题是使用适合您社区的工具,并保持工具数量最小。本文档总结了大多数开源项目常用的工具,并推荐了使用这些工具建设社区的几种方法。 工具应该作为辅助,而非主导很多人认为,将项目开源就是要花大量时间告诉别人自己在做什么。但事实未必如此。如果您认真选择了工具以及要使用这些工具的开发流程,那么您需要做的对外交流工作将只是伴随开发过程的小插曲而已。 要 理解这一事实,我们首先应该理解,开源的目标不是确保所有人都明白开发过程的每个特定时间点都发生了什么。开源的目标应该是,确保有足够兴趣的人能找到他 们需要的信息。我们只需关注那些有足够兴趣并能完成自己那部分工作的人,我们可以节省社区现有成员辅导新成员所需的时间。这样,现有成员就能更专注于寻找 自己想要的结果。这似乎有悖于创建社区的初衷,因此让我们先把这问题放一放。 人们参与社区主导的项目是为了满足自己的需要——可称为“搔痒”。个人成员的初衷可能不是创建社区,而是解决工作、研究或业余消遣中的某个实际问题。因此,运作此类项目时,流程和社区方面的工作不应影响参与者的兴趣。 尽管如此,一个运作良好的开源项目还是会使用一套简单的流程和工具,以便在向参与者知会项目进展和帮助他们“搔自己的痒”之间巧妙平衡。下一节将介绍这些流程和工具。 基础知识很多不熟悉开源的人错误地认为,自己应该提供尽可能多的工具,以便感兴趣的人以适合自己的方式参与。但这种想法通常是错的。工具应该在有明确需求时才引入。过早引入工具会让用户感到困惑(‘做 X 时应该用哪个工具呢?’),而使用多种工具可能引起混乱,造成事倍功半。 每个开源项目需要四种基本工具和多种非基本工具。所有项目都需要的核心工具包括(且仅限于):
使用这些工具时,典型的核心开发流程如下:
关于此流程,重要的一点是,开发者无需大量投入即可向社区知会开发工作进展。他们要做的工作与在运作良好的软件项目中的工作是一样的,没有任何额外工作。大部分社区更新是由工具自动创建的,无需人为干预。因此,实现开放沟通只需在一开始正确安装工具,仅此而已。 现在,我们了解了基本工具以及它们在开发流程中的作用,下面将详细介绍每一种工具。我们还会介绍您的项目在进展到一定阶段后可能采用的其它工具的优缺点。 沟通工具沟通是开源项目成功的关键。沟通有两种形式:发布和讨论。前者的目的是向别人传达信息;后者的目的是让别人分享想法和经验。本节将讨论这两种方式。 制订沟通策略时,我们应该记住,用户和贡献者在同一时间出现在同一场合的几率很小,甚至为零。所以,我们有必要建立沟通的基础架构,允许人们在他们喜欢的时间、以他们喜欢的方式参与到项目中。这一基础架构是整个项目的基石。如果架构没有搭好,项目参与者将无法协作。 在开源项目中,邮件列表是双向沟通的唯一必要机制,但不同的项目会使用很多其它机制。本节讨论为什么邮件列表是基本机制,以及为什么其它机制可能与项目核心活动略有偏差。 邮件列表邮件列表用于讨论、取得共识、分享信息以及公共认可。邮件列表记录项目开发路径,提供针对不熟悉项目的人的说明与支持的书面记录。邮件列表可能是最重要的社区开发工具。 邮件列表已成为大多数开源软件开发者惯用的工具。邮件客户端是他们在一天中最先打开并反复使用的应用。邮件列表提供强大的功能,可高效过滤和管理邮件,并允许任何设备在线或离线访问邮件。简单地说,电子邮件是开源开发者工作的中心。 有 些人认为,基于 Web 的论坛因其“拉取”机制(即要求用户访问在线论坛以获取最新帖子)而优于电子邮件。他们称,不是所有人都能处理大量电子邮件,大多数人不希望无孔不入的电 子邮件发送到他们的收件箱。当然,这种观点很有道理。但关键是“大多数”这个词。创建新项目时,我们应该考虑我们想吸引什么样的人。新项目需要新的贡献 者,而不需要、而且很可能无法服务新用户。我们需要开发者,所以我们可能去关注技术人员,而他们的日常工作可能已经在围绕电子邮件客户端进行了。对于这些 人来说,电子邮件是更有效、更高效的工具。 这并不是说,开源项目完全不会使用在线论坛。在下一节中,我们会讨论在线论坛适用的场景。但关键问题仍然是,在大多数情况下,邮件列表更适用于开发者社区。此外,后续章节会谈到,邮件列表更易与项目所需的其它基本工具集成。 我们已经讨论了为什么邮件列表比论坛更适用于开发者社区;但很多新的邮件列表工具同时提供基于 Web 的接口和电子邮件客户端接口,以便用户选择最符合自己需要的机制。如果您还在为社区选择邮件列表而非论坛犹豫不决,我们强烈建议您选择以下一种混合工具。 存档邮件如果能够正确使用邮件列表,那么开源开发项目的存档邮件将成为该项目最有价值的资源之一。存档邮件记录了设计讨论和决定、操作说明信息、使用案例以及需求分析等大量有价值的信息。 所 有项目都应提供邮件列表的可搜索存档,如有可能,还应尽量引用这些备份,而非重复回答某个问题或重新作出某个决定,以避免不必要的重复劳动。与联合源类 似,存档设置不应增加项目组的工作量。大多数邮件列表提供商同时提供存档解决方案。如果您的邮件列表提供商未提供存档解决方案,您还可以在大量免费的在线 公共邮件列表存档工具中进行选择。 论坛论坛的优点在于易于使用。并非只有电子邮件高级用户才能最大限度地利用论坛。与邮件列表相比,论坛的一大优势在于,可以在讨论界面中提供可搜索存档。论坛与邮件列表相比的弱点在于,不支持离线访问、过滤、互操作性等高级功能。 虽然,对于技术人员来说,邮件列表是最佳沟通工具,但人们常常认为,不熟悉技术的用户需要其它沟通机制。事实并不总是这样;工具的选择取决于项目的性质。但如果您的用户不懂技术,能够提供用户支持的论坛可能是更好的选择。 虽然论坛可能适合于用户,但在创建论坛(或针对用户的独立邮件列表)前,您仍需认真考虑。您的项目已经发展到能够吸引大量用户的程度了吗?您有足够的开发者来监控和响应论坛中的用户问询吗? 过早创建论坛或针对用户的邮件列表,可能迫使用户进入封闭的‘黑暗房间’,让他们不知道是否有人在‘听’他们讲话。只有当第一沟通渠道的负荷大到有必要分流时,我们才应该创建第二沟通渠道。
|