大厂开源的五大挑战:KPI与OKR设定的难题

发表时间: 2022-08-11 16:16

作者 | 彭慧中 责编 | 屠敏
出品 | CSDN(ID:CSDNnews)

根据Gartner及Linux基金会的调查报告显示,企业平均有29%的软件代码来自开源,在“开源吞噬世界”的背景下,国内大厂先后将关注点聚焦在开源之上。其中,不少互联网企业更是为开源成立专门的组织机构,如早在2015年,阿里巴巴便成立了开源委员会;腾讯在2019年也正式成立开源管理办公室;2022年5月,字节跳动在内部邮件中正式官宣成立“开源委员会”;其他如华为、百度同样也在内部成立了类似部门。

大厂为何纷纷成立专门的开源团队来拥抱开源?大厂做开源与其他组织做开源有什么不同?他们的痛点是什么?本期由CSDN、《新程序员》主办,中国信息通信研究院云大所、开源社、腾源会联合支持的《开源圆桌派》以“大厂做开源的五大痛点”为主题,邀请到华为首席开源联络官、开源与开发者产业发展副总裁任旭东,腾讯开源联盟主席、腾源会导师单致豪,CNCF中国区总监、Linux基金会亚太区战略总监陈泽辉,在CSDN《新程序员》执行总编唐小引的主持之下,与大家分享大厂开源秘籍,共同推动开源成为企业发展的强劲动力。

大厂开源的现状


唐小引:从企业角度来看,华为在Linux Kernel贡献上一直处于领跑地位,腾讯也是GitHub全球贡献前十的公司,可否分享一下华为、腾讯两家公司在开源方面的最新进展?

任旭东:华为在国内算是接触国际化软件社区比较早的企业。最早于2000年,华为开始了解开源。在2008年,作为最早一批Linux基金会成员,随着Linux基金会一起正式把开源引入到了国内。2010年前后,华为也开始加入各个国际开源基金会。

多年来,华为随着业务的拓展,“硬件开放、软件开源”已经成为了华为的战略发展方向。我们越来越拥抱开源,越来越积极地参与到开源组织中去,并在各个开源社区的关键席位积极地贡献代码、参与社区活动和讨论。我们希望未来能立足中国,立足亚太,发起更多中国自主原创的开源社区来活跃开源生态。

单致豪:腾讯开源始于2010年,那时腾讯将战略方向调整为“拥抱开放”,这也是腾讯文化的基因底座。我们开始倡导代码的共享复用,结合内外部开源相结合的方式来制定腾讯的代码文化。我们有很多优秀的微创新和自研的技术,会通过腾讯整体开源的策略来对外开源。

2015年,我们不同专业线的专家聚集在一起成立腾讯开源联盟,指导腾讯对外开源项目。

仅在2016-2017年的一年间,腾讯以爆发式对外开源20多个项目。

2019年,腾讯成立了开源管理办公室(OSPO)的虚拟组织,横向拉通法务、合规、知识产权、商标版权、公关、市场运营等不同部门的人来更好地服务腾讯对外开源项目。

近两年,我们开源项目逐渐增多,参与很多国内外开源基金会。整体而言,腾讯开源产业还在不断向前探索,也希望更多人加入到开源的浪潮中来。


大厂做开源痛点之一:企业内部成立开源组织带来的误解


唐小引:国内外的大厂都会以成立开源办公室或者开源委员会的方式做开源,对于这种新成立的部门,公司领导和其他部门会有什么样的误解,正确的做法又是什么?

陈泽辉:目前,国内的开源办公室的发展越来越好,有很多公司领导开始关注和推动开源,但也有些领导不太了解公司的开源战略。

什么是开源战略?这取决于公司希望用开源来做什么。比如有的公司是打算用开源招募人才,还是打算把开源作为降低成本的工具,或是利用开源做品牌效应,还是用来打造开源商业模式等,公司往往会面临这些问题的考量。或许有很多开发者非常愿意去做开源贡献,但是领导不知道员工这些努力对公司有何用,所以可能没有及时给到支持。

