本文翻译自 Red Hat 的文章 Open source software communities,解答了开源软件社区的常见问题。
-
问题:什么是开源软件社区?
答:开源软件社区是由一群人组成的,他们的共同目的是开发、维护、扩展和推广特定的开放源码软件。这些社区通常分布在全球范围内——他们的成员位于不同的地理区域,从事在不同的领域。将他们团结在一起的是他们对开源软件项目的共同愿景,以及友情和集体认同的精神,这也是他们的目标。
-
问题:什么是上游社区?
答:社区驱动的开源软件生态系统非常庞大,很难实现可视化,因此许多开发人员倾向于隐喻地描述它,而更喜欢使用航道(waterways)和支流(tributaries)。构成其他软件基础的软件被称为存在于该软件的“上游”。当“上游”软件发生变化时,这些变化流“下游”到依赖它们的开源项目。当在“下游”工作的程序员创造可能使他人受益的创新时,他们可以将这些更改提交给“上游”也就是其父项目,因此这些改进可以波及到使用相同上游项目的每个人。
-
问题:开源软件社区是如何形成的?
答:当人们同意共同开发和改进软件时,就会形成开源软件社区。为此,个人或团体构建软件必须通过发布该软件的源代码并明确授予他人复制,修改和重新分发该软件的权限(通常在特定的开源代码许可的条件下),才能使该软件对他人可用。由于开源社区在全球范围内分布,因此它们通常通过共享使用电子邮件列表,Discourse 之类的论坛和 GitHub 之类的代码共享平台在线形成。
-
问题:如何参与开源社区?
答:大多数开源软件社区没有正式的会员申请或批准程序。通常,人们只是通过为项目做贡献的方式参与到项目中,例如,通过修复软件代码中的错误、为应用程序创建新功能、编写和编辑文档、创建图标和图形、促进软件的采用、在会议和其他活动中代表该项目,或协助对软件有疑问的其他人。简而言之,人们由于对开放源码软件社区的贡献以及通过这些贡献而建立的良好声誉而获得了开源软件社区的会员资格。
-
问题:人们为什么加入开源软件社区?
答:人们出于许多不同的原因而加入开放开源软件社区。许多人之所以加入,是因为从事软件工作是他们工作的一部分,或者是因为其组织雇用了他们来开发软件,或者是因为他们的工作取决于该软件能否正常工作。他们加入了社区,因此他们可以直接影响他们(或其组织)所依赖的软件的开发。之所以加入其他人,是因为社区为他们提供了与他人一起工作并向他人学习的机会,从而提高了他们的技能。还有一些人加入是因为这样做可以使他们共同解决自己遇到的问题,以及他们相信为一套对所有人都有益的公共资源做出贡献的重要性。当然还有人是出于社交目的或身份和归属感而加入。
-
问题:组织为什么要参与开源软件社区?
答:组织越来越依赖于开源软件应用程序来执行各种关键操作,因为世界上许多最创新,最有效的应用程序都是开源的。因此,他们之所以加入开放源代码软件社区,是因为他们对这些应用程序的长期生存能力,稳定性和安全性进行了投资,而且通常是因为他们希望影响这些应用程序的功能和特性的开发。其他组织之所以加入开放源代码软件社区,是因为他们希望自己开发的软件成为行业标准,因此他们开放工作,希望其他人能够更快地采用和集成该软件。许多组织发现,与完全由内部开发应用程序相比,加入开源软件社区可以使他们拥有更广泛的人才库。
-
问题:组织如何开始参与开源软件社区?
答:考虑使用与你相同的方法参与开源社区。当你搬进一个新的社区时,在提出大的改变之前,先介绍自己并努力了解社区的历史、价值观和动态。通过执行小工作来结交新朋友。修复源代码中的错误、编辑文档、构建安装脚本,如果你的组织能够分配额外的资源来支持社区,可以考虑在活动中赞助该社区的活动,或者雇佣社区开发者,让他们能够花更多的时间在项目上。只是要注意的是,如果到了一个社区,一次接待的人数超过了它能舒适地接待的人数,可能会引起社区的反应,这对组织的长期目标可能会起到反作用。而且要明智地选择你的组织在社区中的最初参与者。
-
问题:作为市场竞争者的公司可以参加相同的开源社区吗?
答:是的,很多人都这样做。这些公司一致认为,在软件应用程序或标准上进行合作比开发不同、可能不兼容的技术更有价值。取而代之的是,他们的业务模式涉及在这些共享的技术基础之上构建市场差异化和产生营收创新。
-
问题:一个组织应该如何决定是否参与开源软件社区?
答:参与开源软件社区对企业来说有重要的组织、程序和法律意义。大多数认真投资于开源软件开发的组织都会资助内部的开源项目办公室,为组织提供有关开源社区参与的建议。其他组织则与 Red Hat 等行业领先的开源专家合作。