“开源是一个自我实现的预言”,Shifu创始人陈永立说道

中国开源年会COScon2022 北京线下分会场中,Shifu 开源项目不仅是北京分会场的组织者,Shifu 的创始人 陈永立 也受邀在圆桌论坛环节与另几位在开源领域深耕多年的嘉宾大咖聊聊他们对于开源的看法。

对话嘉宾

陈永立,Shifu项目创始人

张家驹,红帽首席架构师

金发华,EMQ联合创始人

苏丹,TiDB 社区首席架构师

郭悦,亚马逊云科技开发者市场总经理

主持人:杨东杰,CSDN开发者生态运营

Q1:在开源团队中是什么样的工作体验 ?

陈永立: 有好有坏,但利肯定是远远大于弊的。第一点体验好的地方,还是我之前所说的信仰为主。实际在开源社区我们都在为自己的信仰工作,所以也不觉得苦累。至于第二点,由于开源社区里的人都非常熟悉了,也非常友好,非常就事论事,所以能够根据技术来进行很深度的交流,而不会像商业中掺杂着各种KPI。当然也有体验不好的地方,比如有的社区管理比较松散,挂一个贴过一年都没人理你,这样可能会打击一些想进入开源圈的朋友的信心。所以我也要呼吁一下大家,开源既然做了,就要把治理做的更深度,做的更好一些。

苏丹: 我认为非常重要的一点,你和你的用户是平等的关系。通过一些商业团队和甲乙方的关系作对比,你会发现社区简直堪比天堂。个人最大的感受是做社区推产品的时候并不是把产品硬塞给你的客户, 套用现在商业上比较流行的一个词就是“用户成功”。因为我和我的用户是平等的,所以我会给他真真正正能够帮助他的建议:如果这个产品确实能帮到他我会推荐,不适合他我同样也会告诉他,用这种方式去和用户建立一种平等和信任的关系。

金发华: 我认为开源和商业闭源软件差别较大的点在于软件的交付方式上还有很大的区别。在商业产品交付的时候涉及到的整个链路是通过销售和客户去沟通授权然后去做方案,到最后成单收货记录,整个链条是比较长的。假如在交付过程当中出了一些问题,比如客户那边发生一个bug,需要一条一条链路报到上边来,我们再重现他发生的问题。写过代码的都知道,解决问题可能并不是特别难,难的是重现问题,会花费特别多时间。而开源相比较的好处在于,专业的开源用户在使用过程中遇到了问题,他会直接去看代码提pr,这样可以让软件的交付以及迭代周期变得非常快,同时软件质量也会提升得特别快。 而我们在做开源软件的时候,确实是因为热爱,所以不会计较credit,不会特别在乎这个东西应该是怎么怎么样的,而能够去帮你想办法解决这个问题。当然在开源社区里,也会有一些不是很成熟的用户,他们用这个软件的时候会提出一些很无语的要求,我们会礼貌地让他去论坛里提,但也告诉他并非必须得帮他解决这样的问题的。因为作为一个商业机构,做开源商业化软件肯定会有一些生存压力。所以有好的一面也有不好的一面。

