定义每个开源项目的 3 个关键要素

还没有读者喜欢这个。
open source work experience

Opensource.com

在过去的 30 年里,开源已经取得了长足的进步,并正在进入大多数现代文化的意识。当想到开源项目时,人们会以多种方式对其进行分类:治理结构、产品平台类型、编程语言、实用性、技术细节(使用的语言)、行业赞助或完全独立等等。

但是,真正定义任何开源项目,使其成为与其他所有开源项目不同的独特实体的又是什么呢?我建议,任何开源项目都有三个关键要素,它们构成、定义和区分该项目与所有其他项目:代码、社区和品牌。

代码

代码是王道。代码使产品能够做某事,这就是开源项目最初存在的原因:构建有用的东西。技术人员对代码的作用以及它如何实现其功能感到兴奋。营销人员对产品将如何解决客户的问题感到兴奋。代码是大多数人在搜索要使用的开源项目时所寻找的东西。

听起来很简单——那么为什么我们不纯粹根据代码来定义一个开源项目呢?任何从事软件开发工作的人都知道,代码是不断变化且转瞬即逝的。在开源领域,摆脱了企业主导项目的传统控制,“代码”可能变得非常难以追踪:开源代码是无限可分叉的。一旦您的代码根据开源促进会 (OSI) 许可签入公共存储库,任何人都可以完全访问并获取——并修改——以用于自己的目的。一旦另一个用户从您的项目分叉代码并进行轻微修改,它就不再是您原始项目的正式组成部分。

社区

如果代码是一个项目的“内容”,那么社区就是项目的“人”——使这一切发生的人。项目的核心社区包括积极参与推动项目前进的任何人,例如编写代码的工程师以及提供反馈或请求特定修改的最终用户。总体社区还包括不检查代码但提供支持的人员,例如治理/流程监督、公共关系/营销、培训或财务或就业支持。社区的社会规范、礼仪和精神有助于区分一个项目与所有其他项目。

虽然参与开源项目可能是某些人有偿工作的一部分(例如,公司雇用的软件工程师被分配在一定比例的时间内从事开源项目),但大多数开源社区成员都是自愿参与的,与他们的薪水没有直接联系。因此,成员倾向于来来去去,因为他们的兴趣或其他承诺会时起时伏,或者随着雇主改变策略而变化。与代码一样,社区也是不断变化的。

与可以计划拥有具备特定技能的员工来分配做特定工作的公司软件开发项目不同,参与开源社区是不可预测的,并且通常超出项目的控制范围。个性冲突会发生,并且可能导致高技能贡献者比他们离开有偿工作更容易离开社区。但是,开放社区的好处可以在许多社区成员的热情和动力中,以及在成功项目社区的持久性中,以及在代码的同步性和出色的工作中看到。

品牌

品牌是外部世界了解开源项目的方式。当个人或公司决定使用或投资哪个项目时,品牌有助于他们区分提供类似功能的项目。当然,他们会考虑其他细节,但更容易想到“我想支持带有黄色大象的 Hadoop 吗?”而不是“我想支持 Cloudera 的 CDH 还是 Hortonworks Data Platform,还是新发布的 ODP?”

“品牌”包括许多内容:项目的正式名称、项目或产品的徽标,甚至项目网站和产品 UI 的外观。特别是某些品牌组件是法律商标:这些通常包括官方软件产品名称和徽标,尽管商标在一致使用时最有效。

与代码和社区不同,项目的品牌不是一成不变或转瞬即逝的。未经法律许可,商标不能被分叉,即使社区成员人数波动,项目品牌也可以保持一致。在许多方面,品牌和商标是一个项目中可以最容易控制和维护的要素。但是,正确的商标使用可能会被项目内部的社区忽视或低估——作为定义项目独特特征的重要工具。鉴于任何人都可以分叉代码,并且社区成员来来去去,项目的品牌和商标是维护项目持久性和独立性以及继续吸引新项目贡献者的关键要素。

Apache
Quill

本文是 Jason Hibbets 协调的 Apache Quill 专栏的一部分。通过发送电子邮件至 open@opensource.com 与我们联系,分享您在 Apache 软件基金会项目中取得的成功案例和开源更新.

Shane Curcuru - Ask Me about Apache! Image Credit: Julian Cash
Shane 是 Punderthings℠ LLC 咨询公司的创始人,该公司帮助组织找到更好的方法来参与为现代技术和业务提供支持的关键开源项目。他撰写博客和推文,内容涉及开源治理和商标问题,并在 ApacheCon、OSCON、All Things Open、社区领导力峰会和 Ignite 等主要技术会议上发表演讲。

3 条评论

社区与代码一样重要。所有成功的开源项目背后都有一个伟大的社区在支持。
大约 4 年前,我的一个朋友开始从事一个开源项目,他邀请我加入他的项目,我开始与他合作。
我们完成了第一个版本,效果很好,但未能引起其他开发人员和用户的注意。有时,有人会给我们发消息感谢我们的伟大项目,但采用率并没有达到预期。

我们继续从事该项目,我们需要您的建议,以引起开发人员和用户的更多关注,也许我们可以在不久的将来创建一个社区来支持我们的项目。

感谢您的评论!您完全正确 - 努力改善您项目的品牌,或项目向世界展示自身的方式,是努力吸引新贡献者的关键。

这分为两个部分:覆盖范围和兴趣。努力扩大覆盖范围 - 真正将您的信息传递给世界 - 可能很困难,但您可以通过坚持不懈并在不同的地方撰写有趣的内容来实现。

兴趣更难。开源是展示新想法的好地方。但是,现在有太多的新开源项目,您还需要一些有趣的东西来吸引人们。用简单的方式解释您的产品将如何为用户解决问题是关键 - 但实际上遇到该特定问题的用户数量通常是有限的。特别是,向一些公司展示您的软件如何解决他们客户的问题是获得贡献者的另一种方式。即使在较小的项目中,所有开源工作中也有很大一部分是由公司付费工程师提交他们想要用于其业务的代码来完成的。如果您可以找到一种方法让一些公司对您的项目出于自身目的而感兴趣,那也可能很好。只需确保您有明确的许可即可。

谢谢!
- Shane

是的,一个项目超越了代码,社区是关键点之一。在 Bitergia (http://bitergia.com) 中,我们多年来一直在分析 FOSS 社区,并且我们已经看到,通常人们认为与项目成功无关的领域有多么重要

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.