阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

开源如何助力软件开发团队

作者:Al Sene

  • 2022-08-17
    北京
  • 本文字数:3440 字

    阅读完需:约 11 分钟

开源如何助力软件开发团队

近年来,开源软件的使用和开源贡献程度在显著增加,并继续成为开发者个人和专业项目的来源。对许多新进入软件开发领域的人来说,为开源项目做出贡献已经成为一种仪式。开源社区在帮助初级开发者解决技术问题的同时,也为他们提供了很好的学习和交流机会。

 

在许多方面,为开源项目做贡献也变得比以往任何时候都容易。软件协作和开发平台(如 GitHub)的发展使得参与开源贡献的机会变得更加大众化,而行业活动(如Hacktoberfest)或社区论坛也成为开发者寻找他们第一个贡献项目的地方。

 

开源软件对科技行业和开发者来说至关重要,这一点毋庸置疑。然而,开源社区仍然面临着各种各样的挑战。围绕开源建立的社区和开源所提供的好处是非常有影响力的——技术领导者会鼓励更多的人参与其中,包括他们的团队和整个行业。

开源参与度

 

DigitalOcean 最近发布的一项关于开源社区状态的报告表明,大约 50%的被调查开发者表示他们在过去的一年中参与了开源。在参与的开发者当中,几乎所有人(93%)表示,自疫情开始以来,他们的参与程度要么提高了,要么保持不变。这表明,尽管过去几年疫情对开发者的工作与生活带来了影响,但致力于开源的开发者已经找到了将这种实践融入日常和“新常态”的方法。

参与开源贡献所面临的挑战

 

然而,即使是最坚定的开发者也承认,时间约束是参与开源项目的最大障碍之一。DigitalOcean 的研究发现,大多数参与开源项目的开发者每周会花 1 到 5 个小时在开源项目上,并将“缺乏资源/时间”和“技术债务”列为他们目前面临的两大挑战。

 

除了时间约束之外,开源世界有时可能不欢迎那些努力参与的人。Carnegie Mellon 对开源动态的一项研究表明,开源项目贡献者之间的交流可能会演变为“上下文相关的、微妙的和消极的”评论,或者贡献者可能会发现他们面对的是僵化而死板的贡献策略。当项目面临严重的文档负债时,开源项目贡献者之间的交流也会迅速中断。当(大多数)开源项目受到时间和资源的约束时,首先受影响的是文档化程度。如果没有完整的文档,新人将面临非常陡峭的学习曲线,这导致他们很难参与贡献,除非他们已经非常熟悉项目。

 

与技术行业的其他领域一样,软件项目也缺乏多样性和包容性。DigitalOcean 的研究发现,虽然大多数开发者认为开源的包容性在过去几年中有所提升,但少数群体的成员对这种看法存在异议——有 26%的少数群体成员不认同开源的包容性,而非少数群体的这一比例只有 12%。管理开源项目的贡献者已经在寻找各种各样的解决方案,试图减轻有害行为,例如通过禁令和积极的审核来强制执行行为准则,但即使是这些解决方案也严重依赖于审核人员在这些项目上的时间投入。

 

在目前的状态下,开源贡献似乎介于“爱好”和“志愿者工作”之间。为开源项目腾出时间的开发者正在做着重要和创新的工作,但这些工作往往没有得到各方的承认,尤其是那些从这些工作成果中受益的公司。开源软件的诞生方式(即软件是如何由大多数没有或缺乏资源的人在网上构建、开发和更新的)与开源技术在当今公司发展中所扮演的角色相去甚远。

开源为我们带来了什么

 

技术领导者和开发者一直承认开源软件对他们的公司产出了巨大影响。64%的开发者表示,他们公司 50%或更多的项目使用了开源软件,这一比例在初创公司和小型企业中甚至更高。35%的初创公司和中小企业在其 50%或更多的项目中使用了开源代码,而大型企业的这一比例为 28%。

 

