赞助开源社区开发是一件双赢的事情

为那些开发开源软件项目的人们付费,这听起来是不是有点让人困惑和奇怪?但是,那些有眼光的企业家,是可以看到更远的蓝图的。

在常人的想法中,以为开源是有魔力的,认为自己只要开源了,就会有人蜂拥而至,那些个大牛们就会放弃自己的周末和下班休闲时间,来纷纷的、争先恐后的为项目做贡献。嗯,我现在告诉你,你错了,错的非常离谱,属于典型的幻想症患者。要不GitHub上有那么多无人问津的项目是怎么回事了呢?是的,大家都很忙,忙到无暇顾及这些。所以,除极个别的情形之外,指望程序员利用业余时间来为开源项目作贡献,是不合常识的。从头打造一个贡献者是需要花时间和精力的,而复杂的应用程序往往有着陡峭的学习曲线,经过那之后开发人员才能熟练的掌控代码。

开源软件公司往往就是那些大量的开源软件开发背后的支撑力量,构建社区以及为他们提供金钱上的支持,而且,要知道,开源软件公司和其它类型的商业公司一样————需要盈利来维持。

那么作为用户,为开源软件提供赞助,是颇为不错的一个选择。我们知道,现在开源软件是主流,具黑鸭子的调查,企业有超过60%的在使用开源软件,那么在使用的过程中,难免会出现现有的无法满足需求的时候,那么这个时候为那些开发公司提供付费,这样不仅能够让用户得到满足需求的功能,而且也让开源软件公司利用其在应用程序方面的专业知识来开发和销售能够满足最终用户需求的服务或产品。这就是双赢的局面:让软件更趋完善,也能够持久的发展。

举例来说,想象一个企业正在使用一种专有软件,只是因为它具有开源平台所缺乏的功能。如果他们为此应用程序付一年的维护合同费用,就会大大的节省成本,而且更进一步,如果他们和软件开发公司所签约,使得新开发的功能添加到已有的开源平台,将会大大减少自己使用各种工具的数量。

为什么说赞助开源开发是有意义的

我们都有使用非开源软件的经验,他们的开发治理是叫做主服务协议(MSA)的,通常会使用诸如下面这样的语言:

“Consultant hereby assigns to Company all right, title, and interest in and to any work product created by Consultant, to which Consultant contributes, or which relates in any way to Company Property pursuant to this MSA (‘Work Product’), including all Intellectual Property Rights therein and thereto. Consultant retains no rights in the Work Product and agrees not to challenge the validity of Company’s ownership in the Work Product.” (法律语言,译者能力有限,暂不翻译。)

而这在赞助开源开发的合同中则不会出现上述的问题,因为开源软件当初就是为了被分享而创的,开放源代码许可证赋予企业在其组织内可以无限制地使用该软件的权利,因此不需要分配工作产品所有权。但是这也会带来另外一个问题:通常情况下,由赞助商付费所赞助的功能对于所有的企业都是受益的(而且开发者也愿意去提供出来)但是根据开源许可证的条款,任何组织都可以使用它。那么这样就会有不公平的感觉:很多赞助商就会问为什么是我支付钱,而其他人却可以免费享用?下面我来慢慢的解释。

首先,赞助开源开发必须具有商业意义,(如果没有的话,请你无论如何都不要去赞助)。假设一家公司每年要为专利软件支付50,000美元的维护费用,而开源替代品却缺乏一个非常关键的特性。如果在开源平台上开发该功能的成本较低,那么该公司就可以选择赞助开源,从而达到降低软件成本的效果。另外,如果发起人等待其他人开发它(假设它很快会被开发出来),那么赞助者将更快地访问该功能。

第二,若是赞助商赞助了,那么所要求的功能就会被更好的满足,更加的精准,而且在生命周期内也会得到更好的支持。我们打个比方,如果说赞助方需要一个“蓝色”的功能,而其它所有人都需要的是“紫色”的功能,那么赞助商就可以获得一个“蓝色”的选项,而不是直接被抛弃。

最后,由赞助商所支持的开发已经完成了不计其数的开源软件,而这些是让我们所有人都受益的。某公司赞助开发了功能A,另外一个公司赞助开发了功能B,等等以致无穷。每个使用该软件的公司都可以从所有这些工作中受益,所以如果公司赞助功能 C 是有商业意义的,那么他就没有理由不这么做。

对于最终用户公司来说,开源软件的关键特性通常从商业角度来看是有意义的,它可以帮助开发者利用他们在某个软件平台上的专业知识来推进他们的项目。赞助开发对于赞助公司和开源开发者来说是完美的双赢局面——更不用说对于整个社区都能从中受益无穷。

关于原作者

Tarus Balog,在被淘汰出国内一些最好的大学之后,经过七年的努力获得了电子工程学学士学位,然后进入了电信行业。在工作中,Balog经常遇到电话交换机和PC通信的项目,这从而让他对大型通信网络的创建和管理产生了兴趣,之后就进入了数据通信领域(当时他们是分开的),并开始使用诸如HP的OpenView和IBM的Tivoli等商业网络管理工具。在2001年,开始工作在 OpenNMS 项目中,OpenNMS项目的目标是做一个商业网络管理工具的开源实现。在2002年5月,开始成为了 OpenNMS 的管理员,并开了一家服务公司来提供商业支持。现在Balog 是 OpenNMS 公司的 CEO,目前 OpenNMS 算是初创但盈利的公司,在三个国家拥有十几名员工,拥有二十一个重要客户。尽管如此,Balog 还是喜欢在自己的邮件上签名为“ OpenNMS 维护者”,他的 Twitter:@mouthofopennms

本文由作者Tarus Balog 发表在Opensource.com上:Sponsored development is a win-win for users and developers。本文在Creative Commons BY-SA 4.0许可证下发布。由开源之道精心编译,欢迎转载!