开源社区对开发者的价值到底有多大?

发布于:2020 年 4 月 29 日 19:37

开源社区对开发者的价值到底有多大?

自去年 9 月 openEuler 操作系统宣布开源以来,其开源进展,尤其是社区生态的构建,时刻牵动着软件产业的关注和好奇。

从去年 12 月份其源代码正式上线后,所有关于服务器操作系统相关的代码、能力、文档在 openEuler 社区(链接)全部进行了开放。随着这个新生开源社区不断发展,参与其中的开发者队伍也逐渐壮大起来。那么在开发者的眼中, openEuler 社区是否满足了他们的期待?开发者们究竟从开源社区获得了什么?为此,我们采访了参与 openEuler 社区的两位开发者,试图从他们的经历和感受中寻找答案。
开源社区对开发者的价值到底有多大?

在 openEuler 社区的 8 个月

作为 openEuler Infrastructure SIG Committer ,马俊杰在社区启动之初便投入其中,从事基础设施建设工作。Infrastructure 组负责社区中 2000 多个包的维护与管理。回顾在社区的 8 个月,马俊杰总结道:“这个过程,痛并快乐着。”

抱怨(2019.9-2019.10)

去年 9 月至 10 月,是马俊杰刚刚加入 openEuler 社区的时候,此时的社区还处于建设筹备阶段,很多功能尚待完善,比如维护人员在更新代码时缺乏代码审查机制;社区中每个软件包的详细信息还未做到充分的公开透明,只能通过 .spec 或 changelog 去猜测… 马俊杰经常出入 oVirt、Istio 等发展相当完备的社区,openEuler 在一开始的表现无不令他抱怨。

“现在这些问题已经逐步得到解决,发起人经常会对我们这些参与者说,你们还有什么想吐槽的地方就尽管吐槽。而我们的意见也会得到及时的响应。所以,我觉得整个 openEuler 社区是很开放的,也在朝着非常健康的方向发展。”

早期尝试(2019.10-2019.12)

在参与者的“抱怨”中,社区里的很多问题得到快速解决,马俊杰也开始了自己的尝试。在去年 10 月至 12 月这段时期,他将精力主要投入到社区治理方面,包括社区的贡献准则(contribution guidelines)、项目说明(project specification)的制定等。与此同时,他也在积极地参与到 go-gitee、ci-bot、Jenkins 等基础设施团队的建设工作中。

从 0 到 1 组建团队(2020.1-2020.3)

进入 2020 年,马俊杰开始在公司组建开源社区团队。起初,团队中的成员对开源及开源社区不太了解,于是他首先担起布道师的角色为大家讲解开源,并耐心教导他们如何使用 git、pull request 和 issue。由于 openEuler 是一个国际化社区,英语是社区的首选语言,因此帮助团队成员进行英文读写训练也成了他日常工作的一部分。此外,马俊杰还不忘鼓励每一个人去做博主,将自己的经验写下来,以此帮助更多的人。

待 5 个人的团队组建完毕,马俊杰开始带领团队成规模地为社区做贡献。他们组建起了社区第一个外部引入的 SIG 组——oVirt SIG。很快,其他参与者积极响应,越来越多的 SIG 组在 openEuler 社区里如雨后春笋般成立起来。

在积极参与各种 SIG 组之外,该团队还基于以往的产品研发经验,在 Shadow、PAM、protobuf、gRPC 等软件包中踊跃提交 issue 和 patch。在社区网站、博客进行经验传播也成了家常便饭… 在社区开放的环境下,马俊杰觉得自己和团队能做的事情有很多。

新的开始

由于工作变动,马俊杰从全职负责 openEuler 开源社区回归到了个人开发者参与其中。对此,他表示,“接下来我将更专注于社区基础设施的建设工作,另外,还会根据自身工作的特点贡献特定的软件包,并为更多加入到社区的参与者提供及时的帮助。”

“参与开源社区是自我价值的超越”

作为一名程序员,马俊杰早期的工作内容并非原从业公司最核心的部分,尽管在编码阶段有不少付出,但并没有获得较大的成就感。在接触开源社区之后,他结识到了很多志同道合的朋友,大家一起写代码,一起为社区做贡献。对于他而言,做开源让他“实现了自我价值的超越”。