当大公司公开谈论开源时,通常会从安全性的角度出发。亚马逊、谷歌和微软等公司已经加入了各种基金会和组织,如开源安全基金会(Open Source Security Foundation,OpenSSF),这个基金会专注于改善开源开发和实现中的网络安全实践,并确保开源的“供应链”安全。这些团体和组织对于开源软件的长期成功和可持续发展来说非常重要,但并没有太多地关注如何解决开发者在维护开源项目中所面临的困难。当开发者被问及安全方面的考虑时,大多数人(43%)相信雇佣专门的安全专家来监督项目或者增加对贡献者本身的报酬和培训有助于提高安全性。

 

在较小的范围内,各种水平的开发者借助开源代码库来解决问题、扩展他们的技能或处理新的场景——这些带来了个人和专业方面的好处。35%的开源开发者表示,他们通过开源贡献提升了自己的技能,19%的人表示他们与更多人建立了联系,还有 11%的人甚至因此找到了工作机会。强大的开源社区也是让开发者继续做出贡献的关键——32%的开发者表示,开源贡献让他们感觉到“意义或作为社区一份子的归属感”,20%的人甚至扮演了导师的角色,帮助其他社区成员发展他们的技能。

 

尽管大部分都是无偿的,但这些志愿者工作、指导和社区在保持开源活跃度和参与度方面发挥了关键作用,即使开源开发者面临时间和技术债务方面的挑战。GitHub 2021年度Octoverse状态报告显示,开源社区的指导承诺使开源项目的生产力提高了 46%。这种效应在工作场合中也能看到,“指导几乎让形成强大的文化具有成倍的可能性”。在合适的环境下,强大的开发者社区会让开源变得更好,强大的开源社区也会让开发者变得更好。

开源的未来

 

当关于公司和组织如何回馈开源社区的问题出现时,支付报酬成了一个首当其冲的话题。开源贡献的报酬是一个备受争议的话题。一方面,大多数开发者(在 DigitalOcean 的报告中有 53%的开发者)似乎都同意或非常同意个人应该为从他们的开源贡献中获得报酬,而另一方面,也有开发者担心开源盈利或融资模型可能会导致开发生态系统变得更加封闭,而不是更加开放。

 

企业可能不愿意为开源软件付费,或者为开源贡献付费,但一些行业领袖已经在探索其他替代方案,作为一种与社区更深入合作并“回馈”社区的方式。例如,去年思科聘请了一个开源主管,作为开源计划、思科客户和不同商业团体之间的“结缔组织”,希望为那些“隐形工作”的开发者和维护者提供支持。然而,这些角色或计划在很大程度上依赖于内部有人倡导开源,并说明构建开源社区的 ROI。最近,这些工作落在了开发者关系(DevRel)和开发者倡导团队(这些团队开始在一些大型科技公司中不断发展壮大)的肩上。

 

开发者认为,公司可能可以将工作时间的一部分分配给开源,这是解决时间和优先级问题的一个潜在的解决方案。79%的被调查开发者同意或强烈同意公司应该将部分工作时间分配给开源。在未来,开源贡献可以包含在开发者的工作描述中,或者公司可以将开源时间纳入到员工志愿者工作和大型企业常见的社会公益项目中。特别是在后疫情工作场所当中,员工现在比以往任何时候都更有可能希望将自己的时间和技能贡献给他们认为有价值的工作或回馈给社会。如果不鼓励将工作时间分配给开源项目或进行志愿者项目,公司可能会错过一个可以解决开源信任问题和员工参与度问题的解决方案。

 

激励参与开源的问题也可能是一个代际问题——经验较少的开发者(不足一年)比经验丰富的开发者更有可能在过去的一年中参与过开源项目。我们可以推测,也许更有经验的开发者在成长为更高级的角色时,会遇到更大的时间限制和带宽问题,这将取决于公司如何提供公平的竞争环境让所有类型的开发者都有机会参与到在公司级别的开源计划中。这看起来就像是在生产进度中为开源贡献和评审分配时间,或者让开源责任成为某些角色或头衔的关键组成部分。

 

最终,技术领导者、公司和个人开发者将不得不协同工作,有效地最大化开源为行业带来的创新和好处,同时又不失去社区和协作的整体价值(这是开源项目的关键)。就目前的情况而言,开源项目代表我们正在通过最好的、最具合作性质和最富激情的方式使用技术。开发者可以获得指导和新的机会,以最符合他们兴趣的方式发展他们的技能。正如大多数工程专业人士和团队领导者已经认识到的那样,工作场所可以多一点这种精神。

 

