我一直是 Mozilla 基金会的粉丝,不仅仅是因为 Firefox 网页浏览器。作为开源世界中一些伟大社区的催化剂,Mozilla 在构建社区方面堪称典范。事实证明,Mozilla 的开发者关系主管 Chris Blizzard 是我的老朋友。
事实上,这已经不是我第一次采访他了——我的第一次 Blizzard 采访经历 可以追溯到 2002 年,当时 Mozilla 1.0 发布,我和他都在 Red Hat 工作。
我花了一些时间和 Chris 讨论了他的经验,并更多地了解了 Mozilla 式的社区建设。
1. 十年前我第一次见到你时,你还是 Red Hat 的员工,日常工作是维护 redhat.com 网站的运行,即便如此,你仍然在业余时间为了乐趣而 hack Mozilla。现在你负责 Mozilla 的开发者关系,并且拥有其他一些令人惊叹的经历,包括参与 One Laptop Per Child 项目。
在我看来,你是一个很好的案例研究对象,通过出色的工作在开源精英管理中取得了成功。以你现在的了解,如果你从零开始作为社区贡献者,你会如何入门?
这有点像一个难题,因为我已经不再有那种视角了。我对这些社区的运作方式了解得太多了,无法以一个刚接触项目的新人的新鲜面孔来回答这个问题。但是,老实说,如果让我猜测,我会说找到你热衷的事情,然后开始着手去做。我自己的案例就很有启发意义。
运转良好的项目很容易接受那些出现并致力于解决他们甚至不知道自己需要的事情的人。我经常认为,在边缘地带做出你的标记——逐步深入,往往是我在参与的项目中所采取的路径。
当我开始参与 Mozilla 时,我首先是托管一个服务器来下载源代码。该服务器实际上是 我办公桌下的工作站,但在互联网上有一个“真实”的 IP 地址,并且具有出色的连接性,因为我在 ISP 的主要办公室工作——我相信是 10Mb/秒,这在 1998 年绝非小事。从那时起,我开始帮助将代码移植到 Linux,花费大量时间编写 项目的每周报告,帮助运行围绕 Mozilla 1.0 的一些发布,并且也是早期 Mozilla.org 员工的一部分。
我决定参与 Mozilla 是有意的,但我从边缘的简单事情开始——托管一个下载服务器。从那里我找到了我可以提供帮助的地方,并在他人的生活中发挥了作用。
如果你有兴趣帮助一个项目,这是你能做的最好的事情。扮演通才的角色,多听,在重要的地方推动变革,并尽可能发挥最大的作用。永远记住:这些项目是由人组成的,而不是代码,你如何对待他人是最重要的事情。
2. Firefox 可以说是从主流消费者角度来看最成功的开源项目。这意味着,它不仅拥有活跃的 开发者 社区,而且还吸引了来自各行各业的广泛 用户 社区。当其他开源项目(如 Linux 桌面)苦苦挣扎时,为什么 Firefox 能够成功地接触到主流受众?
这里有很多因素在起作用,特别是与今天的 Linux 桌面相比。我也可以将其与市场上更广泛的浏览器或我们竞争的其他平台进行比较,但这不是我要做的。与 Linux 桌面相比,我可以将其分解为几个具体的事情
1) 构建面向大众的产品的明确意图。
我们不是在构建平台或一组库。我们不是在为一组开发者创建一些东西,然后由其他组织将其捆绑并交付到某个细分市场。相反,我们完成了整个产品,可以为人们创造出色的体验。从代码到用户体验选择再到隐私功能。从这个意义上讲,我们可能是我们这个小星球上垂直整合程度最高的开源项目。
我更倾向于将我们视为“开源产品”而不是“开源项目”,因为我们做了许多项目不做的事情。我们关心整个产品体验以及我们如何在整个项目中推动变革。从我们在代码级别做出选择的方式到我们将包含哪些功能,再到它如何与我们运行的营销活动互动——所有这些都高度进化和整合。
我还想指出,我们非常注重技术,但我们也确保我们在其他领域拥有世界上最优秀的人才——营销、法律、业务开发、质量保证、构建等。一个完整的产品不仅仅是一段软件,它是一种完整的体验,触及某人与之互动的所有方面。这些事情很重要。
2) 一个让我们能够面向大众,但仍然为软件开发者构建产品的平台。
重要的是要记住,Firefox 构建所基于的模型 (Gecko) 不仅仅是一个 Web 渲染引擎。它更像是一个高度模块化的 Web 浏览器平台,具有惊人的可扩展性。这可能看起来像是一个技术细节,但这实际上对我们来说是一个巨大的优势,使我们能够快速行动,不仅成为大量人群的优秀浏览器,而且还成为整个行业 Web 浏览器创新的平台。
你可以像 hack Web 一样 hack 浏览器的界面,这意味着任何人都可以更改浏览器的界面。没有人拥有这种架构——Safari 没有,Google Chrome 没有,当然 Internet Explorer 也没有(Chrome 有一个“扩展系统”,但它与你在 Firefox 中找到的强大功能和灵活性甚至没有丝毫关系)。
这意味着边缘的人们能够进行实验和更改,然后与他人分享这些更改。这也意味着我们可以看到人们正在做的所有很酷的事情,并将人们所做的伟大更改带给我们 3.5 亿强大的用户群,当某些东西真正变得出色时。这是一种在我们的项目中一遍又一遍重复的模式。
这也意味着我们可以避免软件开发的经典陷阱之一——基本上不可能摆脱一个功能。我们的软件实际上可以随着时间的推移变得更简单、更小,因为我们可以将那些没有意义的东西转移到扩展中,并将这些用户发送到这些扩展。这也意味着我们可以为比其他任何人都大的用户群提供服务,因为大多数人至少想要一件几乎没人想要的东西。他们可以通过我们平台的强大功能做到这一点。
大多数程序员不会选择我们的架构,因为它在纸面上看起来不太好。但事实证明,它成为了我们创新引擎的重要组成部分。“查看源代码”是力量,直接分配到边缘。
3) 出色的领导模式和可持续发展模式。
我简要地谈到了这一点,但我们拥有出色的领导力。这不仅仅是 CEO 很棒的那种领导力(尽管 我们喜欢我们的 CEO!),而且我们的分布式模块系统意味着边缘的人们有权拥有并自行做出决策。 我们沟通速度很快(电话和视频会议,而不仅仅是邮件列表!),因此即使在分布式决策制定到位的情况下,我们也设法在许多问题上达成共识。
另一方面是,除了与我们的用户群直接联系以及代表他们做出决策的能力之外,我们还围绕我们的产品建立了一种商业模式,使我们能够支付人们的全职工作费用。这意味着我们能够快速行动,作为一个团队运作,并且不必太担心某人是否会被转移到工作中的其他项目。我们的工作方式绝非随意。我们是有意且具有竞争力的。
可持续性让我们能够做到这一点,我认为大多数项目都会因为担心金钱会玷污围绕构建自由软件的过程而避开金钱。西翼有一句台词是这样的:“金钱是动机,带有通用适配器。” 我就是这样看待它的——它让我们比没有它更快地完成我们需要完成的事情。鉴于我们处理产品的方式,正如我在下面解释的那样,我们非常有信心我们仍然为不仅仅是我们自己实现了积极的结果。
4) 了解我们想要创造的改变,并通过组织和产品推动这种改变。
我们非常清楚我们所做的事情。我们不仅仅谈论开源软件。对我们来说,我们交付的开源代码只是一种策略。它是一个更庞大的组织的表征,该组织以透明的方式运作,并接受和鼓励他人的工作,以实现比自身能够实现的更大的目标。
对我们来说,这是为了保持互联网的活力和生机。并确保与我们称之为 Web 的事物互动的人们仍然像人一样受到对待。他们可能是正在搜索某些私密和个人信息的人,可能是想在网上与朋友交谈的人,可能是正在联系久违的朋友的人……这才是重要的,而不是技术。
我们在市场中的作用是代表他们采取行动,并通过强大的积极产品改进来改善他们的生活,有时也通过站出来说某些事情是错误的。我们的市场份额(维基百科所有流量的 30% 来自 Firefox!)在这个领域给了我们很大的影响力,可以在市场上做出选择,或者推动其他浏览器供应商也让 Web 变得更好。这是一个良性循环。
5. 我们关心 Windows、Mac、Linux 和移动设备。
最后一个让我们与众不同的重要因素是我们拥有一组我们关心的首要平台,尤其是 Windows。大多数开源项目倾向于忽略 Windows,主要是因为它很脏或其他原因。但事实证明,那里仍然是人们所在的地方。正如我所说,我们去人们去的地方,所以我们积极支持 Windows。超过 90% 的用户群都在 Windows 上,7% 在 Mac 上,2% 在 Linux 上。
如果你想让你的软件成为主流并推动变革,你必须在 Windows 上,毋庸置疑。
我们现在也正在进入移动领域,以便将我们的使命带给这些平台。我们早在 N900 上就做了一个浏览器(获得了好评),这是一款相对小众的手机。但我们很快就会推出 Android 版本,市场上很多人都拥有 Android 手机。期待我们在移动市场做我们在桌面上所做的事情——彻底改变体验。当前的移动浏览器套件很贫乏,并且非常适合我们擅长推动进入桌面浏览器市场的创新类型。
3. Mozilla 拥有崇高的使命,此处 对此进行了精美的阐述,即“鼓励在线选择、创新和机会”。你认为这个使命在吸引开发者参与 Mozilla 项目方面发挥了什么作用?大多数开发者对此一无所知,只是想从事酷炫的技术工作吗?还是说这个使命对他们来说有意义?
我认为这取决于人。有些人对酷炫的技术感兴趣,这是事实。我们的核心源代码有数千名个人代码贡献者,我们还有数千名开发者在制作附加组件和扩展程序。这些人中有些人是为了使命而来,但有些人只是为了令人兴奋的 hack 而来。
但我也认为,阐明我们是谁以及我们关心什么,不仅仅是列出我们想要的开发者的类型——它还阐明了我们想要在世界上创造什么样的改变,以及我们愿意使用什么样的策略来实现目标。这一层基本规则很重要,因为它设定了社区将如何互动以及什么是可以接受的。设定期望很重要,因为它奠定了你想要构建的社区类型的基础。
举个例子:你是想“构建普通人可以使用的惊人事物”,还是想“杀死微软”?事实证明,这两种说法最终会建立非常不同的社区。 我们的肯定属于前者,而不是后者。
4. 当一家公司试图建立一个活跃的、积极参与的贡献者社区时,他们可能做的最愚蠢的事情是什么?
未能公开动机和策略。特别是如果你是一家商业公司(我们不是传统意义上的商业公司),那么公开你希望如何参与以及这对贡献者意味着什么非常重要。借用一位朋友的话,我没那么蠢到会撒谎。我认为其他人也不会,所以不要尝试。
5. 那么最聪明的事情是什么?
当然是相反的做法!保持透明,犯错时道歉,谈论你的决策过程,并确保你正在为成功的合作关系勾勒出清晰的蓝图。我在这里借用 John Lilly 的一句话,我经常重复这句话:惊喜是参与的对立面。当我在与人打交道时,我会在自己的思考和行动中使用它。这是思考社区建设的一种重要方式,因为社区建立在沟通、共同活动和共同目标之上。
非常感谢你抽出时间,Chris!
--
Chris Blizzard 有 他自己的维基百科条目,除了他的头衔外,它看起来基本准确,所以我将其复制如下
Christopher Blizzard 是一位 开源 布道者,在 Mozilla 公司工作,并且是 开源 项目的长期贡献者,尤其是在 Mozilla、Red Hat 和 One Laptop Per Child 项目中。
在他担任开源布道者职位之前,他是 Red Hat 的 One Laptop Per Child 项目的软件团队负责人,并且是 Mozilla 公司董事会成员。在加入 One Laptop Per Child 项目之前,他是一名 系统工程师 和在 Red Hat 工作的开源软件开发者。
它没有说(我将补充)Chris 是一个非常深思熟虑、发人深省且非常有趣的人。并且音乐品味很好。
2 条评论