“能够从早期就参与到如此大规模的社区建设中,并且能够与来自华为、阿里及其他兄弟厂商的同事一起工作,是我特别喜欢的。”马俊杰由衷说道。在他看来,做开源能够与来自于全国乃至全世界的优秀工程师一起工作,非常具有吸引力。

对于“开源”这件事,马俊杰有自己的亲身经历和体会。在做了近三年的开源后,如今他也开始以布道者的身份带动更多的人参与其中。不过,谈及周围人对开源的认知,他还是感到有些无奈。

他坦言:“其实以前也经常宣传开源,但是大家的观念与自己不太一样。比如很多人觉得开源即免费,只要拿来包装成产品销售就可以,贡献开源没有价值;或者认为做开源只是为了个人,对公司毫无价值。甚至觉得做开源是不务正业,即使你用的是业余时间,也会认为你没有好好工作。”

在开源社区里,志同道合的人显得非常重要。所谓志同道合,无外乎是大家对“开源”这件事的看法一致。其中,openEuler 开源生态的负责人李永乐、技术架构组工程师李中华让马俊杰印象颇为深刻。这二人不仅在其参与社区治理、贡献代码的过程中给予了他很大的帮助,也为他参与开源带来了足够的信心。

“我们经常一起探讨如何做好 openEuler 社区,如何让更多的开发者或企业用户参与进来,也会相互鼓励。永乐和中华让我觉得开源这条路是可以做下去的,对我而言,他们不只是工作上的助力者,更在精神层面给予我支持。”

丁丽丽是一位接触开源社区不久的年轻女性开发者,她对此也深有感触。尽管还没有足够的技术沉淀和经验积累,但在 openEuler 社区中,她依然能很快找到自己的参与方式。“参与社区的形式是非常多样化的,并不是只有提交核心代码才算是贡献,而且一开始就着手向社区提交核心代码显然是有难度的,所以可以从社区文档方面着手。

我刚开始参与社区就是先从社区文档、网站建设等方面提出自己的建议,后续才开始慢慢提交代码。社区中的李老师(李永乐)、马老师(马俊杰)对我提出的意见、提交的 PR(Pull Request)给予了很多帮助和鼓励。对于我自己来讲,参与社区是一个提升技能、扩展知识面的机会,我们的付出最终都会反哺到工作当中,提高效率。”

除此之外,openEuler 社区也给丁丽丽的生活带来了不小的改变。以前她每天”上班时努力完成领导布置的任务,下班后看看书、查阅一些资料”。在加入 openEuler 社区 之后,她每天打开电脑首先想到的是:社区里有没有新的 PR 被提出来;自己之前提交的 PR 有没有被合并,是否需要修改;今天又有哪位老师给了自己新的意见;自己为别人提供的意见有没有被采纳,如果没有,原因又是什么… 用她的话来讲,“每天又多了一种期待”。也正是在这样的“期待”和社区参与者的帮助下,从今年 2 月至今,丁丽丽在短短三个月的时间里不仅成为了 openEuler 社区中活跃的参与者,其技术能力也得到了快速提升。

无论是有经验的开发者,还是初阶发者,他们都在积极拥抱开源,并在 openEuler 社区中找到了适合自己的成长路径。

可是,究竟有多少开发者在真正拥抱开源?

从上述内容我们知道,尽管开源社区为参与者带来了诸多好处,但周围也不乏对“开源”抱有不同认知和理解的人。这并非个例。

对企业和开发人员来说,开源贡献同样具有重要意义。它能帮助企业建立自己的开源标准,同时能够吸引多样化人才,可以帮助开发人员丰富开发经验,提升个人能力。但事实上,如此明显的优势并没有吸引更多的开发人员从事这个行业。

在 CSDN 的《2019-2020 中国开发者调查报告》中,53% 开发者表示很少参与开源项目,但企业不支付工资,纯粹靠热爱“发电”的志愿投入也不少,占比达到 22%,而公司让全职参与的仅占 8%。

纵观 IT 行业这二十多年的发展,开源软件从黑客的“理想之国”,已经形成了一股推进计算机及相关行业不停进步的巨大力量。我们使用的计算机、手机、电视,甚至是小小的数码产品中都运行有开源软件,尤其是互联网服务器端软件,几乎全部都有开源软件的影子。而无论是大数据、区块链、人工智能还是物联网领域,其中最为重要的、最受欢迎的技术也都是开源的。但是尽管如此,还是有超过一半以上的国内开发者鲜少参与开源项目,这种情况多少都令人遗憾。

