PCon全球产品创新大会开幕在即,查看大会全部精彩内容这里直达 了解详情
写点什么

当开源遇见 KPI,全球化 VS 本土化,开源的理想与现实该如何和解?

  • 2022 年 5 月 11 日
  • 本文字数:3873 字

    阅读完需:约 13 分钟

当开源遇见 KPI,全球化 VS 本土化,开源的理想与现实该如何和解?

最近几年,开源在全球蓬勃发展:一方面,越来越多人投身于开源生态中,除了开发者,不懂代码的人也能为开源社区做贡献;另一方面,开源贡献的形式更多元,不再拘泥于写代码,文档贡献、开源布道也是建设开源生态的重要动作。


开源生态日渐庞大的同时,也给开发者和企业带来了新的思考:「KPI 开源」是不是错的?做开源,企业和个人谁主导更具有优势?开源协议能不能保护好开发者或者开源项目的权益?开源「本土化」应该怎么理解、怎么做?……


本期《WeOpen Talk》,腾源会与 InfoQ 共同邀请中国信通院云大所云计算部副主任,腾源会导师郭雪、清华大学软件学院助理研究员,Apache IoTDB  PMC Chair,腾源会特聘专家黄向东以及 SphereEX 公司创始人兼 CEO,Apache ShardingSphere PMC Chair,腾源会导师张亮三位老师,共同探讨这些问题。