国内外都有这类事情的发生。我们需要让领导了解公司的开源战略,这样才能够形成支持力量,让公司里更多的开发者参与到开源,吸引更多的开源人才。同时,公司对于领导层的培训也是有必要的。

任旭东:向上沟通是很有必要的。首先在企业做开源,不是个人能完成的,结合企业的商业战略来落地是产业发展的有效手段。

支撑战略的开源决策必须慎重,在企业内部要慢慢构建一种“优生优育”的过程,让开源从一开始就谋划清楚。这是慎重的决策,不是轻率的的行为,需要由商业领袖来发起,才可能更好地落地。

企业做开源绝对不能为了开源而开源。要从了解不同信息开始,最终回归到企业的正常运转。既要商业的成功,还要战略的执行,让公司业务跟开源相结合,并互相促进,这才是真正做开源的关键。

单致豪:2019年,腾讯发布了两大技术战略,即“开源协同”和“资源上云”,它是整个集团对开发者的要求,要求所有开发者参与到开源协同上来,把开源应用好的对外去开源,它是一个集团战略的组织。

以前腾讯的代码在不同小团队间是看不见的,现在腾讯内部的开源率达到80%以上,任何一个毕业生或是新人进来腾讯,可以看到其他团队在研发的项目,他可以从这里获得自己成长,所以整体在代码贡献的增长很多。去年通过开源协同,腾讯成立了十大领域的技术委员会,来辅导不同领域里的OT协作。对外开源方面我认为需要更多商业领袖去支撑对外开源,通过3P原则、3P闭环把开源项目健康的运作起来。


大厂做开源痛点之二:开源项目如何衡量好与坏


唐小引:如何评估开源项目做的好不好,开源有哪些坑?

任旭东:开源很容易被简单的指标化。但开源的好处不是短期内能轻易看到的,开源项目也很难直接从开源软件本身获取收入。同时,开源人才非常难得,也希望越来越有志于做这件事的人来更多地加入到这个群体中。

我们认为将软件拿出来开源并和业界伙伴共创,是真正对产业生态发展有利的。做开源的过程中,我们看重的是它带来生态的繁荣。在生态的繁荣之后,再让我们回归华为擅长的,无论是硬件的服务器、芯片还是手机的终端产品等中来,让用户能在更广泛的场景下体验最好。对于华为,核心是在主业务上形成商业闭环,并不直接依托开源软件本身来获得收入。

单致豪:现在做开源,为爱发电不一定能成功,得跟商业结合起来,需要有商业的闭环。目前很多人在参与开源的时候也会有一些误区,比如有些人会为完成KPI去社区里提交无效的Commit,或者是为开源项目去增加fork数。

一个项目的成功十分困难,项目的生命的周期与企业跟个人在不同时期的目标需要形成一个平衡的关系。如果我们经常只拿star与fork数作为增长的指标,实则会形成误区。看一个项目的成功,其实还是要让开发者获得成功,把贡献者的满意度或是开发者的贡献体系考虑到位。

对于不同类型、不同阶段的开源项目要有不一样的关键指标,不断调整才能让开源项目往前推进,不同阶段我们要做的事情是不一样的。2017年,我们开源了一个微服务开源框架SIA-TASK,开源之后制定了三年计划,其实整体是按计划去推进的,但是很多时候看项目是不能预测未来很长时间的,三年计划已经很长了,因此需要根据实际情况及时调整。


大厂做开源痛点之三:开源是否要设定 OKR?


唐小引:到底要不要制定OKR?

陈泽辉:OSPO(Open Source Program Offices,开源项目办公室)的指南很明确地告诉大家怎么去设定OKR,但目前对于是否要制定OKR也有争论。