马俊杰表示:“其实贡献开源社区的难点不在于开发者能力不够,或者找不到贡献的点,而在于心中没有开源的思想。其实开源已经在重构整个 IT 产业了,我真的不认为在这个行业里,有谁做的工作和开源项目、开源代码没有一点关系。”

谈及为什么会选择 openEuler 社区并一直坚持到现在,马俊杰告诉 InfoQ:“不同于以前参加的其他社区,我感觉加入到 openEuler 社区相当于在从头做一个操作系统社区,你有很多地方可以做贡献,也有更多施展能力的空间,同时在社区的不同发展阶段,都能学习到丰富的知识。其实,在推动社区发展的同时,我们做的这些努力也会回馈到我们自身,这其实是一个相互促进、共同成长的过程。”

参与开源社区还能为开发者带来什么?

“开源社区是能让你快速成长,因为在开源社区里没有职业天花板,我对此深信不疑。”马俊杰谈到,以前自己的视野太窄,只看到公司产品使用的技术,接触的人也仅限于同事,对行业、技术、人脉的认知,会局限起来,公司在无形中成为自己的天花板。“但是当你进到开源社区,你是看不到天花板的,因为到处都是新的知识、新的技术,于是只想着要抓紧时间去学,这对于个人发展是非常有帮助的。”

作为开发者,只看到自己头顶上方的蓝天并不利于个人发展,开源社区能够提供更广阔的天空。马俊杰表示:“做开源社区不仅仅是写代码,还需要学会与不同的人打交道。很多开发者可能平时在公司坐一天都说不了几句话。但是在社区里,如何跟来自世界各地、有不同文化背景的人交流,如何提意见能让大家都愿意回答你,而不是每天一看到你就烦… 其实这些都是需要积累,很多程序员恰恰缺乏这种能力。”

退一步讲,对个人开发者而言,有一句话叫“开源社区是程序员最好的简历”。“说的更功利和直白一点,随着开源社区在国内开始蓬勃发展,我相信大家都能通过贡献开源社区拿到一个更好的 offer。现在很多招聘职位中会有‘开源社区贡献’一项,这对应聘是很大的加分项。”

开发者如何更好地参与到 openEuler 社区?

对此,作为资深的参与者,马俊杰给出了如下几点中肯的建议:

1、多学多看,先从“小事”做起。他表示:“参与社区并非写出一个模块才算贡献。新加入的开发者可以从看文档、改文档里的错别字开始,从安装 openEuler、把安装时的 Bug 提交给社区开始,在积累自身能力之后,一定找到合适自己的 SIG 组去贡献代码。openEuler 社区成立不到四个月,还有很大的发展空间,这也意味着开发者有很多领域可以参与进来,能做的事也非常多。”

2、对于新人而言,如果实在不知道怎么去贡献,可以从到上游社区搬 patch(补丁)到 openEuler 社区开始。“这是非常有价值的,比如 openEuler 有一个名为‘A’软件包的 1.0.0 版本,但是该版本有一个严重的安全漏洞,在最新的 1.0.1 版本中解决。如果没有人将 1.0.1 版本的 patch“搬”到 openEuler 社区,那么所有用了 1.0.0 版本的 openEuler 用户,将面临巨大的安全风险。"

3、对开发者而言,“搬 patch”最终的目的是要对自己搬的 patch 非常了解,能在代码层面有比较深刻的认识,能清楚地知道它是如何解决问题的。在这之后,马俊杰建议开发者可以尝试给上游社区提 patch。他表示:“当提交的 patch 在上游社区合并后,开发者可以再把这个 patch 再搬到 openEuler 社区中,因为 openEuler 社区的理念是‘Upstream first’,即上游社区优先。”

丁丽丽也结合自身的实践建议:“在 openEuler 社区最重要的是勇于参与,不要担心自己会犯错。在尊重他人劳动成果的前提下,有什么问题或意见可以随时提出来,社区的人都很友好,大家会很快速地帮你解决。另外在 openEuler 社区推荐使用英文,所以大家也需要好好学习英文。”