作者简介:

 

Al Sene 是 DigitalOcean 的工程副总裁兼架构总经理。Al 负责推动 DigitalOcean 关键服务和产品的创新和速度,以满足客户不断变化的需求。在加入 DigitalOcean 之前,Al 曾担任 DDN 和 NexGen Storage 的工程副总裁,后者被 Fusion-io 和 SanDisk 收购。他还在惠普担任过几个技术和管理职位,并持有存储专利。他在 St. Cloud State University 学习计算机科学,并在 Colorado State University 获得工商管理硕士学位。

 

原文链接

How Open Source is Contributing to Your Team’s Development: What Leaders Should Know


InfoQ 发布《中国开源发展研究分析 2022 》研究报告,为开发者,技术管理者,开源社区运营、市场,开源办公室工作人员以及其他对开源有一定基础认知,但期待进一步了解开源、理解开源的朋友,带来信息上的增量以及对开源趋势、开源人画像方面的关键洞察。

2022-08-17 08:002148

评论

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

近期焦虑有感

Nydia

Golang 入门指南

baiyutang

编程 程序员 Go 语言 9月日更

手撸二叉树之层序遍历

HelloWorld杰少

9月日更

Prometheus 2.21.0 新特性

耳东@Erdong

release Prometheus 9月日更

护士礼仪培训PPT模板-优页文档

momo

模板 PT模板 优页文档

饿了么4面(Java岗)面经分享,如何在面试中通过工厂模式来给自己加分

Java 程序员 后端

固定QPS压测模式探索

FunTester

性能测试 测试框架 压力测试 QPS FunTester

教你用Python 编写 Hadoop MapReduce 程序

华为云开发者联盟

Python hadoop 数据仓库 Hadoop Streaming Hadoop MapReduce

关于微服务系统中数据一致性的总结

看山

微服务 后端 数据一致性 引航计划 数据自洽

一种优于gzip的压缩方式Brotli

devpoint

9月日更 gzip Brotli

消息队列存储消息数据的 MySQL 表格设计

tjudream

数据库 索引 消息队列 架构训练营 表结构设计

【Flutter 专题】43 图解 Flutter 适配 AndroidX

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

1行代码爬CSDN热榜,Python哈啤酒式写法

梦想橡皮擦

9月日更

如何同时压测创建和删除接口

FunTester

性能测试 接口测试 测试框架 压力测试 FunTester

护理业务查房PPT模板-优页文档

momo

PT模板 T模板 优页文档

19. 今天的人工智能还不能做什么?

数据与智能

人工智能

内部岗位竞聘报告PPT模板-优页文档

momo

模板 T模板 优页文档

Vue进阶(幺贰零):父组件获取子组件验证结果

No Silver Bullet

Vue 9月日更

高并发下HashMap的死循环是怎么形成的,Java自学宝典pdf

Java 程序员 后端

什么是主数据

奔向架构师

主数据 9月日更

评审通过,开建!

浪潮云

云计算,

Cube 技术解读 | 支付宝新一代动态化技术架构与选型综述

蚂蚁集团移动开发平台 mPaaS

支付宝 mPaaS native 客户端 cube

医疗保健服务宣传和医疗咨询服务PPT模板-优页文档

momo

PT模板 优页文档 优页文档PPT模板

非科班程序员求职经历分享,Java面试知识点

Java 程序员 后端

AUTOSAR基础篇之DTC

SOA开发者

软件 汽车 OTA ADAS

Python对文件的操作

在即

9月日更

年终总结誓师大会PPT模板-优页文档

momo

模板 优页文档

非科班程序员求职经历分享,阿里P7亲自教你

Java 程序员 后端

饿了么4面(Java岗)面经分享,Java技术专家需要掌握的技能

Java 程序员 后端

高并发下HashMap的死循环是怎么形成的,Java基础知识点汇总

Java 程序员 后端

高并发下HashMap的死循环是怎么形成的,熬夜整理Java高频面试题

Java 程序员 后端

开源如何助力软件开发团队_开源_InfoQ精选文章