Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

4.7 基于使用价值的开源资助模式

使用价值和销售价值的区别让我们注意到关键事实:只有销售价值会受到闭源到开源这一转变的威胁,而使用价值则不会。

如果软件开发真正的主要动力是使用价值而非销售价值,并且(正如《大教堂与集市》中所论证的)开源开发确实比闭源开发更有效、更高效,那么我们应该能够找到这样的情景:仅凭预期的使用价值,就能可持续地资助开源开发。

实际上,我们不难识别出至少两种重要的模式。在这些模式下,开源项目全职开发者的薪酬完全来自使用价值。

Apache的案例:分摊成本

假设你在一家公司工作,该公司有个关键业务需求:需要一台能处理海量请求、可靠性高的Web服务器。它可能用来支持电子商务高频交易,也可能用来给高流量媒体做广告营销,又或者用来支持门户网站日常运维。服务必须7x24小时不间断运行、必须速度快、还必须具备可定制性。

为满足你的需求,有三种基本策略可供选择:

  • 购买专有Web服务器。 在这种情况下你赌的是:供应商的开发节奏和你的需求能对上,而且供应商的软件质量要过关、能及时响应你的需求。即使假设这两点都成立,产品在可定制性方面可能仍显不足,你只能通过供应商提供的钩子函数进行修改。从每月的Netcraft调查就可以看出,这种专有服务并不吃香,而且越来越不吃香。

  • 自行开发。 自己搭建Web服务器并非可以立即排除的选择:Web服务器并不算复杂,肯定比浏览器简单,而且专门的服务器可以非常精简高效。走这条路,你可以获得你想要的精确功能和可定制性,尽管你要用开发时间来兑现。当你退休或者离职时,公司怕是要接手这份祖传代码。

  • 加入Apache小组。 Apache服务器是由一群通过互联网协作的网管建立的,他们发现,将他们的成果集中起来共用一个代码库,比各自并行开发大量项目更明智。这么做之后,他们既保留了自行开发的大部分优势,又获得了大规模同行评审的强大调试效果。

选择Apache的优势非常显著,它究竟有多强,我们可以从每月的Netcraft调查中判断。该调查显示自Apache诞生以来,其市场份额相对于所有专有Web服务器稳步增长。截至2000年11月,Apache及其衍生版本占据了60%的市场份额(http://www.netcraft.com/survey/),它背后没有任何公司实体,没有做任何市场推广,也没有签约任何服务机构。

Apache的案例体现了一种模式:互相竞争的软件用户发现,合作起来资助开源开发对他们有利,因为这样做能让他们以更低的成本获得比其他方式更好的产品。

思科的案例:分散风险

几年前,思科(网络设备制造商)的两名程序员接到了一项任务:编写一个用于思科公司内部网络的分布式打印假脱机系统。这是一个相当大的挑战:除了要支持任意用户A在任意打印机B(可能在同一房间,也可能在千里之外)打印外,系统还必须确保在缺纸或墨粉不足的情况下,作业能够被重新路由到目标附近的一台备用打印机。该系统还需要能够向打印机管理员报告这些问题。

这两人想出了一套巧妙的修改方案,对标准的Unix打印假脱机软件做了修改(http://www.tpp.org/CiscoPrint/),还添加了一些包装脚本,顺利完成了任务。然后他们发现,他们自己和思科要面临一个问题。

问题在于,他们两个都不太可能永远留在思科。最终,这两位程序员都会离开,软件将无人维护,沦为祖传代码(即逐渐与现实世界条件脱节)。没有开发者愿意看到自己的作品落得这般下场,而这对勇敢的组合认为,思科付费购买解决方案,是基于一个并非不合理的期望:该方案的使用寿命能超过他们自己在思科的任职期限。

因此他们去找经理,强烈建议他批准将该打印队列软件作为开源软件发布。他们的理由是,思科不会损失任何销售价值,反而会有很多其他收获。思科可以激励一个遍布众多公司的用户和共同开发者社区发展壮大,从而有效地对冲软件原始开发者流失的风险。

思科的案例表明,开源不仅可以降低成本,还可以分散和减轻风险。所有参与方都发现,开放源代码,以及由多个独立收入来源资助的协作社区的存在,共同提供了一种本身具有经济价值的兜底机制,足以吸引资金为其买单。