庄表伟:License之外,社区的规则与潜规则 | DEV. Together 2021 中国开发者生态峰会...

内容来源:2021 年 6 月 5 日,由 SegmentFault 思否主办的 2021 中国开发者生态峰会圆满落幕。会上,华为云产品专家、开源社理事长庄表伟发表了主题为《License之外,社区的规则与潜规则》的演讲。

分享嘉宾:庄表伟,华为云产品专家,开源社理事长

速记整理及发布:SegmentFault 思否编辑部

各位朋友,大家好!很高兴来到这次中国开发者生态峰会,与大家聊聊规则相关的话题。

咱们会场第一排有桌子、有水、有杯子,第二排后面就没有,这是一种规则。我上次去一个数字中国创新大会,在桌子的前面还有一排真皮沙发,一个位置是两个人那么宽,这也是一种规则。不同的社区,不同的场合,有不同的规则。我们今天就来聊聊关于规则的事情,当然除了规则,还有潜规则。

首先是前置说明,包括何为规则,何为潜规则,何为社区等等。这其实只是一个思考框架。这个ppt还会不断的生长,也许某一天会变成更长的一篇文章,或者是n篇文章,甚至会演变成合集等形式。

何为规则

首先是情、礼、法三部分。人情世故,基本的人情冷暖,人和人之间是什么样的关系,这些都是基本的伦理规则,这是第一部分。我对你讲礼,你也对我讲礼,礼尚往来,要有礼仪、懂礼节,这些是礼仪、礼节方面的规则,这是第二部分。最后才是法律,当我们说到规则,很多时候都会只停留在第三部分--法律,我们往往会把规则理解为法律,但其实规则不仅仅是那些成文的法律。我们有成文法,成文的规范,我们社区有License,有授权协议,有CLA等,这些都属于法的层面。

 

但是为什么会存在Code呢?简单来说,我们认为这个社会在不断发展,在原始的、几百人的小村庄时,大家互相之间不会讲礼或者法,只会讲基本的伦理道德,到了奴隶社会或封建社会就开始讲基本的礼节,再往后发展成道、德、仁、义、礼这样的一个过程。最开始的时候,人们都讲道,然后开始讲德,然后讲仁、讲义。普罗大众在丢失了仁义道德之后才会讲礼。等到不守礼之后,才会制定法律。因为社会变复杂了:你的礼和我的礼,你的道理和我的道理都不一样。这个时候就需要一种有强制力的,更具有一致性含义的成文法律来规范社会。但是法律其实是很落后的,因为所有的法律需要有专业人士来解读,需要有专业人士去执行,比如律师、法官、执法人员等等。所以会出现代码,比如说,一张门卡在门禁处刷一下,门就开了。这背后其实是一条规则,即有权限的人能进门,没有权限的人不能进门。但执行的人不是门卫,而是一个智能的,可以执行的代码。它背后其实也是规则,只不过它被更加迅速的,不会产生任何歧义的执行了。这是我们所理解的规则。

 

何为潜规则

 

潜规则的特征就是在制定规则之前的那部分。比如说,我们建立一个微信群,有一天有人发了一篇广告,我们就制定了第一条规则:发广告之前必须先发红包。等到有人每天都在发广告,我们又制定了一条规则:发广告之前必须先发大红包。这样的过程就是从潜规则变成了规则,但这种规则很难被执行,如果他跟群主关系特别熟或者给群主某些好处,他就可以在群里一直发,也不会被踢掉,因此还是存在潜规则。但是这些规则并不是每次都会生效的,要看管理者的意识,管理者背后的原因,但有些原因是不公开的。在大一点的社区,我们会观察社区里各种现象,我们会形成部分小圈子,在背后揣摩,为什么他被封了,为什么他被禁言了,为什么他的帖子被删掉了等等,我们会揣摩各种原因,比如他可能做了某些事情,或者他没做某些事情,这些东西就是潜规则。我们可以发现任何社区都会有潜规则,没有社区是没有潜规则的,完全公开透明的。

 

何为社区

 

首先,是一群志同道合的人聚集在一起,共同创造一些东西,比如说做一款开源软件,在做这款开源软件的过程中,我们不断地打磨、改进、提升、完善作品,形成的社区就会产生某种“近悦远来”的效果:越来越多的人会因为你的产品、开源项目,社区氛围而来。社区里的人也会沉浸其中。当人多了,随之而来的矛盾冲突也会多,所以我们会不断地去完善规则。这个时候又会回到志同道合的过程,因为在完善规则的过程中,我们会不断地思考,在社区里,哪些事情能做,哪些事情不能做,哪些事情是被鼓励的,哪些事情是不被鼓励的。如果这个社区有足够的群体意识,我们会自省:我们为什么会走到一起,为什么做社区,我们的志向、初心是什么?所以我们才会制定规则。因此这是一个循环。如果做的好就会有良性的发展,社区会聚集越来越多的人,而且有越来越完善的运作良好的规则,会创造更好的作品。这就是一个成功的开源社区会发生的事情。

 