有些人觉得根本不能设定OKR,因为他们认为开源战略没有定下来。如果要用开源来招募人才,但只是设定招多少人才肯定是不行。因为它需要有一个过程,开源需要有文化、名声才可以吸引到更多人,如果要吸引人才,首先要建立自己的名声。一开始设定很大的OKR是不行的,但可以从过程中寻找小的OKR,这是可以的、有必要的。如果没有OKR,往往会有很大的问题,就是你的领导不知道你在干嘛。

任旭东:我认为用KPI、OKR来考核从事开源的人绝对是不够的。但是在公司的团队,如果没有指标去度量,很难去自我观察,因此该手段要有,但是怎么应用,以及应用的目标需要清晰。

如何应用KPI、OKR,是对主管上级更大的挑战。如果仅仅是为了简化上级的管理,那就违背了KPI和OKR的初衷了。KPI和OKR本质上没有大区别,只是一种载体和形式。怎么共同协作完成,核心还是要跟主管沟通,针对目标的达成以及过程上怎么应用KPI或OKR。

当要在不确定性较大的业务做开创性的事情,这时需要建立实施标准,它是一个领导的工作,也是一个创新性的工作,是非常难的挑战。所以我认为要有OKR,我的OKR也是希望中国的开源环境更加浓厚、开源土壤肥力进一步提升、开源要素更加齐备,无论是从基金会还是代码托管平台,或是高校开源人才在开源社区的活跃度都更高,能力提升的更快。这样对于企业来说,无论是招聘人才还是在人才进来后去做开源工作都会更得心应手。

所以设定具体的KPI,我们在过程中也会用来监督执行,但不是以完成度来简单评价,因为对于挑战性岗位的人才,通常会去设置更挑战的目标,最终的KPI只是用来度量,因此在考核上对这个群体甚至有更大的灵活度。核心之核心还是对岗位的识别,对人才的识别和对考核指标的应用,这些都是要不断的去突破和创新的。

单致豪:腾讯的技术战略有两个,开源协同和资源上云。开源协同是我们要落地的一个大目标。

开源协同更重要还是内部开源。内部开源有三个价值:

  • 一是减少重复的投入,同样的技术不反复投入;

  • 二是提高研发的效率,通过运营提升研发的效率;

  • 三是降低整体的运营的成本。

另外是外部开源,把优秀开源项目对外开源,新的前沿项目对外孵化,刚也提到三P的闭环,通过开源项目吸引更多开发者参与进来形成技术产品,能在云上去论。同时技术产品能给腾讯带来技术上的回报,即整体闭环的原则,也引入外部开源项目,引入之后会有相应同学参与到开源项目的PCM里去做重要的协作。

还有就是OpenJDK,腾讯的叫Kona,这个项目不但在外部开源,内部也有大规模应用,这是比较综合的方式。总体来说大目标还是开源协同,通过开源技术,商业化的运作带来商业回报。


大厂做开源痛点之四:开源岗位的晋升规则


唐小引:做开源工作在华为和腾讯是什么样的晋升机制?

任旭东:以前说开源好像在大公司属于少数派、小兵种,很难得到主流评价的认可。但经过几年摸索,让开源回归到商业和战略,它就不是个人行为,是一个团队和战略的行为,团队和战略需要这样的专家队伍来成长,所以这几年通过先从战略和产业的流程上把业务梳理清楚,如果需要开源就开源,不需要开源的绝不能盲目开源。

这一步做到后,发现在这些人才在长期的选用、预留的过程中,他们的激励是个问题。我们在相应匹配的评价体系和专家委员会的共同成长的圈子、体系的建设上一步步完善,包括现在HR领域体系的跟进。在任职资格通道上,开源都是留有发展通道的。所以这块基本上在华为是逐步解决了,同时甚至打通了破格提拔的流程。

如果说你在外部关键社区通过个人真正的影响力和努力,获得必要的席位,在内部可以匹配到相应的技术等级。这个技术等级对再去任职相应岗位是非常关键的。当然每个人有不同的发展和追求,有人喜欢在研发上钻得很深,有人喜欢在商业销售上发展,都是可以的。所以现在合理的建立了一条让开源专家愿意来从事以及可以在公司晋升的一条通道。

