管理开源社区的 10 个技巧

使用这些开源项目的最佳实践,更好地与开发人员、用户甚至喷子合作。
140 位读者喜欢这个。
Illustration of a group of people working together

Hanna Kim, CC BY-SA 4.0 (原始链接 这里, 由 Opensource.com 修改)

二十年前,我开始使用自由和开源软件。不久之后,我开始在专门的论坛上提问,学习如何使用 IRC 与开发人员聊天,并贡献了我的第一个错误报告。随着我的贡献增加,我从工业界转行到开源软件。

在过去的 20 年里,我学到了很多关于使用和贡献自由和开源软件,以及与社区和开发人员合作的知识。以下是开源项目中您会发现的 10 个关键领域,以及一些更好地管理它们的技巧。

1. 新手

新用户永远不会改变:他们不会搜索现有的答案,他们的问题总是很紧急——当然对他们来说。 有时他们不明白使用开源软件意味着他们要对如何使用它负责。 他们不知道项目和产品之间的区别。 这就是为什么他们不知道社区支持、免费支持和付费支持之间的区别。

在许多论坛和问答引擎上,您可以添加指南和其他技巧,以帮助新手编写包含所需基本信息的好问题。 如果可能,启用重复项和自动建议等功能,以便清理队列和提供的信息。 当然,经验丰富的社区成员和项目专家可能会对 初学者 感到恼火,但不要忘记每个人都曾经是初学者。

这就是下一个要点如此重要的原因。

2. 教育

大多数人对自由和开源软件、社区和相关主题一无所知。 不要期望大多数人会自己学习。 关键是提供教育,再教育,以及更多的教育

在您的材料中

  • 阐明您的业务、您的项目、您的产品(例如,项目和产品之间的区别),并在公司内外教授开源最佳实践(是的,“内部”包括您的同事和经理)。
  • 在您的网站(公司网站、项目网站、文档网站、博客等)上编写清晰的沟通内容。
  • 从您的沟通和内容中删除“免费”和“gratis”等词语,并在所有适当的地方将其替换为“开源”。

您的目标是帮助用户理解他们正在下载一个开源项目,而不是一个产品。这有助于他们对获得支持和成为负责任的用户产生准确的期望。

3. 代码托管平台

无论您使用什么贡献系统,无论您对问题进行排序的速度有多快,以及您对代码审查有多认真,有些人会抱怨——他们的问题是关键的,必须立即修复,维护者不够友善或熟练,提交代码太复杂等等。 有些人会在社交网络上分享代码,而不是在代码托管平台上; 他们说他们没有时间,维护者应该这样做。

一些想法

  • 创建自动或标准答案来管理此类用户和消息,以免他们消耗不必要的时间。
  • 分配项目经理、社区经理或其他人员来处理难缠的人员和讨论。
  • 始终保持热情、礼貌和尊重; 这将显示您对人们的善意。
  • 花时间指导那些对项目感兴趣并想学习和贡献的人。
  • 给予那些赢得权利的人在代码托管平台上更多的权利。
  • 编写关于如何获得权利、如何失去权利、被禁止的原因等的明确规则,并将其包含在您的开发者文档或 contributing.md 中。
  • 请记住,贡献者来自世界各地,拥有不同的文化、起源和母语,他们的英语可能并不完美。 保持开放和宽容。

4. 文档

文档永远不会完美或最新。 这始终是一项尽力而为的工作,并且是一个持续进行中的工作。

在某些团队中,文档和教程是工作的一部分,这意味着如果开发人员没有编写文档,则该功能将不会被合并。 您可能希望在您的团队和项目中尝试这种做法。

请记住,有时编写关于社区中经常出现的问题的逐步教程比编写关于特定主题的完整、详细的文档更容易且更有用。

在您的文档中,您必须至少包括

  • 对项目的描述、它做什么、它不做什么(如果需要)、当前的路线图和分发许可证
  • 如何安装和先决条件列表
  • 最终用户的基本说明
  • 维护人员的基本说明(运行、更新、监控等)
  • 如何从源代码构建
  • 如何在代码托管平台上贡献
  • 如何编写代码(每种语言的预期标准)
  • 如何编写和运行测试
  • 依赖项及其许可证的列表
  • 所有软件扩展系统及其用法的示例列表(例如,模块、主题、钩子、API 等)
  • 指向其他网站上的教程和有趣技术内容的链接
  • 贡献项目的方式,除了代码之外(有关更多信息,请参见下面的第 8 项)