普通伦理

 

我认为“己所不欲,勿施于人”是最简单的伦理。在任何社区,我们都会看到一些现象,即争论哪些事情能做,哪些事情不能做,这个时候我们就会回到这一条伦理:己所不欲,勿施于人。还有一条是君臣父子长幼有序,这是传统中国的伦理,但在开源社区或技术社区还是这样吗?未必。因为在技术社区,强调人人平等,但是又强调贡献。具体的背景我们待会展开来说。当然,仁义礼智信这些也是社会需要的伦理,在这里就不多赘述了。

 

黑客伦理

 

黑客伦理其实是绝大多数开源社区最信奉的基础伦理。有两本书,一本书叫《新教伦理与资本主义精神》,另外一本书叫《黑客伦理与互联网精神》,内容是关于黑客怎么做事情的。书里提到不迷信权威,促进分权,因为每个人在本质上都是平等的,我们去评价黑客的标准,应该是他们的行为,而不是他们的学位、年龄、种族、性别、职位等等虚假标准。这是黑客伦理当中非常重要的一点。

 

人人平等与精英治理

 

在开源社区存在一种现象:人人平等与精英治理。其背后潜在某种矛盾性。最初大家都是平等的,慢慢地,那些做了很多贡献的人拥有更高的地位、更多的话语权甚至最多的特权,他们犯了错误也不容易被追究。举个例子,有一个叫Linus的人在社区里骂人,甚至竖中指。虽然社区里会有人批评Linus,但是那些批评的人不重要。大家会觉得,他是大牛,大牛好厉害,大牛好酷。

 

在社区里面存在这种不公平。从某种意义上来说,我们需要抑制这种现象,但这种现象必然会出现,因为我们很自然地会去崇拜那些做得最多、最好、最快、最牛的人,我们必然会崇拜他们,而且我们必然会对他们更宽容。我们必然会在很多事情上对他们的评价偏高而不会偏低。相反地,社区来了新人,当他提交代码的时候,大家就会用一种警惕的眼光看着他,对他会比较苛刻。这种现象也是需要抑制的,如果一个社区能够对新人比较友好,那么这个社区就能更好的成长。但是一些自我认知特别强的社区,很容易对新人不友好或更加苛刻。

 

社会之礼与社区之礼

 

我们再来说礼的部分。左边是社会的礼,右边是社区的礼,今天我们把它分成礼仪、礼节和礼物。我们的社会存在各种各样的礼仪,比如说婚丧嫁娶,我们要办仪式或办酒又或是请客吃饭,这是社会礼仪。我们一群人通过今天这样的大会认识新朋友,大家一起聊天,这是我们的社区礼仪。

 

第二部分礼节。在社会里面,我们待人接物要有礼貌,第一次见面要以什么样的称谓、姿态称呼对方,这就是社会的礼节。在日本就更夸张,比如他们鞠躬的度数都会有规定,对不同地位的人,鞠躬的角度是不一样的,这是他们的礼节。而在我们社区里面,其实也有一些礼节,比如说,你第一次到社区去提问的时候,你要想清楚该如何去提问。而当你在社区里面跟人交流的时候,应该是一种什么样的姿态?“跪求答案”“求人救救我吧”“在线等,急!”等等这些都是非常糟糕的社区交流姿态。反过来,如果你以非常客观、平和的的方式去提问,反而会得到更多的尊重。这就是提问的艺术。至于礼物,无论是在社会,还是在社区都会强调。因为礼物这件事情,在开源社区是有传承的。有一本书叫做《大教堂与集市》里面提到社区的人为什么愿意把自己的代码贡献出来,为什么在把自己的代码贡献出来之后,会得到整个社区的普遍尊重,其实这就是一种礼物文化。不论是在传统社会还是现代社会甚至是原始社会,那些贡献礼物最多的人,拥有最高的社会地位。对应开源社区,那些写出最高水平、最优秀、最重要的开源项目、开源代码的人,他们向社会贡献了最重要的礼物,他们就会有最高的社会地位,这就是社区的礼。

 

社区中的成文法

 