张家驹: 开源更多的是让最终的个体开发者有机会去按照自己的意愿表达自己的声音。在人生中有太多身不由己,但是开源是唯一一片净土,在这里你可以按照你自己的想法去做,并且放出来看看有没有人喜欢,尽管它可能也很傻。 这是一个优胜劣汰的过程,我有我的想法你有你的想法,大家都放出来,如果你的想法确实很好,就自然会有更多的人去支持你,拥护你的项目,给你提补。 对于用户来说,我们现在对开源可能有一种误区,刚才金老师也提到一些不合理的期待, 用户当时会觉得反正有现成的东西何乐而不为,但是任何东西里面都可能是有问题的,用户要知道这里面的风险,在享受自由的同时也要承担这样的风险。也不要把开源的开发者想太坏,认为开发者会在代码里给你埋坑。 另外我觉得要给开发者以充分的自由。比如今天开发者对开源很高信仰,想一直做下去,但过个五年十年他不再开源了,这同样是他的自由。就跟人结婚离婚一样,今天我特别爱你,到未来离婚的时候,之前的爱也不能说是假的。当然开源变闭源肯定会影响项目,你可以再另起炉灶,但给别人充分的自由,这个世界是多样性。
目前开源在整个的开发者的团队里还是小众的,有信仰的人还是比较少的。更多的人不是没有信仰,而是在面对日常生活压力时把信仰磨没了。 从我个人来讲,在开源的公司里工作显然经济收益不如其他的选择。所以对于开源这件事,无论是从开发者还是使用者的角度去看,不强求每个人都这样做,但尽可能给别人多一些的宽容。希望更多的人能参与进来,哪怕只是在工作之余有一些想法。 最后一点,对于开源的治理不需要太多自顶向下的制度,而要留给开发者自由。如果开发者进圈里玩什么,先做什么后做什么已经定好规矩了,某种程度上也限制了其他人的创新。之所以开源加速创新就是因为可以随便去想去做,由开发者群体,由市场去检验最终的结果。

Q2:对开源项目有哪些误解?

陈永立: 对于我来说,遇到最多的是“我拿来就用,就万事大吉了”的这种想法。实际上开源软件包括社区,我认为它是self-fulfilling prophecy,也就是自我实现的预言。你越信,你越会给它贡献,然后它也会变得越好,直至越来越接近成真,这样才能真正的转起来。而不是别人开源了我就一直伸手,还期待着肯定能万事大吉。所以我希望大家在用开源软件的时候,也反过来给它进行反哺,哪怕只是把你的问题反馈出来都是有价值的,要是能贡献代码就更有价值了。我也是这么要求自己,如果要用开源软件,遇到的问题都会尽量反馈,如果能改就尽量给他改了。

金发华: 我做开源软件经常会被问到一个问题,开源软件怎么活?这是一个很现实的问题。首先大家对开源软件有误解,把它等同为免费的。如果自己技术能力足够强,在某种程度上可以这么理解。 至于怎么去做开源软件的商业化从而实现变现,目前有很多方法。最多的一种就是基于开源软件做一些周边商业化的功能。比方说一些比较大且重要的客户有管理、审计、安全等等各方面的需求,但一般开源软件本身会关注在比较核心的功能上。另外一种是SaaS模式,把软件放到公有云,这样更多针对的是一些中小客户,客户可以根据自己的情况来选择到底用哪种方式。一些技术能力比较强的特别是较大的互联网公司,实际上并不会只是单纯的付费方,他们可能会更多的来参与你的开源社区,对项目做一些贡献。反而是一些传统企业和中小企业,会选择开源商业化和SaaS的服务。

苏丹: 我要分享一个在社区里的亲身经历,因为TiDB从1.0到现在6.0其实迭代了很多个版本,每个版本或多或少都有一些bug。数据库作为基础设施,大家格外关注的是它的稳定性,但也会出现这样那样的问题,使得用户体验感不好。 这时候我们社区个人本身也会感到很着急,同时会面临着一种双重压力,一个是来自用户,有的用户能理解,有的会埋怨,还有对于产品的担忧等等方面,在社区的接触管理时遇到一些用户埋怨的时候,真的非常心痛。你不能够说人家的不对,因为这确实造成了一些麻烦,所以尽量用理解的方式去解决问题,用最大的真诚去解决到这个问题。当然也正是因为有这些敢于发声的用户,才能够让产品不断地往前走。 这件事虽然让人很心痛,但是从另一个角度来讲,他们也在推进着我们去严格对自己的要求,然后把代码的质量提高了,功能完善了,给了我们一个拥有更高稳定性所以能够向世界看齐一个机会。

Q3:开源项目的国际化与本地化?

陈永立: 我想从另外一个角度来谈谈这个问题。先来定义一下什么叫国际化,国际化在我看来无非就是有人用,有人贡献,有人付钱,这些东西就是国际化。当然要加一个限定条件,就是在某个地区,现在国际化就不只是在国内了。所以我觉得都是一样的,你要做国际化,先要让有人开始用,这肯定得贴近人家的习惯。比如在硅谷就有很多community做很多meetup。这就是我们需要做的很重要的点,先要了解当地用户的喜好,他们平常喜欢用什么样的方式进行沟通协作,再有针对性的去做。