不要期望聪明的用户和优秀的开发人员会自己弄清楚这些东西; 他们需要您提供此信息,以节省时间并遵守您的项目的最佳实践和要求。 好的文档是认真的标志。 如果没有可用的文档,人们会寻找另一个项目。

5. 商业

许多专家说没有开源商业模式。 实际上没有人真正出售开源代码。 公司利用开源软件开展业务,并销售与其相关的一切(认证版本、打包、分发、服务、法律支持、技术支持、市场等)。

这使我们回到上面的第二点:教育。 管理、营销、销售甚至开发人员都必须了解什么是开源才能了解他们销售什么、他们开发什么以及公司真正做什么。

为他们创建内容至关重要:常见问题解答、文章、研讨会、博客文章以及任何可以帮助他们的内容。 这些文章可能会有所帮助

6. 喷子

喷子有很多不同的类型:有些活跃于社区中,有些则将您的软件用于他们的业务,还有一些只是在您的沟通渠道上进行嘲讽。 但是他们都有一个共同点:他们抱怨——您的项目很烂,您的公司不知道如何开展业务,您的开发团队不熟练,路线图很糟糕,社区成员是白痴——语气咄咄逼人并带有侮辱。 他们中的一些人拥有强大的专业知识,如果他们有积极的态度,可能会很有用……但是,像往常一样,“喷子总是会喷”。

管理喷子非常困难(几乎不可能),但是您可以学习如何很好地利用他们

  • 当他们在他们的抱怨中提供足够的信息或创建问题或拉取请求时,感谢他们并在可能的情况下给予他们赞扬(他们会同时喜欢和讨厌这一点)。
  • 用事实,并且只有事实(没有意见)来反驳您沟通渠道上的谎言。 但是不要花时间与他们战斗,因为您会助长他们,他们会对您获得更大的力量。
  • 永远,永远,永远不要咄咄逼人或侮辱; 无论他们做什么,都始终保持冷静和礼貌,即使他们侮辱您。 社区会对此表示赞赏,并且您会因成为好人而获得赞誉和尊重。
  • 邀请他们在现实生活中的活动和聚会上与您见面,承认他们的专业知识,并告诉他们他们的帮助永远受欢迎和赞赏。
  • 有时,别无选择,只能禁止他们。 如果喷子在特定情况下有支持者,这可能会给社区带来非常糟糕的势头。 但是当事情后来变得更好时,人们会很快忘记。

与喷子相关的圣杯是将其变成好人,他们会将他们的大量精力用于好事。 这很难,需要时间,但这是可能的。

7. 开发者

因为开发人员很难雇用并且薪水很高,所以有些人认为他们统治着世界。 不要告诉他们,但实际上他们受到编程语言、规范的作者和决定他们优先级的人的统治。 (谁说的“用户”?)

照顾好他们,花时间去了解他们; 他们是编写您项目代码的熟练人员,但他们也是人。 :-)

如果可能,创造机会让他们一年见面一两次。

好消息:最好的开发人员通常是友善、谦虚的人,并且喜欢用优雅的解决方案解决问题。 这是我可以提供的最好的线索,可以识别出他们同伴中最好的人。

8. 贡献者

很难让开源项目中的人们做真正想要或需要的事情:他们出于自己的兴趣和他们拥有的技能参与和贡献。

他们的兴趣可能包括:

  • 通过代码审查和指导,为项目贡献代码,从而提高他们的技能
  • 在简历上添加内容,以便找到工作
  • 修复和改进项目,使其更适合他们的特定用途(他们的客户、他们的雇主等)
  • 获得在项目生态系统中作为专家的知名度,并提高他们的平均日薪

如果您有具体需求,您可以尝试创建一个赏金计划——是的,这意味着提供一些资金或令人兴奋的奖励——以激励人们解决这些需求。

不要忘记,有很多不同的方式可以为开源项目做出贡献

  • 使用并宣传您的项目
  • 策划活动(例如,聚会、大会)
  • 设计(例如,模型、规格)
  • 写作(例如,文档、教程、视频教程、博客)
  • 管理维护(例如,整理问题和拉取请求、管理论坛)
  • 在论坛、聊天或其他沟通渠道上提供帮助
  • 最后,编码(是的,通常只有少数社区成员有足够的技能来提供良好的代码)