社区中有很多成文法,比如说许可证、商标、隐私、Code of Conduct、GDPR、Code Style、信息安全、商业秘密知识产权等等。这些都是专业人士去研究的,因为我是非专业人士,所以我就跳过了。

 

社区中的自动化规则

 

接下来谈的是Code,有一本书我非常推荐,是一名法学家写的叫《Code 2.0》。在互联网刚刚诞生不久,他就研究在互联网当中的各种Code,他认为Code is Law,所有能够通过代码的方式自动执行的规则,未来会在社区里,在社会上,甚至在全世界占据越来越多的比例。

 

我曾经在一个叫JavaEye的社区呆过,它是最早在社区里实行某种积分与权限挂钩模式的。比如,最初进入社区时你的等级是一颗星,慢慢地,随着你写帖子的数量就会变成两颗星、三颗星、四颗星、五颗星,然后变成一个皇冠、两皇冠,逐渐到五皇冠。你的星和皇冠代表着你的积分的权重。例如有一篇帖子我们觉得很差,点击认为它是垃圾帖,当一个垃圾帖的获得投票的积分达到了20分,那么帖子就会直接被收到垃圾箱。每个人只能点一下,但是权重越高的人投票的分值也越高。不管是Stack Overflow还是思否,都有自己的积分体系,背后的逻辑,有自己不同的设计,我们认为他们都是被代码所自动化执行的规则。当然还有GitHub的自动化规则,比如说Action、Robot,还有一个近几年出来的叫做Issue & PR Template。再比如说Gerrit,它也是一种Code Review的工具,它代表的是,如果一段代码有超过两个人或者三个人认为这段代码很好,那么这段代码就能够被合并到主干。在我们公司其实也在用类似的积分规则。这个积分规则产生了很多种变体,比如说我们可以规定当超过五分或者三分时,某段代码才能够被合并。每个人手中的权重最多两分,甚至是一分,那么也就意味着,团队人数越多,那么就需要更高比例的人同意这段代码。这些规则是用来更加简便地调控社区的各种行为,有助于更公平、合理地管理社区。

 

社区中的潜规则

 

社区里有很多人设,在一个社区,别人是如何看待你,你为自己定的是什么样的人设,这很重要。有这样一种人叫做发帖机器,他们在微信群里通常先发帖,再发一个红包,请大家帮忙转发。这种人在社区里是食物链的最底端,他们或许是被迫干这种事情的,但所有人都不会尊重他们,也不会重视他们。他们就是这样的人设。有次我在微信跟某商学院的教授聊天,发现他也在干这种事情。他把自己写的一篇文章发到群里面。过了两天,他又重发了一遍,群主就提醒他说你发重了吧。他轻描淡写地说“哎呀,不好意思。”我就跟他说,你在社区里是有人设的,你的人设决定了别人会不会看你的文章。如果你的人设是发贴机器,哪怕你的文章写得再好,别人也不会看。这个潜规则是没有人会告诉你,你的人设是发帖机器,一旦你被人打上这种标签,你在社区里就会很难生存。很多刚刚开始做社区运营的朋友们,尤其是小朋友们,特别容易把自己最初的人设定位在那儿。我特别希望做社区的小朋友们,如果可以的话,做更高端一点的人设,别人也会更接受你。还有一些人特别喜欢在社区里找存在感,例如杠精。这种人一旦识别出来,应该第一时间踢掉,因为这种人他不增加整个社区讨论的质量,不提升整个社区讨论的层次,他们只会带来流量,而这种流量是有毒的。但如果是纯粹以KPI方式运营的社区,会对这种人又爱又恨,觉得他们至少也是社区活跃的一份子,也引发了社区的争论。但是这种人会毒害社区的。当提及大妈体质的时候,我首先想到的人是周琦(Python大妈),他在社区里张罗大大小小的事,这种人其实很了不起,他是社区存在的核心或者说是社区存在的原因。当我们开始做社区运营时,不做成杠精,不做成发帖机器,而立志成为社区的大妈,那么这个社区就会比较有希望。当我们在一个社区时,我们要想清楚自己的定位,想清楚我希望别人怎样看待我。比如我自己比较喜欢的人设,是别人觉得我的讲话都比较有道理。如果能够维持这样人设,那么别人在遇到一些事情时就会来问我:你对这个事情怎么看?因此你在这个社区里就是一个分享者,别人愿意接受你的意见、你的看法,那么你就会成为某种KOL。而这是值得追求的人设。

 

规则的宽容度在前面已经说过,因此这里不再赘述。

 