00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.5x
    网页全屏
    全屏
    00:00

    一、「KPI 开源」真的一无是处?


    企业越来越重视开源了,最明显的一个表现是,将开源项目相关的指标列入到 KPI 的考核中。同时,「KPI 开源」一度成为程序员「口诛笔伐」的对象,其主要原因是:其不符合开源精神,而且对企业的资源造成了严重浪费。那么,「KPI 开源」真的一无是处吗?


    首先,KPI 开源仅是一种考核的形式,而其中的考核指标是什么,更为重要。如果只是将 Star、Fork 等数量列为考核指标,极有可能只得到这些数据的增长。「如果能定义出更加理智的考核标准,比如将英文文档的覆盖率由原来的 60% 提升到 80%,我相信这是一个很好的 KPI」清华大学软件学院助理研究员,Apache IoTDB  PMC Chair 黄向东表示。


    「开源最大的难度不在于上述的那些指标和数据,而在于项目有多少人使用;公司的决策者也应该认识到,开源项目不是一天就能建成的,而是需要一段静默期去成长。正确的认识开源项目的意义和成长路径,才能避免盲目制定 KPI 指标。」SphereEX 公司创始人兼 CEO,Apache ShardingSphere PMC Chair,腾源会导师张亮总结道。


    其次,企业对 KPI 开源的重视,对行业而言,也释放出积极信号——企业正在重视开源。中国信通院云大所云计算部副主任,腾源会导师郭雪表示,制定 KPI 之后,可能不会使开源项目成为高质量或者有技术创新的项目,但会提升行业对开源的认知度。


    如今,「KPI 开源」已经不是企业的专属,开源社区以及个人也都可能是「KPI 开源」的实施者或助推者。黄向东老师回忆:「去年有段时间,国际上有一个『Give me a T-shirt』的活动,只要给开源社区贡献代码,就能收到一件 T 恤。活动期间,我在社区(IoTDB)中注意到,一个外国人在某一个文件的末尾加了一行回车,然而这个回车没有任何的意义。所以说,这样错误的做法也会干扰开源社区的正常运转」。


    总的来说,「KPI 开源」在为团队制定目标、集中资源进行开源上,是有正向作用的,但如果将其做成只看 Star、Fork 数的「表面开源」,盲目制定 KPI,那么即使投入人力与时间,也无法打造出一个优质的开源项目。

    二、开源该由个人驱动还是企业驱动?


    企业做开源可能会出现「KPI 开源」,而开源项目中,很少有专职做开源项目的开发者,更多人是为企业的开源项目做贡献,或者在工作之余出于兴趣做开源。那么,企业驱动和个人驱动的开源优劣势体现在哪,谁的优势更大?


    作为开源生态中两个重要的参与主体,个人和企业在开源中都有明显的优势。「企业侧参与开源,能够给开源提供长期稳定的支持,而个人侧的开源项目,则充分调动了个人的参与,更容易产生技术创新」郭雪解释道。


    但是,企业对开源项目的支持,也是一把「双刃剑」。开源项目需要避免对企业的过度依赖。黄向东举例说:「Apache 有一个项目叫作 PLC4X,该项目需要从工业设备上采集数据,在工业设备非常昂贵而且没有企业支持的情况下,就需要个人解决这些事情,但如果是企业侧发起的项目,这些问题就很容易解决了;但是如果开源项目不够开放,只有一个企业来主导,那么在企业面临战略转型时,项目就会面临很大的风险」。


    总的来说,个人和企业在开源方面的优势是互有补充的:在开放的开源项目中,企业能给项目提供更多的支持,使个人能探索更多的技术突破,形成良性循环。「当企业由于商业原因,不再对开源项目投入时,开源项目会面临危机;但是当企业的开源项目在商业计划中时,那么将给开源项目提供底线保障」张亮总结道。


    因此,对于开源项目的创始人来说,参与别人的开源项目,同时也允许其他人来共创自己的开源项目,这一点非常重要。从某种意义上,这样能够同时接纳个人和企业的智慧和长处,让开源项目和社区更有生命力。

    三、开源协议对开发者是保护还是限制?


    开源让大家免于「重复造轮子」,但由于开源大多数情况下是偏个人的行为,而且每个人对于开源的认知也不完全统一,因此,开源的发展也伴随着争议和纠纷。开源工作者的利益谁来保障?开源与商业化如何平衡?……目前已经有一些开源协议供开发者选择,其实际使用情况如何?是否真的有用呢?


    「由于开源协议是偏法律的语言,所以它不是很好理解,而且不同协议的条款乍一看非常相似。」谈到开源协议,黄向东是这样评价的,同时他也表示,目前大家普遍不关注开源项目的许可证,开发者需要一个学习开源协议的入口,以提升他们对开源协议的认知。


    但是对于开发者而言,大家更加关注技术,学习开源协议是一件「可以但没必要」的事情。再加上,在开源项目初期大家很难预测项目未来的发展,认真研究开源协议之后选择与盲选一个短期看差别并不大。


    那么在初期,开源项目应该如何选择协议?张亮为不了解开源协议的开发者们提供了一个思路。他认为,开源协议的选择可能与人的性格有关,有的人很极客,讨厌商业,那么选择 GPL 就好了;有的人希望给项目提供更多的可能,那么可以选择宽松的协议,例如 BSD;有的人比较中立,希望对商业和开源都有一定程度的保护,那么像 Apache 这样的协议更合适。


    事实上,为了保险起见,在选择开源协议时,大家更倾向于能同时保护开源和商业权益的中立协议。郭雪说,信通院曾经调研过全球的开源项目,开发者们更愿意选择友好型的协议,在国内,Apache License 是最受欢迎的许可证之一,一方面是如前文所说,其具有中立性质,而另一方面,与其他的许可证相比,Apache License 在在专利授予等方面的规范性上更强,能帮助开源项目规避更多的坑。


    除了开源协议之外,政策规范也是让开源生态更好的一种方式。去年,人民银行办公厅、中央网信办秘书局等五部门联合发布了《关于规范金融业开源技术应用与发展的意见》,促进开源技术的健康可持续发展,这不仅是传统行业正在进入开源生态的信号,也对规范开源、合规使用提出了更高的要求。


    除了开源协议与政策之外,还有一些机制也需要补足,例如开源领域的合规性维权。黄向东讲述了一个真实的案例,由于每年的毕业生都要写毕业论文,而毕业论文的格式的要求又很严格,因此清华内部有一个团体维护了一个 Latex(一种排版软件)模板,大家只需要在这个软件中写文档就不会出错了。然而前不久,另外一个团队说他们自己开发了一个开题报告模板,而实际上这个模板仅仅是对 Latex 进行了删减改动,因此,Latex 的维护成员在朋友圈发起了维权。虽然 Latex 在清华的学生中使用很广泛,但是其作者只能通过朋友圈和 GitHub 库中发声。


    「我们需要一些维权或者咨询的渠道,帮助开源工作者在遇到不合规事情时,有保护合法权益的途径,这对开源生态也会是一个好的增益」黄向东强调。

    四、「本土化」违背开源精神了吗?


    在开源生态中,出于开放分享的共识,「本土化」成为了一个颇具争议的话题。一部分开源人认为,「本土化」和开源精神相悖;也有人认为,无论是项目本土化还是社区的本土化,都是有一定意义的。

    针对前一种说法,其实开源的「本土化」和「全球化」不是非此即彼的矛盾状态,因此和「本土化」与开源精神也并不相悖。黄向东提到,开源项目坚持本土化的同时,也要坚持国际化即技术输出,形成国际的实施标准比成为国内的实施标准意义更大。


    针对后一种说法,项目本土化及社区本土化都是有意义的,尤其后者对开源的发展意义更大。「社区的本土化能够帮助本地人减少语言层面的障碍,拿到更易懂的资料」黄向东表示。张亮进一步补充了自己的看法,他表示:「一个全球化的项目在本土化之后,大家能够拿到它的源代码、使用所有的文档来 Quick start,这是一件非常好的事情。开源项目的本土化不是按地域隔离,而是为开源项目在每个地域的成长创造更便利的条件,像 Apache Local Community(ALC)就能够帮助本地人接触开源项目」。


    所以说,跨语言的沟通和交流,是开源工作者面对的共同问题。目前支持跨国沟通的方式已经有很多了,作为 IoTDB PMC Chair,黄向东观察到,目前在 IoTDB 中,国际上的交流经常使用 Slack、MailList 等方式,对于国内用户而言,大家会更习惯用微信群和 QQ 群进行交流,而外国用户也能通过微信自带的翻译功能,用他们的母语与国内用户交流,让开源社区滚动得更大。


    当然仅仅依靠工具交流是不够的,社区中也需要能够翻译的文档贡献者,把中文的材料翻译成其他语言,或者将其他语言的材料翻译成中文。黄向东强调:「本土化这件事应该是双向的,而不应该是单向的,文档语言的快速迭代,能够让更多人参与到开源社区中」。这样的开源生态将容纳非代码贡献者,让更多人可以了解开源,成为开源贡献者。


    「开源的本土化,最终还是会走向全球化的发展趋势」郭雪总结说。

    写在最后


    开源领域虽存在争议,但开源精神所带来的价值难以估量。如今,开源协议与法规正在完善,除了代码贡献者之外,文档贡献者、布道师等越来越多角色也可以通过开源项目、组织和社区,加入到开源生态中。未来开源生态中的不同角色会碰撞出怎样的火花,带来哪些技术创新,我们正翘首以待。

    2022 年 5 月 11 日 16:181501

    评论

    发布
    暂无评论
    发现更多内容

    主从哨兵集群终于给你说明白了

    moon聊技术

    数据库 redis

    深层互联带领自动旅游讲解耳麦进入“非入耳”时代

    DT极客

    干了三年的Java,你竟然还不会MySQL性能优化

    华为云开发者联盟

    Java MySQL sql

    干货|原来IPFS是这样存储文件的

    QTech

    区块链技术 IPFS 星际文件系统

    打造新一代企业数据驱动体系

    StarRocks

    数据库 大数据 数据分析 数字化转型 OLAP

    架构师训练营第六周作业

    zamkai

    LeetCode题解:264. 丑数 II,三指针,JavaScript,详细注释

    Lee Chen

    算法 大前端 LeetCode

    字节内部MySQL宝典意外流出!极致经典,堪称数据库的天花板

    比伯

    Java 编程 架构 面试 技术宅

    2020年不容错过的10本大咖之作 | 你最Pick哪一本?

    博文视点Broadview

    基于GaussDB(DWS)的全文检索特性,了解一下?

    华为云开发者联盟

    数据库 数据仓库 数据

    基于 Flink+Iceberg 构建企业级实时数据湖

    Apache Flink

    大数据 flink 流计算

    面试软件测试所需要掌握的7个技能

    华为云开发者联盟

    sql 面试 测试

    Polkadot系列(四)——Polkadot茶溪岸啤(XCMP),干杯!

    QTech

    区块链技术 polkadot 跨链

    阿里拆中台?从架构师角度解读中台

    javaba韩老师

    架构 中台战略 TOGAF 中台的前世今生 中台的由来

    Spring Cloud Gateway (六) 自定义 Global Filter

    Java 网关 SpringcloudGateway

    准备去阿里以及大厂面试你都需要会些什么?我从任职阿里的朋友口中,总结出了一些答案!

    Java架构之路

    Java 程序员 架构 面试 编程语言

    40亿条/秒!Flink流批一体在阿里双11首次落地的背后

    Apache Flink

    flink 流计算

    light-rtc: 理念与实践

    阿里云视频云

    架构 音视频 WebRTC RTC

    Flink 双流 Join 的3种操作示例

    Apache Flink

    flink 流计算

    免费下载来自阿里巴巴 双11 的《云原生大规模应用落地指南》

    阿里巴巴云原生

    阿里巴巴 阿里云 开发者 云原生 k8s

    敏捷与安全不可兼得吗?看完这篇文章后,我想说:未必!

    华为云开发者联盟

    敏捷 安全 开发

    引起故障的原因

    jorden wang

    腾讯TcaplusDB核心引擎技术揭秘——存储篇

    TcaplusDB

    数据库 nosql 原理

    软件测试--前后端数据交互

    测试人生路

    软件测试

    优化了MYSQL大量写入问题,老板奖励了1000块给我

    华为云开发者联盟

    MySQL sql 写入

    内存分页不就够了?为什么还要分段?还有段页式?

    yes

    操作系统 内存管理

    Flink SQL 实战:HBase 的结合应用

    Apache Flink

    flink

    如何利用状态同步开发一款游戏

    Isa 婷婷

    node.js 游戏开发 24小时自助游戏厅 联机游戏

    「每日一题」抖音面试题:请阐述vue数据绑定的实现原理

    Java架构师迁哥

    腾讯 TcaplusDB 核心引擎技术揭秘——存储篇

    TcaplusDB

    数据库 nosql

    金融行业数据库架构实践与运维

    金融行业数据库架构实践与运维

    当开源遇见 KPI,全球化 VS 本土化,开源的理想与现实该如何和解?_文化 & 方法_任传英_InfoQ精选文章