快手、孩子王、华为等专家分享大模型在电商运营、母婴消费、翻译等行业场景的实际应用 了解详情
写点什么

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

作者: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:002239

评论

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

架构师训练营第四周总结

薛凯

架构师训练营第一周课后练习

薛凯

Java进阶架构师面试手册:核心框架篇整理,助我斩获65W架构师Offer!

Java架构追梦

Java 学习 架构 面试 框架

架构师训练营第三周课后练习

薛凯

架构师训练营第一周总结

薛凯

iOS底层原理之—dyld与objc的关联

iOSer

ios ios开发 iOS Developer dyld objc

每周花6小时跟清华大牛马士兵学Java:多线程高并发、JVM调优、算法、设计模式等

Java架构之路

Java 程序员 面试 算法 编程语言

Java 中的反射是什么

Rayjun

Java 反射

2020.10.05-2020.10.11 学习总结

icydolphin

极客大学架构师训练营

SpringBoot整合Jpa项目(含Jpa 原生sql语句介绍)

小Q

Java 架构 微服务 springboot jpa

[周末荐片]Undercover Billionaire

亚伦碎语

生活

十四、深入Python条件和循坏

刘润森

Python

Redis - redis.conf - 中文翻译

小方

redis 缓存 翻译

ARTS Week13

丽子

分布式系统中的CAP、ACID、BASE概念

编程 分布式

架构师训练营第三周总结

薛凯

第四周 系统架构作业

蓝黑

极客大学架构师训练营

十三、深入Python字典和集合

刘润森

Python

LeetCode题解:22. 括号生成,递归先生成再过滤,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营第四周课后练习

薛凯

来点不一样的: 精选200个Java技术面试真题,详解应聘Java程序员常见考点,在Github上标星89.6K

996小迁

编程 程序员 架构 面试

微服务已成Java开发的面试门槛,你连SpringCloud都不会怎么涨薪

Java架构之路

Java spring 编程 程序员 面试

阿里云服务器搭建

时间是一个人最好的证明

阿里云 服务器 域名

Go 语言内存管理三部曲(二)解密栈内存管理

网管

堆栈 内存管理 内存布局 Go 语言

spring-boot-route(十七)使用aop记录操作日志

Java旅途

Spring Boot aop

COSCon'20 & Apache Roadshow 来了,数据技术专场欢迎您

代立冬

轻量级业务中台开发框架,以DDD思想为基础,融合中台核心要素,赋能中台建设

高鹏

中台 业务中台 DDD 框架 中台架构

第四周作业

icydolphin

极客大学架构师训练营

学习笔记丨数据结构与算法之贪心算法

Liuchengz.

贪心算法

阿里大牛原创技术好文精选整理:Redis+Nginx+设计模式+Spring全家桶+SQL+Dubbo

Java架构之路

Java 程序员 面试 编程语言

从格力直播看品牌商的渠道变革

boshi

数字化转型 品牌 直播带货 优化业务

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