社区内部的沟通渠道,通常“繁荣”的微信群还会有某些鲜为人知的小群。这些小群就是小圈子,用于打小报告、私下探讨。前不久我在微信群里遇到一个“杠精”,群里很多人对他的风格、他的语言颇为不爽,轮流跟他吵。后来我私底下找到群主,暗示群主能够把他踢掉,后来他果然被踢掉了,于是整个群优回到了和谐、愉快的氛围里,这就是潜规则。还有一个潜规则很重要,如果你是社区的运营者,你要对社区有直觉。你要知道社区现在是什么氛围,是好还是坏,某条规则应不应该执行,如何去执行,去调整。这些都是要靠社区运营的直觉的。

 

结语:禅与社区运营艺术

 

一个社区运营最重要的特质是要有社区直觉。所以,我很想推荐一本书,叫做《禅与摩托车维修艺术》。这本书的作者在书里提到了一个词,翻译成“良质”,英文叫quality,即质量的意思。他反复地说:我不能定义什么叫良质。在我看完这本书以后,我也不定义什么叫良质,我们可以采用循环定义,什么叫良质?即能够被品味所感受到的。什么叫品味?即能够体会到良质的能力。比如说我是一名美食家,我觉得某道菜很好吃,即我是一个有品味的人,这道菜就有良质。那么,如果某个人不是美食家,他不知道这道菜好吃还是不好吃,他就是没有品味的人。做任何一行,都要不断磨练你的技艺。比如你是一个美食家,能够分辨菜好吃还是难吃,但是你并没有能力自己做一盘好菜,因为你技艺不行。所以首先你得有品味,要不断的磨练自己的技艺,最后不但能够知道什么是良质,也能够创造出良质。回到社区运营的情况和语境,你要沉浸在社区里,不断地感受社区是好还是坏,不断地去体会、去理解这个社区的规则是如何运行的,它的规则应该如何发生作用,你要不断磨练自己的技艺。最后,你有可能创造出一个越来越好的社区。

 

谢谢大家。

关注【开发者生态】公众号回复:zbw 下载演讲 PPT