金发华: 我对这个问题的观点可能比较鲜明,我觉得开源软件必须得全球化国际化,而且要在这条路上闯出来必须在这个领域里面做到第一。 因为现在大家获取信息太容易了,随便一个项目就是同类型的,到网上一搜索马上能知道哪个好,哪个排在第一,哪个排在第二。如果功能差不多,我为什么会去选第二个?肯定会选择第一个。所以开源软件不存在我关起门来搞,只在中国搞开源软件肯定不行,放上去了那就全球都能看得到的,关起门来自己搞开发软件也不可能。我们的本地协作水平总体也是越来越高,从原始社会到封建社会到工业社会,它的协作层次也越来越高,到了信息社会全球人可以在同一个平台上进行协作,最后胜出的肯定是排在前面的。 对于我们公司来说,当时就有一些客户问我们公司的人都在哪,我们公司在中国很多地方都有,在欧洲也有美国也有。人家说你们一个小公司怎么全球有那么多人,我说其实我们公司人不多,但是由于这些软件在全球都有用户有人来参与我们的社区,很自然而然他们就参与到我们公司里面来了,做着做着马上就跑到我们这来了,接下来也去服务我们全球的用户,做起来都是很自然的。要做商业化,你肯定本地得有人,不然客户的支持都跟不上。 另外一点,如果大家要去做开源软件商业化,我建议海外的市场是绝不能放弃的,因为海外的软件市场的收入相比中国根本不是一个数量级,海外是必经之路。

Q4:开源社区如何设置考核 ?

苏丹: 从我的角度来看,开源指标这个东西可能只占50%或者60%。对于产品或者对于公司来讲,更重要的是产品的一个road map,能够有一年的产品的规划其实对于一个开源产品来讲就已经非常好了。Road map对于我们是一个非常重要的东西,因为你在开源的世界里会收到各种各样的诉求,各种各样的信息,很多开源的产品他们也一直不太清楚到底什么是真需求,或者说不能够把控。 我们曾经也有过一些经历,产品做到一半了之后突然发现它跟你的未来的理念,未来你要解决的场景可能不在一条线上。如果你没有road map,即使设置了一个很高的目标,把一个一个很深的技术难题攻坚掉,但是它未来不是你要去的领域的时候,你会发现这个目标也就没有那么重要了。所以在我看来一个开源产品一定要有自己的一个初心,或者说未来的目标。

郭悦: 从项目本身的维度上去讲指标,从产品运营的角度来关注的指标可能更外围一些。因为老师们本身做项目,包括GitHub上的一些数据,包括代码的健康度其实都可以作为指标。但是做设计运营就会看项目本身在业内的影响力,也就是开发者的规模有多大。不一定是真的参与到这个项目的人,可能还是在学习和了解的阶段的,我们有渠道去把这些开发者聚拢在一起。对于运营来说还是会从整个的影响力和开发者的规模去设定这个指标。 再大一点,我觉得项目本身是不同的,大家不用一昧追求一样的指标,其实我自己在经历的不同项目中,有一些完全社区产品的项目,它更多的是社区有多少多少用户在用,本身项目的普及率有多高,但是像阿波罗这个社区在建设的时候,我关注的除了大指标更核心的一个指标就是生态开发者的数量,也就是除了要找到那些用我们的人,更多是找到能够基于我们再去开创自动驾驶不同场景和领域解决方案的那些开发者。 所以大家先要认清自己项目本身,包括一些在做开源的操作系统生态的公司,其实还是要找到一些核心的贡献者,要有生态开发者数量的,指标都不太一样。 还有社区的满意度也很关键,不管是调研还是访谈,你只有拿到开发者真正的反馈才能去不断优化自己的项目,才能更好的去治理它。

你可能感兴趣的:(go程序员物联网开源开源软件)