单致豪:每个公司都有自己的文化跟考核的标准,有些公司考核开源会考核commit数量,有些会考核项目能不能成,有些会考核项目能不能获得商业回报,每个公司考核的情况不一样。

腾讯对开源贡献多的人有很多激励晋升的政策,逐渐形成开源文化,让每个人都能参与进来。在开源协同这块,腾讯的开发者已经有很深的认知,也不需要更多的宣导,更多还是给予激励措施。我们有双月的激励,包括优秀个人的激励,根据贡献者的贡献文档、PR的质量等综合去评分,来激励踊跃参与到开源社区的人。这在晋升时有很大优势,因为作为腾讯的T12专家,要有很好的个人影响力。通过开源贡献塑造个人的名片,会给他在晋升上带来很大优势。


大厂做开源痛点之五:集中力量 vs 各自美丽


唐小引:大厂开源是集中力量办大事,还是各自美丽?

单致豪:集中力量办大事更好,但很多时候是从各自美丽开始。

很多企业都是先参与开源,了解开源,再加大投入,最后才会参与到更大的开源生态中。其实开源就是集市,大家从大教堂里走出来,一起参与社会的开源运动。开源不是零和博弈,是共赢游戏,需要更多人参与到中立组织里,通过把项目做得更多样化,让项目更健康地往前滚动,为整个开源生态注入更多活力。其实每个项目之间有不同的担保托管平台,平台有不同的优势和差异化的点,所以是集中在某一个社区,还是分享在不同的社区,都是不同时间、因素形成的最终结果。

另外,我想举个例子,谷歌以前开源的一个项目叫Istio(https://istio.io/),今年,谷歌将其捐赠到CNCF。在此之前,谷歌的Istio委员认为这是谷歌重要的开源资产,不应该捐到外部开源组织,它应该和谷歌自身的商业形成很强的闭环,但最终谷歌还是决定捐到CNCF,这也彰显了整个开源的浪潮还是从更开放、集中一起来办大事的理念来决定未来开源的发展。

任旭东:我觉得开源是丰富、多元的,特别是数字化后,意味着各行各业有更多程序员出现,这是数字化和智能化社会的必然,也是我们公司的愿景。所以在这个过程中,大企业要有自身的担当和责任,集中力量做框架性的、操作系统级的核心基础软件,或更偏向基础研究和社区的东西,因此更好的协同是有必要的。

各自美丽,给程序员更多选择也是好的,说到底是集中力量还是各自美丽,要按企业的战略以及在产业中的自我担当和定位。但我更加呼吁,敢于打破脑子里的禁锢,除了遵守开源界“不重复造轮子”的文化外,更多要学习,敢于找更有价值的、解决问题的轮子。敢于创新和突破,程序员需要更活跃更创新,企业里的工程师和和做商业的人也要敢于去创新和突破,这是我想要强调的,集中力量办大事肯定是希望大企业能担当起来。

陈泽辉:现在有很多单打独斗的开源项目,它想要建立生态是挺难的。但用开源共建共创的成功例子就非常多。因为一家公司的力量可能吸引不到更多开发者来一起共建,有可能这个单打独斗的项目就被大家共建的项目取代了。

所以,我觉得实施要看到底是基础建设的项目,还是单独项目或者是其它,但一般来说,我们在Linux基金会的宗旨肯定是希望能够建大的生态,不要重造轮子,而往往不共建的话,根本没有办法把产业生态做出来。

以上就是本期开源圆桌派的全部内容,相信各位对大厂开源的现状已经有了一定的认识,同时也可以将大厂开源中一些好的经验借鉴到自己的开源工作中。相信在大厂和其他领跑的开源组织的共同影响下,越来越多的人能够加入到开源大潮中来,在这项人类共同锻造的伟大工程中贡献自己的一份力量。

  • 回看地址:https://live.csdn.net/v/222515