供应商和 原始设备制造商 (OEM)——以及他们的 IT 客户、政府和学术界——都在使用、购买和制作开源软件,而且通常同时进行这三种活动。这是一种思考一个人与开源软件项目关系的好方法。通常与开源软件项目相关的活动有三种:制作、使用、购买。
有时,人们对单个项目执行所有三种活动,例如,购买红帽高级服务器用于 IT 中的主要部署,同时使用 Centos 发行版进行开发和测试,并将一些错误修复贡献(制作)回 Centos 项目。在其他时候,人们与企业产品组合中的每个项目都有不同的关系,例如,购买 JBoss 支持应用程序服务器,同时使用 Fedora Linux(来自红帽),以及在开发中使用 Eclipse 集成开发环境 (IDE) 项目并为其做出贡献。
使用和购买宽松许可的开源软件相对简单。人们只是在消费该软件。人们购买基于开源许可软件的产品,方式与购买其他软件相同。人们根据自己的 IT 要求和管理采购风险概况评估供应商的产品。另一种说法是,您采购红帽 Linux 服务器软件的方式与您过去购买 Solaris 或可能购买 Microsoft Windows Server 系统的方式没有不同。
使用开源许可的软件项目(而不是购买基于它的产品)增加了额外的考虑因素,这些因素应考虑到其社区的实力以及通过开发内部专业知识或外部专家来支持该选择的成本。人们通过参与开源项目的社区来发展内部专业知识。
人们查看项目的文档和教程、论坛和电子邮件列表活动以及 IRC 频道。人们还应考虑社区周围的合同支持的可用性。无论正在考虑的开源软件是工具和系统还是开发人员库和框架,这些考虑因素都是相同的。无论人们是想要投入一定时间来解决问题的个人,还是想要大规模使用开源软件的 IT 部门,调查和权衡取舍都没有什么不同。
一旦人们开始制作开源软件,即生产它,就会有不同的考虑因素。以下是生产开源的两种情景
- 为现有项目做贡献,通过错误修复和新功能(以及文档和翻译等非软件贡献)增加价值。
- 启动一个新的开源项目,这意味着组织基础设施、开发初始软件以及为早期社区提供支持。
为开源项目做贡献的动机很简单。人们通常在成为贡献者之前就开始使用开源软件。他们使用它是因为它解决了问题。一旦他们使用该软件一段时间,他们就会遇到错误,想要进行更改,或者可能记录一个新的用例。如果用户可以轻松地进行软件更改,并且项目社区在使其易于贡献方面做得很好,则可以回馈贡献。
仅仅进行必要的更改并忽略对社区的回馈似乎很容易,但是生活在软件的个人分支副本中是有代价的。主要有两个问题:其他增强功能和错误修复无法看到和共享,除非安装较新版本的“官方”软件,并且如果升级,则需要重新集成分支软件。这可能需要大量工作。
如果可行,最好将更改贡献回项目社区,与项目维护人员合作以确保正确贡献并将其修补到主开发树中。社区有责任使其易于贡献,而贡献者有责任正确地做到这一点。随着分支分支越来越偏离项目的发展方向,生活在分支上的成本会随着时间的推移而变得更糟。值得投入精力来拥抱开发模型的效率并做出贡献。
从使用到贡献和参与现有项目的步骤很小。一家选择使用开源软件项目来解决其问题而不是购买产品的公司已经投入了足够的精力来学习该项目,因此贡献是一个简单的步骤,与生活在分支上相比,可以自动节省成本。贡献步骤很简单——即使有人为支持付费。
但是,创建自己的开源软件项目需要更多的谨慎和投入,我们将在博客文章中探讨这一点:制作开源软件:围绕项目成功的考虑因素。
最初发布在 OuterCurve 基金会博客系列中。根据 Creative Commons 重新发布。
2 条评论