阅读(4242) (14)

让开源项目向成功方向迈进

2020-09-08 15:09:55 更新

现在的你,已经启动了属于自己的项目,而且正在传播它,更重要的是现在已经有人将之下载到本地进行观摩。这真是令人振奋!那么你现在要做的就是,怎么能够让这些有兴趣的人们坚持下去,持续跟进项目。

一个受欢迎的社区对于项目的未来至关重要,如果你的项目是刚刚开始收到他人的首次贡献,那么你需要给贡献者们一次愉悦的体验,以鼓励他们进一步的继续参与。

让大家感到受欢迎

可以通过被@MikeMcQuaid 称之为贡献者漏斗 的方法思考项目的社区。

contributor funnel

当建立了自己的开源社区,你需要考虑如何让那些处在漏斗上方的人(潜在用户)转移到漏斗下方(活跃的维护者)。目标是减少贡献者们在每个阶段所遇到的摩擦。当人们能够轻易的取得成绩时,他们就会乐意去做更多事。

从你的文档开始:

好的文档能够邀请他人参与你们项目的互动。最终,一些人会开一个 issue 或者 pull request。将这些互动视为机会,将他们转移到漏斗的下方。

  • 当一些人选择了你们的项目,请对他们表示感谢! 一次糟糕的体验就可能失去一个用户。
  • 及时回应。 如果你们一个月都没有回答他们的问题,他们可能早已忘记了你们的项目。
  • 对你以后接受的所有贡献者持开放态度。 很多贡献者是从一份 bug 报告或者小的修复开始的。这里有很多为项目做贡献的方式 。让大家选择他们喜欢的方式。
  • 如果你不赞成一个贡献, 首先你需要对他们的想法表示感谢,同时 解释为什么 它不适合项目,如果有必要的话你可以给出相关的文档链接。

avatar

为开源做贡献对一些人来说很简单,但对另外一些人可能就不是这样了。有很多人因为没有做正确的事而害怕叫喊,或者只是不适合。(。。。)通过允许贡献者参与一些对技术要求比较低的工作(文档,web content markdown,etc),可以极大的减少你对这些情况的关注。

@mikeal , “现代开源项目下如何增长贡献者”

多数开源贡献者是”临时贡献者”,因为他们只是偶尔参与项目贡献。一位临时贡献者可能没有充足的时间全程跟踪你的项目,所以你的工作是能让他们很轻松地参与贡献。

鼓励其他的贡献者也是对项目的一种投资。当你们授权大量的粉丝做他们感兴趣的工作时,压力就会少很多。

记录一切

avatar

你是否参加过一个(技术)活动,你不认识在场的人,但是似乎每个人站在一个小组里像老朋友一样聊天?(。。。)现在想象下你想为一个开源项目做贡献,但是你不知道为什么或者这个是如何发生的。

@janl , “让开源可持续发展”

当你开始一个新项目,你会觉得保持工作的私有性是正常的。但是开源项目开始于你在公共平台记录自己的工作进程。

当你把事情记录下来,会有更多的人能够按照预定的方式参与到每一个过程中。你可能会得到意想不到的帮助。

书写东西不仅仅只是技术文档。任何时刻,你们有写一些东西或者私自讨论项目的冲动,请询问自己是否能将之公开。

保持项目透明的项目路线:你们期待什么类型的贡献者,如何审查贡献,或者你们为什么做某些决定。

如果你注意到有多个用户遇到过同样的问题,那么你应该将答案记录在 README 中。

对于经常遇到的问题,你们可以考虑发布你们的笔记或者相关的 issue。在这种情况下得到的反馈常常会出乎意料。

记录一切也适用于你自身的工作。如果你正在进行大量的更新工作,请将其放入 pull request 并标记为正在进行(WIP)。这样,可以让其他人感觉参与过早期工作。

积极回应

一旦你推广项目 ,人们将会给你们反馈。他们可能会问项目是如何工作的,或者参与项目初期需要你的帮助。

当有人列出一条 issue,提交一个 pull request,或者询问项目的有关问题时,你们应该尽量回答他们。当你们快速地做出回应时,人们将感觉到他们参与了对话,以及他们将会更热情地参与。

如果你无法及时审查请求,请尽早确认,这样会有助于提高参与度。这里是@tdreyno Middleman 上所回应的一个pull request:

middleman pull request

一份Mozilla研究发现 如果贡献者在 48小时内收到代码审查,他们会有很大的回头率,且极有可能会再次贡献。

与项目有关的话题也可能发生在互联网的其它地方,例如 Stack Overflow,Twitter,或者 Reddit。你可以在像这样的一些网站设置通知,这样当有人提及项目时,可以即时的收到提醒。

为你们的社区提供一个聚会的场所

有两个理由可以解释为什么要给社区提供一个聚会的场所。

第一个理由是为了贡献者。线下聚会可以帮助人们相互认识。因为有着共同兴趣的人会想要一个可以聊天的地方。同时当信息是公开的而且是适宜的时候,任何人可以阅读过去的档案以至于能够快速的追赶以及参与。

第二个理由是为了社区本身。如果社区没有提供一个公共的场所来谈论项目,他们可能会直接与你联系。刚开始时,回复私有来信可能对你来说很轻松。但是经过一段时间后,尤其是如果项目变得流行的时候,就会感到疲于应付。不要私下和人们谈论你们的项目,而是直接指明他们去指定的公共渠道。

公共交流和指明人们开一条 issue 一样简单,而不是直接发送电子邮件或者在博客上发表评论。你也可以为了方便人们谈论项目设置一个邮件列表,或者创建一个 Twitter 账号,Slack,IRC 频道。或者尝试上述的所有方式。

Kubernetes kops 每隔一周抽出办公时间帮助社区成员:

Kops 每隔一周都会留出时间为社区提供帮助和指导。Kops 维护者已经同意留出时间专门与新手一起工作,帮助 PRs,以及讨论新特性。

公开交流需要特别注意的事项:

1)有关安全方面的 issues

2)敏感的行为准则。应该为大家提供一个私下报告这些 issue 的方式。若不想使用自己的个人邮箱,那么就创建一个公用的邮箱。