社区的责任与挑战

2020-11-07 15:05:51 视野 102

这是一篇聊社区的责任与挑战的文章,尽管发表在「茶叨」公众号,主要讲的却是 .NET Core Community 的故事,是接下来两个月社区系列文章的总起——在接下来两个月中,我将在「茶叨」公众号中启用「茶有聊」专题,与大家聊一聊我认为的社区,并在「NCC 开源社区」公众号中发表多篇《NCC Story》,与大家分享社区从无到有、从有到大一路走来背后的故事。

2020 年是个魔幻年份,好多我们不曾料到的东西在这年里集中出现,对于 NCC 来说也是如此。作为这一系列文章的总起,让我们从头开始认识一下 NCC 吧。

NCC 全称 .NET Core Community,是一个以 .NET 为主要技术栈的开源技术社区,她是民间自发成立的非官方、不以盈利为目的的社区,她是由 5 位联合发起人发起、近百名 .NET 开发者共同成立的社区。

我们社区在 GitHub 的地址是:https://github.com/dotnetcore

NCC 在成长和发展过程中使用过一些名字,读者可以在即将发表的《NCC Story:名字》里了解这些名字背后的故事,我们为什么会叫这个名字、又是为什么要改变这些名字。

责任

NCC 社区成立至今将近 5 年,我们从当年的一无所有到现在,每一步都摸着石头过河。NCC 甚至可以说是一次巨大的尝试、一个巨大的试验场,我们每个人都在学习如何推进一个开源项目、发展一个开源社区,我们借鉴了许多 Apache 基金会的设计,结合我们的实际情况作出一系列改良。而这一切都被证明做的不坏,我们有了非中国人主导的开源项目,有了进入 .NET 基金会的成员项目,有了星数超过三千的热门项目,有了 NCC 630……

NCC 的责任在于为优秀的开源项目广大开发者提供一个沟通的平台,凭借成员项目进入 NCC 的准入门槛为大家在技术选型是节约时间——至少有人告诉我,他们在技术选型时,会优先考虑 NCC 的成员项目。

在过去的几年中,我们为成员项目争取到了喷气脑袋(JetBrains)的特供开源许可证赞助和 MyGet 开源社区赞助(以及其它)。在年初,我们为老农和 Lemon 的新书《.NET Core 底层入门》发起团购活动,我们星夜统计购书意向名单并收取费用、整理名单和快递信息等。有人说社区要以身作则,NCC 社区的我们选择隐在幕后,为成员项目及其 PPMC 团队提供一臂之力。

目前,NCC 社区正研究讨论增设一个全新的身份——「NCC 社区成员」,他们无需开源项目便能进入 NCC,他们的责任是让开发者与社区之间的联系变得更为紧密,他们将成为 NCC 成员项目之外的另一个重要组成部分,成为社区、为成员项目、为开发者们之间的全新纽带。

挑战一:NCC 社区的团结

社区的团结压倒一切。在任何时刻,NCC 社区对外有且只有一个声音,那就是经 NCC PMC 研究决定后发出的社区通报。NCC 成员项目团队恪守 NCC CoC,和而不同。在事关 NCC 社区前进的讨论中,大家能踊跃发表各自观点,却又能尊重不同意见,并在社区达成一致意见后与社区同进退。这种团结确保社区不会因离间而分崩离析,是社区稳定与继续发展的重要保障。

社区通报分两类:

  1. 经由 NCC PMC 团队研究并决定的事项,代表 NCC 的正式立场和观点;
  2. 普通的社区通报,一般为社区赞助、合作,以及成员项目的加入等事项。

随着新的成员项目加入 NCC,新项目的主导者是否能维系这一团结,是一种挑战。为此,我们将在初步审查中增加额外的审查项。

挑战二:NCC 社区属于谁?谁将最终获利?

NCC 不是一个人或是几个人的社区,NCC 不属于任何一个人,NCC 属于社区的每一个开发者。

曾有人恶意地说「NCC 的最终获利者只是那五个联合创始人」,说这种话的人显然是没有过脑的:

  • NCC 社区最核心的是成员项目,使用者是全体开发者。成员项目的发展,受益的难道不是全体开发者?
  • NCC 的五位联合发起人从未在任何场合自称「创始人」、「联合创始人」,甚至从不单独使用「发起人」三字。

