《人月神话》是让我印象很深的一本书。初看书名,你以为它要讲玄学,其实是在讨论科学。

作者是 IBM 的资深程序员兼管理者,曾获图灵奖。在那个蓝色巨人名头很响的年代,大公司的经验之谈很吸引人。而且站在当下去看他的很多预测,也挺有趣的。

恰好最近在读另一本书,又一次给了我非常相似的感觉。书名叫《Working in Public: The Making and Maintenance of Open Source Software》,姑且译为《在公共区域工作:论开源软件的制作和维护》。

这个标题一出,相信 99% 的人已经被劝退了。为什么要对开源软件和程序员感兴趣?难道这本书想教我们如何写程序、做开发?

当然不是。

这本书表面上在讲开源社区的历史进程,但作者野心其实还挺大。她认为,开发者才是真正的创造者,她想搞清楚:

1)为什么互联网诞生几十年,在线社区生生死死、兴衰循环、却又源源不断?

2)对创造者们而言,他们和平台、社区之间的关系究竟在怎样演变?

3)好的社区为何衰落、新的社区又将如何重生?

作者着墨最多的是 Github 这个典型的开源社区,但核心逻辑同样适用于 Twitter、Facebook、Twitch、YouTube 和 Instagram 等平台。

社区为谁存在?

在线社区的存在前提是,人们愿意协作。

开源软件的诞生便是如此。回顾 20 世纪 90 年代时期开源软件的第一个全盛时期,你会发现,一群关系紧密的书呆子居然能在一个无比松散的组织里良好协作,虽有争吵,但大家的努力方向相同。

那个时代留下了很多宝贵遗产,比如 Linux。这款操作系统向世人证明,志趣相投的志愿者团队也可以做出世界一流的产品,商业公司并非唯一的解决方案。

由此人们诞生了一个激进想法:组织松散的志愿者社区,是不是可以容纳更多人才,从而比管理严格的正规团队做出更多贡献?

这和大家的传统理解相悖。因为软件开发不是体力活,如果一个项目容纳了过多工程师,反而容易拉低人效、人浮于事,导致延迟交付。

原因很简单:如果要在核心团队之外增添人手,边际成本(维护非核心工程师正常协作、处理团队的复杂性)往往要比边际收益(非核心工程师能提供的有用输出)还高。 

但 20 世纪 90 年代开源社区的良好运作却打破了传统观念。这些志愿者只是通过论坛和电子邮件进行协调、自发组织,却最终成就了数百位富有成效的贡献者彼此共存。

这样的事实倒逼大家接受一个结论:如果社区志愿者都是真正的自我激励者,那这样的社区不受边际效应递减的影响,这样的人越多越好。

这个教训一直指导着后人。所以此后的开源社区都会赞同:随着需求的增长,开源软件的“核心维护者”需要寻找更多“贡献者”,一个人维护太难了也太累了,应该让更多的人加入。

不幸的是,这对接下来的开源社区而言,又成了毒药。

让更多的人加入,必然会吸引来低质量的帮助,这反而给“核心维护者”增添负担。因为社区本就缺乏 SOP 来指导“贡献者”,想让所有“贡献者”真正发挥作用,其实很难。

这就是为什么,从 20 世纪 90 年代到今天,大多数开源项目有 95% 的工作都是由某个个体完成的。“贡献者”倒也不是没有,只是他们实际上更像用户或消费者:偶尔提供建议或指出细微问题,但与“核心维护者”相比,他们只是观众。

或者更准确地说,这些想要加入的“贡献者”只是“粉丝”。他们对某个项目很感兴趣,并且自认为自己希望成为一份子。

而对“核心维护者”而言,这样的情况一开始是好的。创建开源代码的重点是共享它,谁会不希望粉丝喜欢它?

但是维护粉丝的“喜欢”很昂贵。他们想要互动,这将消磨“核心维护者”的时间和精力。于是,多数开源项目成了“公地悲剧”,只是被透支的并非公众利益,而是“核心维护者”自己。

比社区更先进的组织出现了

上述情况是一个历史的循环。你可能会好奇,为什么 20 世纪 90 年代社区的发展如此理想?既然当时的贡献者可以共存,怎么今天就不行了?

原因可能出在,比社区更先进的组织出现了,它叫平台。

互联网年代早期,进入开源社区本就不太容易,只是联网并能熟练操作计算机这一条,就足已把大多数人拒之门外。这意味着,一开始能够加入其中的,都是真正关心它的人。那时的开源社区就像一个联邦,每个人都有自己的文化、风俗和价值观。

