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 捐赠的接受者,其中包括我们钦佩的各种开源项目。它们都符合我们提高在线信任标准的宗旨,我们鼓励您支持他们的活动。
5 条评论