原创 开源社编辑部 开源社KAIYUANSHE
老师介绍
JiangNing:Apache软件基金会成员、Apache北京社区主要发起人、Apache软件基金会孵化器导师、ALC Beijing Podcast主理人。
CynthiaXin(辛庆):开源社重要推手、开源社理事、微软react运营专家、《陪你看开源》栏目发起者。
五花肉Tree:从事开发者运营八年,先后就职于思否、阿里云、蚂蚁集团,在OceanBase从事开发者社区设计与建设一年,现就职于蚂蚁集团开源办公室,负责集团的开源运营。
Richard:曾就职台湾开源办公室,研究开源商业模式、法律授权、开源治理、社区运营。现就职于华为,负责华为云的AI开发者生态。
Richard:技术之间的互动和交流需要一个社区,即有信息交流功能的平台去承载它。比如早期的MSDN、CSDN、博客、论坛和网站等,大家可以互相发信息或是进行分享。渐渐地,会形成一些开发者群体,沟通过程也从单纯的分享信息到互相通过开源的方式来构建各种软件。在这背后的开发者社区运营部分也成为了社区生态的重要推手。
Q1
开发者社区运营与传统用户运营之间有什么不同?
A
Richard:我先做一个引言。运营大致可以分为B2C和B2B。B2C运营是大规模群体式的运营,B2B是垂直行业运营。你们觉得开发者运营更接近B2C还是B2B,还是介于两者之间呢?
Richard:可以看出开发者运营最初是淳朴的,与B2C和B2B起初的样子相似。但还存在一定区别,比如B2C需要大量的人,B2B需要的人则很少,而且可能是仅针对公司里某个岗位的决策者,但开发者未必是决策者,所以开发者运营可能是游走于B2C和B2B之间。
CynthiaXin:因为我是从Python社区这种比较纯正的社区里成长起来的,所以我理解的开发者社区是大部分开发者没有决策权,只有一小部分有。因此,开发者运营可能更适合像Python或者其它相对更大、更基础一些的项目。
此外,我们会发现有的开发者,一开始只是一个简单的用户或者小白,但三到五年后,如果这个社区还是持续健康地成长,那么他们的角色也将可能转变,他们可能会从一个初级开发者变成senior、专家或者是变成leader、manager、cto,他们开始有决策的能力。
这些人跟着社区一起成长,他们在做方案的时候,最终仍然会选择他们熟悉的领域。所以我在思考开发者运营是否分为两种?一种是长期运营,一种是短期效果。
五花肉Tree:我想先说两者相同的地方。对于我来说,这两者都是面向“人”的事情。所以我认为它们的底层逻辑是相通的,B2C与B2B的区别可能在于其面向的对象。
而我理解的运营是,我用某种方式来引导我的目标受众,完成我期望的某些行为。我想了一下传统用户运营,如果我把它想象成电商的用户,其实它的有效行为比较有限,比如购买。但在开发者社区里,有效的行为很多。比如在Python社区里学习,有人才梯队的划分,也有接受程度划分,所以在Python社区既可以向他人求助,也可以帮助他人。
Richard:我发现有一些社区,似乎看不太出来其定位是“用户社区”还是“贡献者社区”。开发者社区到底应该如何选择定位,需要取决于这个社区要达到什么目标,如何进行价值闭环。如果面向贡献者,那如何牵引开发者投入贡献?这些都有必要做一些精细化运营。无论如何,社区面向的人群是个体,但也能通过社区的核心价值,将这些人群粘合成一个复合的有机体。
我们经常听到用 “ Free to join, free to leave ” 这句话来描述一个社区。它是说明社区的成员都是自由进出的。在此情况下,社区还能持续茁壮成长,就代表这个社区本身运营得不错,能够让参与的人觉得,我离开它是我的损失,加入它是我的荣幸,或者我自认是组织的一份子。
作为社区运营来说,关键点在于一个社区背后的利害关系人 (Stakeholders) 是怎样看待社区价值、怎样决策投资和评估产出的。有的人投入可能是因为对他有商业利益,有的人投入可能因为他是某个技术的拥护者。正如我们无法完全复制一家公司的成功路径,同理,没有一个社区运营成功的方程式。
社区背后的主要协调者或操盘者最重要的是把社区所有不同角色的诉求都能通过社区的各模块进行粘合,使大家都能通过社区的参与、贡献和投资来满足各方的诉求,而不是另起炉灶或是投入其他社区。社区生态价值链能闭环,社区运营才能成功。
Q2
大家如何看待开源以及商业产品的开发者运营?
A
Richard:我认为开源与商业不是一个维度上的事情,但是依旧有很多人会问,开源如何运营?商业产品如何运营?还有问Api类的服务或者是云计算类的服务是如何运营的?正好我们群里有接触不同属性产品的人,有开源属性、云服务属性的等等,大家可以针对如何运营互相探讨一下。
但在开源社区不一样,如果两人之间供需匹配,那么协作自然就产生了。虽然我们没有做金钱上的交易,但是我们做了知识上的交易,这种交易是平等的,我们互相尊重,这种关系比甲方和乙方的关系更好一些,虽然我们没有做实际的经济上的事情,但是我们在共同为社区创造一些东西,当创造的东西积累到一定程度时,就会被商业公司拿走,去进一步做盈利,所以我会把开源或者非商业化的协同关系作为最开始的基础,这种协作没有物质利益,所以更能玩开一些。
反过来说,在商业层面上与开源做一个结合与B2D有密切的关系。做B2D的时候,可能在销售的时候支持成本比较高,如果能变成社群会比较好,而且在里面能做一些创新协同。我在过去的工作中发现,用户在社区里面与我们交互的时候可能只是在试用,大概需要一年到一年半的时间用户才可能下单,因为从开发到生产有时间差,所以我觉得开源这种和开发者交流的方式可以有效弥补这段时间差的成本,像云厂商在开发上有成本,如何把成本降下来去支撑后续销售的这个问题,我觉得这也是大厂关注开发者社群背后的原因之一。
Q3
开源以及商业产品的开发者社区运营相同与不同,大家是怎么看的?
A
五花肉Tree:我有三段相关的经历,第一段是做纯商业产品,我关注的是客户花了钱,我能帮客户解决什么问题。所以我比较在意有哪些客户是我所在行业的标杆,我又可以去影响多少客户来为这个方案买单。此后,我该如何提升客户的使用体验感,去关注开发者工作,但我更关注的是客户能不能用好这个产品。
第二段是做开源开发者社区,项目如何变成主流?它所有的方案设计,包含技术先进性,能不能吸引到领域内最好的人?集众人之力把这个项目做好,保证项目里的每个人都能在社区里找到归属感,在一个优秀的社区里获得成长。
第三段是做有商业产品的开发者社区,比如蚂蚁金融云产品的开源项目,是一个商业获取转化例子的上游,可以在里面去筛选更高阶的商业需求。是否有商业例子可以交付到市场部,让它去承接下面的客户转化?很多有情怀的开源人都比较抵触商业化,但我觉得好的东西是值得付费的,而且这些商业产品一般是卖给TOB的。开源项目里的终端用户使用的一些场景或产品的功能可以反哺到商业的产品中去,开源的企业用户用出来的产品可以通过这个场景去把它做到商业case里,或许有拓展新行业的可能。
我觉得这是开源运营可以给到有商业产品的团队的一些线索,无论是商业的例子还是跟产品功能的相关建议,不可否认的是,这就是开源商业的一个手段,也正因如此,才会有那么多的资源投入到开源。
CynthiaXin:比如我们在做Python社区的时候,可能大部分人刚开始进来的时候都会觉得Python是免费的,所以当时有一个很大的分歧,如果一旦有人用Python去做了培训课,就会引起整个社区的反对,这并不利于对整个Python的推广。
后来也是因为各方面的原因,大家也开始逐渐接受了9块9的培训课或更高质量的培训课。
我认为开发者起初可能注重非盈利,而在接触Python之后,慢慢去接受一些高级的Python技术,认为这值得付费获取。很多时候服务它也是需要付费的,可能并没有纯粹的一个免费的东西,这可能是在社区里面需要经历的一个成长过程。我们现在在做的两个社区会是两种不同的类型。
Richard:留言区里面看到了一位叫Kate吕的用户。他说开发者能在开发者社区中有精神物质上的收获、在代码中玩耍以及获取帮助并健康地运营下去,久而久之这个社区持续迭代完善就可以发展强大。
我觉得这几句话写的特别得到位,他提及了有精神以及物质上的收获,这很重要。我们需要去回答这些问题来支持客户,客户要的是迅速解决工作中问题,无论买是通过社区还是打电话解决。其实现在很多的开源社区,甚至转变成到微信群或者是Slack上面去找到各种类似问题的解决办法。
如果有很良好的一个社区来支撑,甚至可以省去在客服团队上的一大笔开销。不过这样做的前期的投资很大,需要在建立并完善许多内容后才能做到。很多时候精神上的收获更为重要,与金钱等物质上的收获没有关联。
所以,这些人更关注的其实是捍卫我代码的自由、分享的自由,亦或是通过玩代码来获得精神上的愉悦,我觉得这是一个社区十分重要的元素。另外所说的玩耍以及获取帮助,那健康运营方面,我觉得两条腿走可能相对是比较好的。但也要看产品的性质,比如Python可能就不一样,开源以及商业产品的开发者社区运营其实不论是开源的开发者社区或者某些商业产品的开发者社区,它们都是开发者社区。所以说我们还是要去定义,就是这些开发者来到底是为了什么?
对我来说,一个社区运营一定要是帮助到里面的人,要么让他觉得在精神面有所收获,比如交到朋友、学到东西、获得成长。另外一个可能是马上解决我的问题,让我赶快把这一个应用构建,然后把这个项目给做出来,让我去赚钱也好,交付也好才能显得很有用。从这个角度来看,开源也可以既有用有趣,商业产品也是。
另外一种我觉得开源比商业产品还多了一层。
比如,以“云”的开发者社区或者说开源项目的开发者社区,最重要的一点是它本质上是卖服务,卖云服务,卖资源或者卖API。所以,服务即一切。那么服务也分免费和付费,肯定存在一些比较少量的试用是免费的,但是一旦用到量,比如谷歌。你作为一个开发者做安卓,然后卖到全世界,你肯定要给谷歌交钱,苹果也是一样。这种开发者社区其实就是一种卖服务的开发者社区,所以它的贡献是什么?开发贡献的是第一,我使用你,很多人使用你,最终形成市场的一个趋势。第二,我用你用多了,然后给你付费。要么有很多人用但不一定付费用,无论是market share还是revenue,对组织来说它都是有用的。服务型的社区背后还是有商业公司或偏商业的公司去支撑。
Q4
我们需要什么样的开源运营?
A
五花肉Tree:我和Richard的想法不谋而合,就是想做开源运营的共同体。首先是如何处理公司KPI。运营如何提高话语权,与公司一起制定KPI,这会避免很多的向上管理或解释成本。大家有共鸣,可能一半时间在做事,一半时间在证明自己做的转化有用。去年我们与Richard一起集结了很多运营去讨论如何定一个合理的KPI,并把它推成主流共识。
我也是从那个阶段过来的,很多运营没有这个话语权。公司招你,肯定就要交付自己的价值,但做的时候不能放弃的自己的坚守,不要让工作内容改变了你的初心,这个很重要,不然就只是工具人了。
需要为开发者坚守的是什么?需要为社区坚守的是什么?是伤害他们,把他们只做成流量,还是尊重他们?
我一直认为运营的个人口碑很重要。怎么评价一个开发者?社区怎么看开发者?每天频繁接触的开发者怎么看你?我觉得有能力去与公司讨论如何制定一个合理的KPI是最好的。如果实在不能或者当前不能,就告诉自己不能放弃什么,然后坚定地站在开发者这边。
Richard:从我个人立场来看,不管在哪个公司或企业里要做好自己的工作。
首先要先认知什么叫好,也就是什么叫成功的开发者。社区运营也一样,至少要先确认你的领导或组织对这件事的定位上是否是在大方向上是你认可的,当然不可能有100%的认可,除非自己开公司,在别人的公司一定是会有妥协,所以不能有洁癖。我曾经也待过不合适的部门,后来我离开了,简单来说就是在方向上我们自己要有所判断,这个对于一些小白来说可能不好去辨别。我觉得可以通过观察,去看一些前辈或海外运作比较良好的地方,慢慢体悟和学习,坊间也有一些开发者、开源运营相关的书籍等,可以找来看。
如果你做的是开发者,还是要找更贴近的,我自己的经验就是在公司里面工作一定要高质量交付自己的价值,如果无法做到这一点的,即使社区玩得再厉害,人缘再好,也不是一个professional的表现。有时会遇到冲突,比如今年需要十万开发者来你该怎么办?
如果你觉得十万开发者这件事不一定有意义,那么就要 work smart,而不只是 work hard,要想办法理解为什么组织要求是十万开发者,它背后的意义是什么?如果你真的达到十万开发者了,组织就认你吗?在某些组织下,包含但不限于华为,可能就算你完成一些工作指标,也未必会觉得你做得很好。很多公司的销售也会压指标,我们只是要得到开发的数量,不是说要去赚这个十亿,除了洞悉如何达到指标之外,还要明白领导真正想要的是什么。在这方面我也悟了好几年,我曾经也被领导批评,但真正学会了这些之后,只要不忘初心,能力就更强了,我觉得这不是一件坏事。另外一点就是社区本身。我举个例子,社区都有它的意志,因为社区是由一群人组成的,这些人有各派不同的声音,但声音一定有分成,主流派或非主流派,面对这样主流派的社区,我所运作的这个社区与公司的目标之间需要慢慢调和,而非一刀切。有时人家可能认可我这个人,但不一定认可我背后的政策。公司的政策很可能转变,比如说微软,我们作为一个中间人,应该要让两边都愿意走你的桥梁,开发者和公司都相信我。有时我们会很痛苦,但这些事情本来就需要高度的技巧,需要长期累积经验和人品。
出品:开源社编辑部
作者:高旖阳 景子怡 和灿阳
审稿:袁睿斌 聂子涵
编辑:胡欣元
责编:沈于蓝
设计:王梦玉
相关阅读 | Related Reading
我所理解的开源软件供应链安全
我们需要什么样的开源教育?
共探人工智能新发展,AICON 2022即将重磅开启
开源社简介
开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、开源项目” 为使命的开源社区联合体。开源社积极与支持开源的社区、企业以及政府相关单位紧密合作,以 “立足中国、贡献全球” 为愿景,旨在共创健康可持续发展的开源生态,推动中国开源社区成为全球开源体系的积极参与及贡献者。
2017 年,开源社转型为完全由个人成员组成,参照 ASF 等国际顶级开源基金会的治理模式运作。近七年来,链接了数万名开源人,集聚了上千名社区成员及志愿者、海内外数百位讲师,合作了近百家赞助、媒体、社区伙伴。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。