在这样的环境中,吸引更多的“贡献者”确实有利于推动开源项目的发展。那时没有多少“游客”,由于社区成员缓慢加入并且徘徊其中,信任得以建立。而因为每个社区都有不同的工作方式,彼此之间存在“流动上的摩擦”,因此想在项目之间切换也十分不易。

更重要的是,那时候社区团体的内在动机是一致的:他们并不寻求报酬,能做出贡献就行。

互联网世界接下来发生了什么?构成早期互联网主题的各种论坛和新闻组(newsgroups)繁荣了一段时间后,一个入侵物种出现了:平台。

从结果来看,平台使得互联网上的一切内容得以更加轻松地创建、共享、分发和发现,于是人们纷纷加入,形成了一个规模远超从前的新组织。

这反映在开源社区中的一个主要结果就是 GitHub 的诞生。在它之前,开源社区中的活跃分子彼此有不同的社交习惯、工作方式、甚至是种种怪癖。一旦加入其中,每个人都会留下烙印。

但 GitHub 改变了这一切。它以平台的方式提供了一套简单、便捷的代码托管和版本控制工具。如果说以前的开源社区像一群村庄,那么 GitHub 就像一条连接所有村庄的高速公路。刚看到它的开发者们都很喜欢,于是 GitHub 迅速定义了新的标准。

很快拥有一套固定标准和工具的坏处开始显现:在效率主义的驱使下,所有人收到了相对固定的要求、开始了相对标准化的工作。

而因为在加入或离开项目时没有摩擦,受欢迎的项目顷刻间人满为患。基于我们上文的分析,你就会明白,这带来的后果是,核心维护者先是得到巨大刺激,随后开始精疲力尽,最后变得不堪重负。

这种成功被很多后来反思这段经历的人称为“反作用”。因为你越成功,得到 GitHub 的“惩罚”就越大。

另一方面,Github 带给所有“创造者”的好处则是——赋予他们权力。“创造者”不能再将协作者视为同行,而需要将他们视为粉丝,给他们想要的东西,同时保护自己不断创造的能力。

从这一点上看,此后所有主流社交媒体都 GitHub 和别无二样。

创造者与平台的相互作用

互联网世界的稀缺物品是软件,或者说隐藏其后的代码。用户认可它的稀缺,因此生产者才能借由售卖软件获利。

但事实上,软件(代码)只是稀缺性的一部分,比代码更有价值的是制造者和维护者的承诺。

当制造者把软件推向市场并真的获得足够关注,那么接下来,要维护这种关注,将成为重要课题。

创造产品,吸引注意力,然后管理注意力,尤其是第三步,这是对所有创造者的考验。

最难的事情是创造,更难的则是持续创造。天才如埃隆·马斯克和碧昂斯,也并非完全是因为自己的天赋和某个作品脱颖而出。他们之所以依然被大家关注,是因为能保持年复一年的创造和输出。

这正是以平台为核心的创作者驱动模型和社区的最大不同。

在旧世界(社区)中,你可以通过给予他人信任、彼此成为同伴来最大程度地提高社区参与度和留存率;但平台不行,它已经使创造、发现和分发变得太过容易,这样的代价则是:太多的人蜂拥而至,太多的关注退去如潮。

写到这里,我想起一个理论。说是互联网社区永远存在两种人,一种是负鼠,属于小圈层,只喜欢特定文化;另一种是水獭,兼容并包,可以容纳大多数文化。

所以每个社区都会经历一个 cycle(周期):

一阶段,基于共同兴趣和个性形成一个小圈子社区,里面的人基本都是负鼠;

二阶段,这些负鼠在一起鼓捣出的社区文化,显然既成功又有趣;

三阶段,社区开始吸引水獭。水獭看到这个新社区,眼前一亮,很高兴找到这种有趣的亚文化;

四阶段,水獭的数量迅速攀升,比负鼠增长得更快(因为水獭数量更多)

五阶段,负鼠意识到社区不再是过去的样子,开始努力进行调和(一些替罪羊负鼠会被同时淘汰)

六阶段,水獭彼此喜欢,一旦负鼠想要踢出个别水獭,会引发所有水獭的不满

七阶段,不幸的负鼠出走,组成一个新的小圈子

。。。

以上阶段不断重复

说回这本书,它让我觉得有价值的点在于,作者相信,开源社区的历史和演变轨迹反映了线上世界的变化趋势。从 1990 年代末到现在,开源社区启发了人们对“开放网络”的偏执和追逐,而平台的出现又重构了我们对于在线社区的理解。

相信未来还有更有趣的社区等待开发。

本文参考文章:

making-is-show-business-now——Alex Danco

22-working-in-public——Nadia