DuckDuckGo 是一个以用户隐私至上而闻名的搜索引擎。因此,当我们去年的年度搜索量超过 30 亿次时,我们知道继续在不牺牲用户隐私的情况下为用户服务至关重要。我们意识到,关键在于开源。
首先,我们创建了一个 API。然后我们启动了即时解答,任何人都可以加入我们,共同改进搜索结果。即时解答显示在自然搜索结果的上方,现在我们有来自世界各地的数百人为此做出贡献。自从我们大约四年前的第一个社区提交以来,我们学到了很多关于是什么使开源社区蓬勃发展的宝贵经验。他们贡献了数百个数据源和数千个拉取请求,在撰写本文时,这些贡献构成了大约 800 个即时解答,能够回答数百万次的搜索。
我们当然还有很长的路要走,但我们已经了解到,构建一个成功的开源社区——就像任何活跃的社区一样——归根结底是为个人提供价值。了解如何洞察他们的动机,找到将这些动机与您的目标对齐的方法,并努力消除他们前进道路上的障碍。
社区始终以人为本。DuckDuckGo 在帮助他们方面投入越多,我们收到的回报就越多。
顺其自然
社区一直是 DuckDuckGo 使命的一部分,甚至从早期 Gabriel(我们的创始人)在他地下室开发 DuckDuckGo 时就开始了,他在 Hacker News 和 IRC 上寻求帮助和反馈。人们建议将他们认为应该排名第一(或靠前)的网站用于某些主题。为了利用这些宝贵的见解,我们决定创建一种方式,让用户构建自己的搜索结果。因此,我们推出了 DuckDuckHack,其理念是任何人都可以通过使用他们最喜欢的网站和数据源来改进搜索结果。
2012 年在费城总部举行的首届 DuckDuckGo Quack & Hack 活动
诚然,最初的即时解答更像是彩蛋。然而,不久之后,人们开始使用搜索引擎来使有用的数据来源更容易访问。随着时间的推移,尽管 API 模糊不清,但由于贡献,我们的搜索结果逐渐变得更好。
我们学会了如何从自然发生的事情中获得灵感。人们在哪里自然而然地主动贡献?人们自然而然地想做出什么样的贡献?
经验教训 #1:在用户已经做出贡献的地方加倍投入。
对您的社区有价值
随着贡献开始涌入,我们意识到人们做出贡献的原因有很多:
- 创建他们个人想要的功能
- 提高他们正在从事的另一个项目的知名度
- 积累专业经验和资历
- 与世界各地的聪明人一起工作
- 成为组织整体使命的一部分
当我们就 API 做出决策时,我们在重要的决策过程中牢记这些动机,确保它们仍然具有相关性。
这些动机影响了:
- 我们在贡献和想法方面的灵活性
- 我们接受的数据源类型以及我们如何署名
- 我们为社区设置的沟通工具和流程
我们希望确保我们不会无意中做出会削弱动机的改变——并尽我们所能来激发这些动机。
经验教训 #2:观察人们为什么做出贡献,并在您的社区发展壮大时放大这些动机。
开源也应该对您的公司有所帮助
早期,我们只有三个人管理着一个每天有数百万次查询的搜索引擎。这让我们非常忙碌,随着社区的壮大,我们发现很难跟上拉取请求、问题和高质量文档的步伐。毕竟,开源社区需要所有权、领导力和积极的管理。
我们的使命曾经是,现在仍然是,与数十亿美元的搜索巨头竞争,但我们想用自己的方式、自己的方法和实践来实现这一目标。与此同时,我们意识到最令人愉悦的即时解答不会来自公司内部。人类的知识远远超出最好的爬虫可能弄清楚的范围。
那时我们有了顿悟:社区是搜索引擎成功的关键!因此,我们将贡献者的需求放在公司优先事项的首位,并看到贡献因此增加。
经验教训 #3:开源社区需要关注和投入。确保您的社区是真正的优先事项,并与您公司的目标保持一致。
为您的社区创建一个家
起初,我们的协作渠道遍布各处。我们有一个 Uservoice 创意板、一个 Zoho 论坛、一个单独的文档站点、GitHub 用于代码... 我们需要尽可能简化社区的存在,并为每个任务创建清晰的路径。为了方便社区成员,应该有一个信息和协作的中心场所。它应该帮助人们决定在哪里参与、如何贡献以及如何沟通。
经验教训 #4:集中您的协作渠道、文档和导航。
印度科钦的聚会小组参加了 2016 年第二届全球 Quack & Hack 活动
使其易于上手
这听起来可能很荒谬,但我们最初的开发环境需要两个小时才能设置完成。它需要本地安装一个自定义工具,以及所有依赖项。然后,我们切换到带有即用型环境的云 IDE,现在只需 5 分钟或更短的时间。结果呢?每月独特的贡献者数量增加了一倍以上。
参与开源最令人望而却步的部分是快速入门。尽一切可能降低入门门槛。
经验教训 #5:尽可能简化新手的后勤工作,以便他们进行首次提交。
使其易于获得成就感
开源贡献者的最佳来源是开源新手。许多开发人员正在寻找第一次参与的机会——一个他们觉得自己可以发挥影响力的机会。
我们最初遇到的一个问题是,完成第一个即时解答很困难。除了学习新技术之外,还有很多事情需要考虑,包括想法、数据源和设计。我们在开源项目中做出的最佳投资之一是使其易于在我们的实时搜索引擎中添加个人“Hello World”彩蛋。这使得人们可以轻松地开始编码并专注于学习系统。当我们这样做时,我们收到了潮水般涌来的新手拉取请求!事实证明,仅仅一个小时后就能看到代码实时运行是一种令人难以置信的动力。
另一个早期问题是,如果没有员工运行带有他们新代码的开发服务器,贡献者就无法预览自己的工作。您可以想象,这使得开发变得非常无趣。为了解决这个问题,我们构建了一个命令行工具,允许任何人启动一个模拟 DuckDuckGo 搜索引擎的本地服务器,从而使贡献者能够立即直观地预览他们的工作。这大大提高了开发即时解答的速度,并使其更加有趣。
经验教训 #6:投入时间来创造即时满足感。尽可能让贡献者轻松完成一个简单的循环。
留住人们
最后一步是帮助贡献者保持参与。
我们了解到,当人们感到其他人也参与其中时,他们就会保持参与。当我们快速响应拉取请求时,我们发现贡献者会与我们的努力相匹配。当我们积极参与论坛时,人们往往会更多地使用论坛并更多地与我们互动。
如果贡献无法直接纳入,请尝试通过将其工作应用到存储库中的其他位置来尽可能多地从每个贡献中获取价值。无论如何,请务必积极地强化和认可每一项努力和贡献。
经验教训 #7:与社区的每一次互动都应该让人们想要留下来。
展望未来
尽管吸取了这些教训,但我们当然不声称拥有所有答案。我们一直在尝试新想法,通常基于贡献者的反馈,并观察社区的反应。甚至编写这篇文章也是一个反思和思考改进与前进新方法的机会,并希望能帮助您的社区也蓬勃发展。
顺便提一下,我们刚刚宣布了今年 FOSS 捐赠的 recipients,其中包括我们钦佩的各种开源项目。它们都符合我们提高在线信任标准的宗旨,我们鼓励您支持他们的活动。
5 条评论