社区不存在所谓的最终获益人,萌生这种想法的人内心是何其狭隘。

你永远无法阻止误导信息在阳光找不到的地方传播。对 NCC 的误解和中伤是永远不会消失的,这是一种挑战。

挑战三:NCC 社区的行为准则

一个社区的成长和发展得益于对社区的治理,社区的治理需要依靠社区的规章制度,行为准则便是其一。NCC CoC (组织成员行为准则)为我们 NCC 全体成员(包括各成员项目 PPMC 成员)提供了一系列行为准则:我们该做什么、我们不该做什么,我在此进行引述:

有助于创造积极环境的行为包括但不限于:

  • 措辞友好且包容
  • 尊重不同的观点和经验
  • 耐心接受有益批评
  • 关注对社区最有利的事情
  • 与社区其他成员友善相处

参与者不应采取的行为包括但不限于:

  • 发布与性有关的言论或图像、不受欢迎地献殷勤
  • 捣乱/煽动/造谣行为、侮辱/贬损的评论、人身及政治攻击
  • 公开或私下骚扰
  • 未经明确授权便发布他人的资料,如住址、电子邮箱等
  • 其他有理由认定为违反职业操守的不当行为

很幸运的是,CoC 得到了成员项目 PPMC 的支持和尊重。

对于新加入 NCC 的成员项目,他们是否能恪守这份 CoC,是一种挑战。

挑战四:NCC 社区的推广与宣传

社区的推广与宣传一直是一个挑战,这对任何类型的社区都是一样的。所以我们首先要明白,不同类型的社区,它的宣传和推广的手段和方法也是不同的,甚至很难找到可一语概之的口诀心法。

对于以单一项目为核心的开源社区,或许可以获得某个热门技术方向的红利而迅速壮大,收获大量人气。只要不出现技术或社区运营上的重大失误,便能迅速进入良性循环。

而对于像 NCC 这样的以一系列开源项目为核心的开源社区来说,在推广与宣传就显得中规中矩多了。NCC 每一个成员项目都有自己的开源社区,那么 NCC 社区便成了这些成员项目「社区的社区」,因此 NCC 的推广与宣传几乎是一场闭卷考试,我们只能一点点借鉴别人的做法,一点点尝试,以成员项目的自我宣传与推广为主,以 NCC 的宣传与推广为辅。这就引除了第五个挑战:成员项目的自治。

挑战五:NCC 社区与成员项目的自治

NCC 社区与成员项目之间的关系,并不像 Apache 基金会那样紧密,也不像 .NET 基金会那样松散。

NCC 建议 NCC 成员项目在宣传的时候冠以 NCC 前缀,这一设计源自 FlubuCore 加入 NCC 时我与 Marko Zorec 的一段对话,当时我对 Marko 说:

我们将项目迁入 NCC 组织,是为了让用户在使用 A 项目时,能发展同一组织的其他优秀项目。

基于相似的观点,我们认为,当成员项目在宣传时如能冠 NCC 之前缀,则可将此刻的这份荣耀分享给 NCC 社区、分享给 NCC 社区的其他成员项目。当然,这属于自愿的行为,是否在宣传时使用这一前缀,是成员项目及其 PPMC 的权利

同理,成员项目可以有自己的捐赠通道,NCC 社区并不会阻止这一行为,但根据社区规定,成员项目的这笔捐赠要公开透明,并接受社区项目管理委员会(NCC PMC)和社区财资小组(wg_funds)的监督。

可以说,NCC 成员项目具有极大的自治权和自主权。NCC PMC 以及受其授权的工作组仅在行为准则、公开透明等方面对成员项目进行监督。同时,得益于 PMC 的设计,这种监督工作又能得到切实的执行。

挑战六:NCC 社区与其他社区的关系

NCC 社区不是一个排他性的组织,她具有高度的包容性。当你的成员项目进入 NCC 社区时,她并不排斥你的项目同时进入其他社区(比如同时进入 .NET 基金会)。我们也与其他社区保持良好的关系,且不将其他社区视作「竞争对手」。相反,只有各个社区团结起来不内卷,才是一个良好生态应有的面目。我们将这一点视作一种挑战,是因为我们最近两个月的经历告诉我们,这种社区之间的和睦是极其宝贵和极容易被破坏的。

发布评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据