我目前正积极参与 Enarx,这是一个开源项目(当然!),旨在支持在不受信任的主机上运行敏感工作负载。 多年来,我参与了各种开源项目,但这是我作为创始人之一的第一个项目。 我们现在正处于拥有大量代码、相当多的文档、一个徽标(以及重要的!)贴纸的阶段。 该项目有望被纳入 Linux 基金会小组——机密计算联盟——所以一切都进展得非常顺利。
我想反思一下我们为启动项目所做的一些事情可能会很有用。 需要明确的是,Enarx 是一种特殊的项目,我们相信它具有商业和企业应用。 它尚未成熟,我们一路上还会遇到障碍和挑战。 而且,我们所采取的路线并不适合所有项目,但希望这里有足够的信息可以为其他项目或考虑启动项目的人提供一些指导。
我想说的第一件事是,有很多帮助可以获得。 我建议从 Opensource.com 开始,在那里你会发现很多指导。 我接下来要说的是,无论你遵循多少,你仍然会犯错。 也就是说,这是我在启动开源项目时要考虑的事项清单。
1. 争取形成临界质量
我很幸运能在令人惊叹的 Red Hat 工作,我们所做的一切都是开源的,并且我们非常重视开源和社区。 我听说它被称为一家“临界质量”公司——为了使某事受到重视,你需要让足够多的人对此感兴趣,以至于很难忽视它。 Enarx 的两位联合创始人——Nathaniel McCallum 和我都对该项目充满热情,并且花费了大量时间在该组织内争取赞助商(你们知道是谁,我们感谢你们——我们也知道我们在所有情况下都没有做好工作!)并且向工程师“推销”它,以使他们足够感兴趣,以至于很难停止。
有些项目只是与一两个贡献者一起进行,但是如果你想吸引人们的注意,那么必须将一批优秀的人聚集在一起,他们可以推动前进。
2. 创建一个演示
如果你想让人们参与进来,演示是一个不错的选择。 它不一定需要很完美,但它确实需要表明你所做的事情是可能的,并且你知道你在做什么。 对于早期的演示,你可能在谈论命令行输出; 如果你提供的东西不是用户界面 (UI) 产品,那也没关系。 能够谈论你正在做的事情并传达你的热情和项目的重要性是一大优势。 人们喜欢能够看到或体验某些东西,如果他们拥有可以表达这种热情的真实事物,那么传达你的热情会容易得多。
3. 选择一个许可证
一旦你有代码并且它是开源的,你希望其他人能够做出贡献。 这一步似乎并不重要,但是选择一个合适的开源许可证1 将允许其他人在明确定义的条款上做出贡献,从而使他们更容易参与进来——并且使他们工作的组织允许他们这样做。
4. 获取文档
你可能认为开发人员文档是最重要的——否则,其他人如何参与编码? 我不同意,至少一开始是这样。 对于一个小项目,你可能只需解释代码的作用、它应该做什么以及缺少什么,就可以扩展到更多人。 但是,如果没有可用的文档来解释它的用途以及它将如何帮助人们,那么为什么有人会费心去查看它呢?
这不需要是精美的营销文案,也不需要很严肃,但它确实需要向人们传达他们应该关心的原因。 它还将帮助你完成我提到的第一点,即获得临界质量,因为能够指向文档、用例和其他内容将有助于说服人们你已经仔细考虑过项目的重点。 我们使用 GitHub Wiki 作为我们的主要文档中心,并且我们尝试使用新信息对其进行更新,因为我们生成了新信息。 需要明确的是,这是一个我们可以做得更好的领域。 但至少我们知道这一点。
5. 保持可见
除非你可见,否则人们不会发现你。 我们非常幸运,机密计算联盟在我们即将达到临界质量的水平时成立,并且我们立即拥有一个平台来增加我们的曝光率。 我们有一个 Twitter 帐户,我在 我的博客 上发表文章,并且在 Opensource.com 上,我们很幸运有机会在 Red Hat 的 now + Next 博客上发表文章,我接受了媒体采访,并且我们尽可能地在任何时间、任何地点发表演讲。
我们很幸运能够拥有这些机会,并且很明显,并非所有这些方法都适用于所有项目,但请尽可能利用:人们对你的了解越多,可以做出贡献的人就越多。
6. 热情欢迎
让我们假设人们已经发现了你:接下来是什么? 好吧,他们希望能够参与进来。 如果他们感觉不受欢迎,那么他们所参与的任何活动都会迅速减少。 是的,你需要文档(并且,过一段时间,需要技术文档,无论我上面说了什么),但是你也需要贡献者与你交谈的方式,并让他们感到他们受到重视。 我们有 Gitter 频道,我们的每日站会向任何想加入的人开放。 最近,有人在我们的 问题数据库上提出了一个问题,并且在该线程上的对话过程中,结果证明我们的每日站会时间对他们来说不合适(考虑到他们的时区),所以我们将确保每周至少一次确实合适,并且我们向他们保证,我们将迁就他们。
7. 与你喜欢的人一起工作
我真的非常喜欢与 Enarx 项目团队的成员会面和合作。 我们相处得很好,我们开玩笑,我们欢笑,并且我们有一个共同的目标:让 Enarx 获得成功。 我坚信尽可能做你喜欢的事情。 尤其是在项目的早期阶段,你需要充满热情并喜欢紧密合作的人——即使他们在地理位置上相隔数千公里。2 如果他们相处不好,那么你和他们对项目的热情很可能会动摇,动力会消失,并且项目最终会失败。 你不一定总是有机会选择与你一起工作的人,但是如果可以的话,请选择你喜欢并且相处融洽的人。
结论:人
在开始撰写本文时我并没有意识到,但这实际上与项目机制无关:它与人有关。 如果你回头阅读,你会发现人的重要性在每个技巧中都可见,甚至在有关选择许可证的技巧中也是如此。 开源项目实际上与代码无关:它们与人、他们如何分享、他们如何合作以及他们如何互动有关。
我确信你对开源项目的体验会有所不同,如果每个人都同意你为了项目成功而应该做的七件事,我会感到非常惊讶。 可以说,Enarx 尚未获得成功,而且我不应该在我们成熟的这个阶段提供建议。 但是,当我想起所有我认为已经成功的开源项目时,人是一个重要的因素,而且我认为这并不令人惊讶。
本文最初发表在 Alice, Eve, and Bob – a security blog 上,并经许可重新发布。
评论已关闭。