点击【阅读原文】观看庄表伟演讲视频,重温精彩时刻

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GridView 简单扩展

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Text;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;namespaceFanfajin.MyWebControls{ /**//// <summary> /// 增强的 GridView 控件 扩展 /// &…

为了偷吃东西你能有多拼?! | 今日最佳

世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源网络&#xff0c;侵权删&#xff09;

Nacos真香,从零到一学起来

Nacos是阿里巴巴开源的微服务管理平台&#xff0c;可以帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。这篇文章主要来讲一下Nacos作为配置中心和注册中心的使用。1 安装 1.1 linux下安装首先搭建一套单机版的Nacos集群。Nacos的安装有两种方式&#xff0c;…

自律的程度,决定你人生的高度

全世界只有3.14 % 的人关注了青少年数学之旅对于不少用户来说&#xff0c;微信已经成为了获取新资讯的重要途径之一。如何保证自己找到「值得看」的内容&#xff1f;每天更新的文章这么多&#xff0c;哪些才值得你看呢&#xff1f;今天就为大家推荐一些颜值与才华并存的好评公众…

标准MD5 .Net,实现!的对与错!

关键之处在,从byte到字符串的处理下面是一个错误的实现! /**//// <summary> /// 返回32位md5十六进制加密 /// </summary> /// <param name"strValue">待加密的字符串</param> /// <returns></return…

[导入]Asp.net中动态在中加入Scrpit标签

许久以前&#xff0c;写过一篇《asp.net页中动态加入样式表文件》&#xff0c;后来发现在使用时如果每页都写这么个函数真是很麻烦&#xff0c;于是自己写了一个Page的派生。将这个函数加了进去。/**////<summary>///作者 邹健 ///日期 20070202 ///重载的Page类。…

android 多布局

做为最后的方法&#xff0c;也是最后一个才会考虑的方法&#xff0c;那就是为不同的尺寸界面单独写布局。不到万不得已不要用这个方法&#xff0c;相信不少人和我一样都被逼着用过这个方法吧。需要说明的是&#xff0c;横竖屏切换使用不同布局也是用这个方法解决的&#xff1b;…

万万想不到:吸烟的辐射量比原子弹爆炸点还厉害!

全世界只有3.14 %的人关注了青少年数学之旅近日&#xff0c;外国视频网站上一段关于世界上辐射最高地点的短片火了起来。片中&#xff0c;一位外国小哥亲身探秘了那些广为人知的辐射地点如切尔诺贝利、福岛核电站等&#xff0c;并且给出了究竟哪里的辐射最高的结论。什么是辐射…

视频专辑:Hibernate 视频

为什么80%的码农都做不了架构师&#xff1f;>>> 专辑&#xff1a;Hibernate 视频 简介:郭宏志 Hibernate从入门到深入,郭宏志气主讲 1 郭宏志 Hibernate 01 简介 2013-10-29 13:50 | 播放(11) | 评论(0) | 时长:1:17:58 2 郭宏志 Hibernate 02 配置 2013-10-29…

人体的血管连起来竟能绕地球两圈!?| 今日最佳

世界只有3.14 % 的人关注了青少年数学之旅你知道怎么回复吗&#xff1f;这五花肉真。。白啊来自唐代的敦煌文书。。。《放妻书》好像发现了点什么不可告人的秘密如果人体的血管首尾相连总长度约为96560.64千米大概可以绕地球2.5圈密集恐惧症表示已经qu世了&#xff08;图源网络…

云原生系统之弹性模式

大纲1.云原生系统的弹性模式resiliency pattern 1.1 服务故障的雪崩效应 1.2 回应之前云原生--弹性请求的疑问&#xff1f;2. 弹性模式&#xff1a;作用在下游请求消息上3. 短期中断的响应码4. Polly经典策略5. Golang 断路器模式德国哲学家尼采说过&#xff1a;那些杀…

js null加法的处理

首先看一段JS高级编程中&#xff0c;有关加法()操作符的解释&#xff1a;一个简单的测试&#xff1a;alert(3 null); // 3 alert(3 null); // 3null可见对于null的处理&#xff0c;并不是简单的取String。ecma262的定义如下&#xff1a;对第7、8步骤的理解&#xff1a;7. 如果…

符合WEB标准的div+css导航下拉菜单

<html xmlns"http://www.w3.org/1999/xhtml"lang"zh-CN"><head><meta http-equiv"Content-Type"content"text/html; charsetgb2312"/><title>52css.com - css菜单演示</title><style type"text…

深入DataGrid分页样式实例

DataGrid提供了分页功能&#xff0c;不过看上去功能有限&#xff0c;但是我们可以通过DataGrid的一些属性来获取状态以及增加首页、尾页功能按钮。这里没有使用DataGrid的自定义分页功能&#xff0c;如果在速度效率不是很讲究的情况下&#xff0c;由DataGrid自己管理分页还是不…

dotnet中的counter

打造一个完善的软件产品&#xff0c;准确完整实现业务是第一步&#xff0c;再有就是有优秀的性能&#xff0c;稳定的运行。为了能量化性能指标&#xff0c;需要利用工具&#xff0c;来收集这些数据&#xff0c;以便对产品作出代码级调整。先说一下.net中带一个全局工具&#xf…

与殿堂级大师隔空对话——一张纸是怎么限制了我们的想象力

▲ 点击查看七天假期&#xff0c;熊孩子在家捣乱的情况实在是太多啦&#xff0c;就一眨眼的功夫&#xff0c;满地的积木&#xff0c;到处都有&#xff0c;还有到处都是的纸张碎片&#xff0c;真真是十分的头疼&#xff01;在蚊子小时候&#xff0c;玩具远不如现在丰富&#x…

Redis学习手册(String数据类型)

2019独角兽企业重金招聘Python工程师标准>>> 一、概述&#xff1a; 字符串类型是Redis中最为基础的数据存储类型&#xff0c;它在Redis中是二进制安全的&#xff0c;这便意味着该类型可以接受任何格式的数据&#xff0c;如JPEG图像数据或Json对象描述信息等。…

DDD与批量操作

原文链接&#xff1a;https://enterprisecraftsmanship.com/posts/ddd-bulk-operations/将批量操作与领域驱动设计相结合是一个困难的问题。在这篇文章中&#xff0c;我们将看看为什么会这样&#xff0c;并讨论如何结合两个。本文也是对读者提问的回应。这个问题包含一个有趣的…

乔布斯死后的300亿遗产终于被败光了,没想到竟是干了这件事

全世界只有3.14 %的人关注了青少年数学之旅前段时间&#xff0c;果粉们翘首以待的科&#xff08;ping&#xff09;技&#xff08;guo&#xff09;界&#xff08;fa&#xff09;春&#xff08;bu&#xff09;晚&#xff08;hui&#xff09;又如期而至。每年一到新款 iPhone 发布…

博客群发(2)--实现登陆

模板方法 python也是一种面向对象的语言&#xff0c;所以在实现群发的时候&#xff0c;会登陆不同的网站&#xff0c;但是登陆的方法什么的不尽相同&#xff0c;所以这里想到的是模板方法。 模板方法模式&#xff1a; 应用特性&#xff1a;重复做相同逻辑的事情&#xff0c;但是…