提示

  • 了解人们为什么会为您的项目做出贡献,将帮助您了解您的社区和用户。在活动和聚会上与他们面对面交流,在社交网络上与他们聊天,并直接询问他们为什么参与。
  • 使以不同方式做出贡献变得容易
  • 在您的博客上突出贡献者和社区领导者

9. 知识产权(IP)

人们对版权、许可、分发兼容性、品牌管理、专利和一般知识产权一无所知。 甚至大多数开发人员都不知道他们是作者,他们的雇主拥有他们所写内容的权利,或者他们需要关心许可证。 我认为这个主题应该在工程学校里更多地教授。

IP 与源代码管理相关,但也包括品牌管理(例如,名称和徽标)、项目依赖项和许可证兼容性、贡献者等等。

长话短说

  • 编写软件就像写一本书,有作者、编辑、发行、版权管理等,而您的项目许可证是项目作者/编辑与用户/贡献者之间的合同。
  • 公司将使用您的项目来解决他们或其客户的业务相关问题。
  • 自由职业者和小企业可能不太关注 IP,他们会测试您的软件,如果他们喜欢它,他们就会使用它。
  • 如果一家大型公司对您的软件项目感兴趣,他们首先会检查 IP 是否干净。 如果律师批准了,该公司将开始使用它,并最终雇用开发人员。 如果您足够幸运,他们甚至可能会贡献一些功能和改进。

请记住:知识产权对于开源项目非常重要,但却常常被低估。 通常,它由基金会或托管项目的公司管理。

10. 社区

像知识库一样组织您的沟通渠道和资源:它们必须易于编写、易于改进且易于查找。

您需要在社区中管理两种类型的信息

  • 关于项目和软件
  • 关于社区成员

第一个很明显。 通过维基(文档)、论坛、错误跟踪器和像 Git 这样的代码管理工具,您将收集大量(是的,大量)关于项目的信息。 这里的关键是考虑类别、审核、链接和一些 SEO。

第二个——关于社区成员和项目用户——被高度低估了。 您必须非常小心个人信息,但要为贡献者创建一种方式来展示他们是谁以及他们如何使用该软件。 一个好的开始是在论坛上启用带有有趣字段和关于您项目的信息的用户个人资料。 然后,尝试添加一些游戏化元素来识别社区中的领导者。 在某个时候,考虑使用客户关系管理 (CRM) 解决方案来跟踪您与人的互动——那些您在现实生活中遇到的人、主要贡献的作者等。

这样,您将增加对项目及其贡献者的了解。 这将帮助您创建一个更好的项目,并成为一个更好的社区经理或项目所有者。


如果您是开源项目经理、贡献者或用户,您有什么提示可以添加到此列表中? 请在评论中分享您的想法。

User profile image.
Hyland 的社区经理。 Une Jolie Musique 的创始人,这是一个非营利工作室,仅使用开源和基于开源的软件来录制音乐和制作视频。 我还教授和提供有关开源的建议,并编写教程。 多年来一直参与各种开源和自由软件项目和社区。

4 条评论

使用 Scribus,我经常将邮件列表中重复出现的问题作为动力来编写文档或维基文章(或两者兼而有之)。 一个挑战是始终保持“重新唤醒新手”的状态,以便充分解释事情。
我认为还有一项工作是监控和回应邮件列表上的语气和语言。 有时我会重新构建对一个合理问题的回复,我认为最初的回复比我认为必要的更具敌意。 有时你甚至必须在列表上公开说某人不应该如此粗鲁。

我喜欢“重新唤醒自己内心的菜鸟”这句话。 Greg,你有没有写过你是如何做到这一点的? 我很想读读。

回复 来自 Greg P

我最喜欢的 Bob Seeger 的 "Against the Wind" 中的一句台词是,“但愿我不知道现在我知道的,当时我不知道的事情”。 我认为你必须做的是尝试将你的思维方式与提出一些问题的新手保持一致。 不要对即使是非常基本的东西做出任何假设。 记住你做事情是多么笨拙,甚至做了,然后重做,再重做,直到你发现一些可用的帮助或捷径。 只要有可能,我都会尝试生成一个步骤列表来完成任务,新手在遇到困难需要更多信息时可以参考。

回复 来自 mbbroberg

有一个解决方案叫做 GrimoireLab,100% 免费的开源软件,用于分析项目:社区、活动和性能。

Creative Commons License本作品采用知识共享署名 - 相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.