开源项目越“成功”,给维护者带来的压力就越大。
2021年底,Log4j的安全漏洞再次将开源世界面临的挑战推到聚光灯下。迈克梅兰森在他的新堆栈专栏中写道:
这场危机就像有人对开源社区说“我告诉过你这会发生”一样。3354开源社区原本以为可以一直支持和维护各种项目,几乎不用成本(甚至根本不用成本)。这一次,它被揭示了。
虽然开源面临着各种各样的问题,但是对于很多开发者来说是非常重要的一部分。甚至对于某些人来说,开源一直是他们职业生涯中的关键一环。
“如果我一开始没有为开源软件做出贡献,我真的不会从事Web开发,”软件开发人员、O'Reilly的两本书(jQuery和Vue.js主题)的作者卡勒姆麦克雷(Callum Macrae)通过电子邮件告诉New Stack:“如果我改变了我的Web开发道路,我的职业生涯肯定会非常不同(可能不会像现在这样好)。”
麦克雷显然很看重开源对他这样的开发者的意义,但他也对开源的未来持怀疑态度,至少从维护者的角度来看是这样。
“我认为目前的开源模式对参与者来说是不可持续的,”他说。“这种模式要求人们尽最大努力做出贡献,但几乎不要求任何回报。当最后一个人筋疲力尽的时候,他还是要指望有人来接替他的工作3354而且总有人能接替!”
开源项目越“成功”,给维护者带来的压力就越大。现在开源已经成为全球经济的一个基本组成部分,所以在过去的五年里,业界自然会有很多旨在帮助那些开源软件开发者的计划,比如GitHub赞助商和Tidelift。但总的来说,人们在开源社区所做的大部分工作仍然是没有报酬的。
开源行业有了哪些变化?
开源项目办公室正在崛起
许多人都在问开源行业的下一步应该是什么。越来越多的开源项目办公室(OSPO)表明,企业越来越重视开源的内涵及其内容。
根据New Stack、Linux Foundation Research和TODO Group在9月份发布的一项调查,77%已经启动OSPO的组织报告说,这些办公室对他们的软件开发工作产生了积极的影响。
但是,应该看到,OSPO的这种趋势才刚刚开始,还有很大的发展空间。上述调查还调查了没有开放OSPO的组织。其中,35%的受访者表示没有考虑过此事,28%的受访者表示没有看到这方面的商业价值,19%的受访者表示从未听说过这个概念。
这些统计数据应该让我们一窥豹,并使我们认识到我们面前任务的规模。
除了关于OSPO受欢迎程度的问题之外,这些发现也让我们问一些更基本的问题,关于如何在组织内鼓励和支持开源。9月份研究的统计数据是一个警告,表明我们可能在倒退:
42%的受访者表示,他们组织中的工程师经常或有时会为上游开源项目做出贡献,这一比例低于2020年的48%。36%的受访者表示,他们将培训工程师为开源项目做出贡献,低于去年的42%。
这说明支持开源行业的各种新机制、新机构的发展与实际工作脱节。部分原因可能是宣传和现实之间有差距,但也可能是这个“运动”的价值观和独立性正在消失。
麦克雷说:“大部分有趣的部分都消失了,但压力和期望却增加了。”开源运动如何保持其创造性和协作精神,同时确保世界所依赖的基础软件的维护者得到他们所需要的支持?
成为开源贡献者/维护者的意义发生了变化
多年来,作为开源贡献者或维护者的意义已经发生了变化。
2019年,技术作家兼研究员Nadia Eghbal在Increment的一篇文章中指出,2010年代后期的研究表明,开源社区不是在整合,而是在分裂。Eghbal认为,在某种程度上,这种现象是由GitHub的性质造成的:
通过标准化的版本控制、开发者识别机制和良好的用户体验,GitHub让开发者更容易进入各种项目并提交贡献。因此,项目现在获得了更多的贡献者,但是他们中的许多人在与项目的互动中变得更加肤浅。
2016年对GitHub上热门项目的一项研究发现,样本中有近一半的投稿人仅投稿一次,占投稿总数的不到2%。
这种演变导致了几个后果。一方面有技术上的影响。DataStax的开发者关系副总裁Patrick McFadin告诉新堆栈,尽管“较小的贡献可能是有价值的,但较大的贡献,如新功能,需要更长的专注时间。”
但影响不仅限于技术层面。如果说贡献更多的是零星的和“表面的”,那么毫不夸张地说,开源行业的社区意识正在减弱,这种意识深刻地影响了为开源项目做贡献的活动。
这就是麦克雷所暗示的:“虽然大多数项目过去都是由社区主导的,但现在却让人觉得它们往往得到了大公司的支持。3354最明显的例子就是React/脸书。”
在当今世界,开源已经被提升为速度和创新的另一个关键因素,但上述观点很容易被忽视。
但是,如果你看看开源软件诞生时的软件世界,——充满了对立,甚至是政治对抗,你应该知道,在技术行业和谐的表面下,有一些关键的紧张元素。如果不能解决这些问题,可能会让行业的未来变得更加枯燥,人的参与和协作会变得更少。
开源与开发者关系
开源是一个学习知识的去处
致力于支持和推广开源的组织TODO Group的项目经理Ana Jimnez Santamara表示,参与开源项目有助于开发者学习知识,而不仅仅是编码。
她说,通过为开源项目做贡献,“人们不仅有机会提高他们的代码技能,还可以提高他们的软技能,例如学习如何在协作环境中工作。”
麦克雷早期为开源软件做贡献的经历可以验证这个观点。“我以前从未写过PHP或HTML/JavaScript,我不知道SVN和后来的Git是什么,我也没有任何计算机科学知识,”他回忆道。
他学习过程的一个关键部分是社区:“我有一个帮助我学习的社区,同时也为成千上万人使用的东西做出贡献。”
如果看着开源社区倒下,他们还会是开发者学习知识的空间吗?答案可能是在其他地方找到更好的培训和支持,比如在线学习资源,或者在一个真正关心你的技能和职业生涯的组织中找到一份工作。
但是这种选择并不完全令人满意:只要开源是参与性的,学习过程将是相同的。你没有在学习什么课程或技能清单;你正在学习如何与他人一起建造、修理和改进某物。
开发者关系的影响
过去几年中开发者关系的增长可以被视为“传统”开源社区衰落的征兆。这也表明,企业对参与和培养围绕特定工具的社区的必要性有了更高的认识。
为了完成数据科学的硕士学位,Santamara研究了开源社区中开发者关系的运行机制。
“它的主要目标是创建一个模型,根据不同渠道进行的活动来描述不同类型的开发者,”她说,并补充说,“这种分析的商业价值是获得一组指标,DevRel专家可以使用这些指标通过以社区为中心的模型来报告他们的工作。”
这无疑是有趣的,但是想想对于30年前在自由软件工作的开发者来说会有多奇怪。
这并不是说这个想法有多新颖;毕竟现在社区管理已经是各个领域现代工作机制的一部分了。相反,应该指出的是,我们眼中的“社区”已经从非常有机和有趣的东西变成了组织良好、更具生产力和效率的东西。
但是,可能是社区在某种程度上被视为“有机的”理想主义,造成了很多我们今天在开源软件中看到的问题。
“开源世界是一个由许多社区组成的社区,因此它需要专家来培养和发展这些社区,这是项目可持续性的一部分,”Santamara说。
“随着开源在组织中的采用率越来越高,我认为‘开源’开发者关系现在是关键。一是教育开发者对内对外开源,二是成为组织和他们关心的开源项目之间的枢纽。”
有趣的是,这种模式与Eghbal眼中开源的开发流程是一致的,即少数维护人员负责项目的大部分工作。该行业可能正从大众参与的状态转向某种托管文化。
这也许是一件好事。但这也提出了一个新的问题:这种方法会破坏真正的“开放”吗?能否扩大它以应对我们面临的根本挑战?
入门开源
将开发者关系模型引入更多开源工作的好处之一是,它可以帮助解决贡献开源过程中最困难的问题之一:简化引入过程。
“虽然网上有很好的初学者指南和课程,但没有明确的职业道路,”Santamara说。
当开发者为了应对技术等快速发展领域的就业压力,需要不断提升自己的知识水平时,毫无疑问,为项目做贡献对于很多新人来说并不是重中之重。
可以说我们现在的处境是最糟糕的。所以很多曾经帮助很多资深开发者学习编程的社区都没有了,也没有更标准化的基础设施来帮助人们在行业中找到出路。
不过,Santamara确实提出了一些可能的方向:结构化的开源职业道路,包括“为新一代倡导良好的开源实践”,提高高级管理层对开源的认识,以“节省开发人员的工作时间”来探索开源项目。
职业节点的概念在别处也有提及。在一篇回应Log4j故事的博客文章中,谷歌开发人员菲利普瓦尔索达(Filip Valsorda)写道:“你不能从初级维护人员开始,接受培训,获得经验,并期望自己最终成长为一名薪酬更高的高级维护人员。这在今天行不通。”
这些变化需要时间。短期内,像GitHub上的First Contributions这样的项目可以为想要参与开源的人提供一个进入渠道。
开源与“公地悲剧”
显然,企业需要在开源中扮演更多的角色。正如Valsorda在同一篇博文中指出的,“开源可持续性和供应链安全的概念出现在每个人的幻灯片、博客和新闻稿中。大公司迫切需要开源生态系统变得专业。”
支持开放技术的非营利组织OpenUK的首席执行官阿曼达布洛克(Amanda Brock)对此表示赞同:“我们不仅需要最好的软件3354,还需要提供适当的资金,以确保构建所有这些基础软件的人能够维护和支持这些软件的安全性。”
布洛克列举了英国的一些类似案例。例如,她提到了能源数字化工作组的工作。政府组织“建议数字能源部门的骨干应该建立在开源软件的基础上。英国的NHS现在有一个开源软件优先的方法来编写代码,并且越来越依赖开源软件。
然而,尽管在基础设施项目中采用开源软件方法是对这种模式的明确认可,但它们可能无法解决现有项目面临的问题,也无法支持那些负责维护这些项目的开发人员。
布洛克的观点很有说服力。他说,我们需要“改变开源软件被视为公地,而是公共利益的观念”。然而,在某些方面,这里的“公地悲剧”在于我们没有意识到“公地”和“公共利益”实际上可能是一回事。
我希望开源的世界还是一个让有创造力和独立性的人学习和探索的空间,同时也能创造出能让所有人受益的东西。如果我们对开源可持续性的解决方案破坏了这种核心精神,开源还有什么意义?
原文链接:3359 thenewstack . io/can-开源-自持而不失其魂
想了解更多关于软件开发和相关领域的知识,点击访问InfoQ官方网站:https://www.infoq.cn/获取更多精彩内容!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/235674.html