写点什么

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

  • 2022-05-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
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 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-05-11 16:183453

    评论

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

    算法刷题-移除元素、分数到小数、整数转罗马数字

    共饮一杯无

    数据结构 算法 三周年连更

    TypeScript Module

    程序员海军

    三周年连更

    百度平地起“雷”,突然爆出的QPS数据意味着什么?

    脑极体

    大模型

    Matlab实现光伏发电电池模型

    Shine

    三周年连更

    python时间序列预测之Holt-Winters

    AIWeker

    Python 机器学习 时间序列 三周年连更

    职业规划:如何面对“程序员失业”?| 社区征文

    ninetyhe

    人工智能 AI 大龄程序员 三周年征文

    INFINI 产品更新|Console v1.0 版本正式发布

    极限实验室

    elasticsearch console Gateway infini 极限网关

    Android调用WebService

    芯动大师

    HTTP WebService 三周年连更

    Docgeni 2.1 正式发布

    PingCode研发中心

    软件开发 Docgeni

    如何使用 Java 将 JSON 文件读取为字符串?这三种方法很管用!

    Java架构历程

    三周年连更

    Shell脚本从入门到精通

    袁袁袁袁满

    三周年连更

    使用 Kubectl Patch 命令更新资源

    Se7en

    云原生

    新手如何学好Zbrush3D建模?

    Finovy Cloud

    3D软件

    Django笔记十五之in查询及date日期相关过滤操作

    Hunter熊

    Python django 日期

    CnosDB成为首个支持sqllogictest的时序数据库,稳定性与可靠性再升级

    CnosDB

    数据库 开源 时序数据库 CnosDB

    学会 Go select 语句,轻松实现高效并发

    陈明勇

    Go golang 高并发 select 三周年连更

    R 编程并发的基础知识有哪些?

    海拥(haiyong.site)

    三周年连更

    关于容器云的三种网络设计

    穿过生命散发芬芳

    容器云 三周年连更

    2022-04-23:给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 集合 或者 B 集合中 使得 A 集合和 B 集合不为空,并且 average(A) == aver

    福大大架构师每日一题

    golang 算法 rust

    数字未来:世界正走向新的“破茧时刻”

    脑极体

    华为

    Kubernetes网络模型分析

    王玉川

    Kubernetes 云原生 网络 iptables cluster

    2023年3月用户体验GX评测:国有行及股份行持续领跑,城商行及农商行农信社积极探索实践用户体验体系搭建

    易观分析

    金融 银行

    【深入浅出Spring原理及实战】「源码调试分析」深入源码探索Spring底层框架的的refresh方法所出现的问题和异常

    洛神灬殇

    spring NPE 源码剖析 4月日更 问题分析

    测试需求平台8-Arco组件实现产品增改需求

    MegaQi

    测试平台开发 三周年连更 AcroVue

    《精进3:找到你的潜在生态位》

    石云升

    读书笔记 三周年连更

    世界读书日|华为阅读联合40余家伙伴推出精品书单

    最新动态

    如何在 Linux 中查找文件所有者?

    wljslmz

    三周年连更

    重构这件“小”事儿 | 得物技术

    得物技术

    基于 Amazon SageMaker 构建细粒度情感分析应用

    亚马逊云科技 (Amazon Web Services)

    机器学习 Amazon SageMaker

    缓存的处理步骤

    阿泽🧸

    缓存 三周年连更

    音视频八股文(4)--ffmpeg常见命令(3)

    福大大架构师每日一题

    音视频 ffmpeg

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