写在最后

“目前我们可以看到 openEuler 社区有 2000 多个包,未来肯定会更加完善,规模也将越来越大。无论是社区理念、氛围、还是协作模式,整体都在朝着一个健康的方向发展,我个人是对 openEuler 社区寄予厚望的。”马俊杰在采访最后如是说道。

其实,在开发者真正拥抱开源的同时,一个开放、多样且极具成长空间的开源社区不该被错过,它将为开发者回馈更大的价值。无论是 openEuler 社区,还是参与其中的众多开发者,相信都能在良性的互动中,相互促进,获得快速且长足的发展。

阅读数:1022 发布于:2020 年 4 月 29 日 19:37

更多 开源、文化 & 方法、社区 相关课程,可下载【 极客时间 】App 免费领取 >

评论

发布
暂无评论
  • 虚拟座谈会:GitHub 开源大牛谈中国开源

    最近,githuber发布了一份“GitHub中国开发者2014年度报告”,比较详尽地分析了中国开源的发展现状,其中对star排名前几位的开源项目负责人进行了访谈,InfoQ整理了其中比较通用的部分,尝试总结出这些大牛们对中国开源的发展看法和建议。

    2015 年 2 月 3 日

  • 近 22 万开源 Star 数!腾讯开源路线图全解析

    开源的源码就像一个载体,把对技术有兴趣的人连接在一起。有时候开发者会开玩笑称“说再多都没用,亮出你的代码",从另一个角度来个,这正是众多开发者用代码不断在技术发展迭代中共同构建。

    2019 年 7 月 26 日

  • 大公司的大数据战略得失:抱团取暖难敌插管吸血者

    开源项目最讨厌只进不出的参与者。一个公司如果只用开源项目赚钱,却不用自己的改动和成果反哺社区,开源项目就很难发展下去。

    2018 年 4 月 18 日

  • 从极客到大众,区块链必须跨过的那些阻碍

    区块链技术要落地,到底需要解决哪些问题?

    2018 年 9 月 12 日

  • Hacker News:创业社交两不误

    Hacker News是作为Arc语言的一个样板产品出现的,但Hacker News本身却很快吸引了投资人和创业者,并逐渐成为他们最主要的交流论坛。

    2018 年 9 月 24 日

  • 大咖对话 | 王龙:利用 C 端连接 B 端实现产业互联网是下半场的重中之重

    不管是跨部门还是和合作伙伴、客户的协调,最重要的一点是要具备同理心。通过同理心来寻找共同共目标、共同利益点。

    2019 年 1 月 4 日

  • 姜宁谈红帽绩效考核:不关心员工具体做什么

    开源软件是指某个由社区驱动的开放源代码的产品,而开源文化是指开源社区所衍生出的团队沟通、协作和管理的理念。在开源社区中,程序代码直接决定着项目的成败,但人更是核心,没有人便没有代码。这一点和企业是相同的。越来越多的企业意识到,开源所提倡的协作和管理方式同样适用于企业管理,开源文化能够提高员工的积极性,从而提高生产效率。那到底什么是开源文化,企业应该建立怎么样的开源文化?为了回答这些问题,InfoQ编辑采访了一直深耕于开源社区的RedHat工程师姜宁。另外,姜宁还将在ArchSummit全球架构师峰会上分享题为《如何在企业开发中引入开源项目成功模式》的演讲,敬请关注。

    2015 年 6 月 8 日

  • VS Code 的 Why、How 和 What

    VS Code是一款免费、开源、跨平台、轻量的代码编辑器,综合了Eclipse等很多优秀编辑器的优势,同时解决了它们的痛点问题,一经发布就受到了“追捧”。

    2018 年 9 月 15 日

  • 阿里巴巴的大数据故事:流计算引擎发展史

    流数据处理在阿里巴巴的发展过程中一直十分重要,阿里巴巴也在此基础上做出了很多有意义的项目。今天的主角是流计算引擎的发展。

    2018 年 4 月 13 日

  • 开源:从 Phabricator 的开源历程看开源利弊

    我以Phabricator的开源过程为例,和你分享了开源一个项目涉及哪些步骤,在这其中获得的好处以及需要付出的代价。

    2019 年 9 月 25 日