竞争中合作:开源商业化的爱与恨

如果你的产品是开源的或者是“开放核心”的,那么面临的问题就是如何和竞争对手进行合作,或者说如何能够从众多的竞争对手中脱颖而出。

引子

PostgreSQL vs. MySQL、 MongoDB vs. Cassandra、 Solr vs. Elasticsearch、 ReactJS vs. AngularJS。如果你是一名开源界的人士,你一定由自己所热衷的开源项目,而这个开源项目一般均会由相应的竞争项目,甚至几乎是实现了相同的功能,而且都有各自的粉丝。尽管作为个体在开源项目中标榜着自己:“我们乐意分享我们的代码。”但是,作为开源的商业公司来说,却意味着充满竞争,和其它商业模式不同的是,开源在竞争中提供了独特的挑战和机遇。

我们不妨去想象一下:福特汽车在其最新款的汽车进入工厂之前,对外公布了此款车的最新设计、规格、流程乃至细节,又或者是Apple对于下一代的iPhone做了同样的事情。你是不是觉得很奇怪?但是这样的事情在开源界每天都在上演。更加出乎人们意料的还有,很多开源的公司本来是竞争关系,却会去为同一个项目做贡献。有时候还会引起公众的热烈讨论。举例来说,在搜索这个细分领域,Lucidworks、Elastic、IBM 都在为项目Apache LuceneSolr 贡献力量,而这三家在商业上完全是竞争关系,无独有偶,HortonWorks、MapR、Cloudera都为项目Apache Hadoop作贡献,但是这三家在大数据领域却竞争的异常激烈。

然后我们再回到福特/Apple的例子,假设他们真的发布了所有的细节,这是不是也就意味着通用汽车或三星电子会去花时间去了解这些计划,而不是走马观花的粗略审查一下?这是一个非常好的问题,而这也恰好说明了开源项目和商业竞争有着不一样的挑战和机遇。

我的一生都是和竞争对手作对抗,我无法想象没有竞争对手我会如何活着。 – Walt Disney

商业化,商业化,商业化(重要的事情说三遍)

无论你的竞争对手是开源公司还是闭源企业,你的立场已经是开源,你都需要在这里努力。如果有必要的话,竞争对手那些专有的关键特性,你必须去快速的、有效的、以更为低廉的方式来实现,从而降低其高昂的价格。举例来说,早期的 Solr 的主要竞争对手,尤其是在电子商务领域,叫做 Endeca 搜索(现在被 Oracle收购),那时 Endeca的用户,特别钟爱其的功能是多面检索,其可以在一组搜索结果中对具有特定属性的项目数进行计数的功能(例如,搜索计算机,多面可以显示多个关于32GB内存和16GB以及8GB的内容),Solr 1.0 并没有此功能,利用开源的力量,很快就添加了相应的功能。即使到了今天,Solr仍然全部都是免费的,而 Elastic 则不是。

但是这里要注意到,商业化只是你产品策略的一部分内容而已,要知道你的开源竞争对手可以对你做同样的事情。那么从商品的角度来说,也就意味着你面临缺乏差异化和进入门槛,这样你就永远面临低价的恶性竞争。在未来你可能会遇到单子虽多,但利润率很低的情形,你必须要有心理准备。

不要成为你自己最大的敌人

像绝大多数的商业公司一样,开源的公司也同样需要赚钱。这是企业的根本,为此公司的领导者就需要去理解客户会为什么而掏腰包(以及那些不会掏),对于那些出售许可产品的开源公司——不是卖支持与服务——这也就是通常的开放核心策略,即产品部分是开源的,部分是闭源的。这样的策略总是让人不仅觉得前途暗淡,而且自己的员工也会问:“为什么不使用开源的版本,而非要付费了呢?” 对于诸如由 Apache 软件基金会(ASF)这样的社区治理所驱动的产品尤其突出。

如果你打算使用开放核心这样的商业模式来的话,希望你已经有了明确的答案,而且要讨论和开发一个共享的愿景、如何为开源做贡献,而且让销售、开发者、产品管理、技术支持等共同获得。

Lucidworks 在开始的时候,就是采用的开放核心策略(即我们最初的产品),现在看来是非常失败的尝试。其实那时和 Solr 没有明显的区别。令人欣慰的是,我们现在已经走出了这个误区,我们最新的产品迭代正在变得更好,部分原因是我们解决了内部的冲突,很明确什么是开源的,什么又是应该属于我们产品的。

不要去做一叶障目的事情

在竞争对手为开源项目增加新功能的时候,人家向所有人展示他们将来实现的计划。这个时候,你要谨记下面几件事:

  1. 注意许可协议。如果你的竞争对手的许可证和你的许可协议不兼容的话,那么你就没必要去查看具体的实现情况,而应该去以更高层次的视野去看,如功能描述、具体讨论等。如果还有疑问,请咨询你的法律部门。如果许可证兼容并且代码很容易移植,你才可以随意的使用;否则,从头开始实现整个想法或者调整现有功能来处理此种情形则是更好的选择。
  2. 要尽量去避免过多在分析上花时间,因为执着于细节过于容易。我大学毕业以后所遇到的第一位老板曾经和我开玩笑说,你要和你竞争对手拉开距离的话,最佳方法就是把你的代码给ta,因为ta需要花费6个月乃至更多的事情,而这段时间你可以做更多让自己进步的事情。虽然这是句玩笑话,但却符合实际情形,竞争对手的大多数代码其实是不能直接使用的,若是要使用的话,请务必对代码进行彻底的阅读和分析,以确定这些功能是可以重现的。另外,也可以考虑利用销售和营销的弱点。当然,做类似的事情时,要看实际的情况,比如能够有多关键,不要过于频繁的做这些事,太过于浪费时间。
  3. 要有火眼金睛的能力,不能错过任何一个好的想法。有许多软件供应商都拒绝承认竞争对手正在改变市场或创造新的市场。几年前,我们在Solr中花费了大量时间来解决提升易用性的想法,例如无模式数据存储,以及其他NoSQL引擎成为其产品基石的可用性特征。我认为在很大程度上我们是超越了竞争对手,尤其是涉及到易用性方面(在某些方面甚至是压倒性的)。过了一段时间以后,取消了可用性,却阻碍了用户的采用,乃至有人认为Solr是为那些专家开发的系统。

竞争中合作:为什么做的正确的事却感觉是错的?

我“团队”中最优秀的两名开发者现在都离开了,他们也从来没有为我的公司工作过。事实上,他们目前都在我的竞争对手公司里任职,他们优秀的工作让 Lucene 和 Solr 更加的出色。这就是开源项目的现状,尤其是像ASF这样的基金会下。线条不会总是直的,人生也不会一直都是高兴的,事情得从长远来看,若是能够达到健康的平衡状态,你和你的竞争对手就都会受益。你毋需去和竞争对手进行直接的对话——你只需要知道你在代码中关心的内容,当然你也要知道对方关心代码的内容,然后据此而进行下一步的计划。

即使是在市场上彼此进行直接的竞争,而且更进一步,你们都可能在更广泛的市场上与许多其他公司和项目竞争。要记住,你不可能自己将全部的市场吞噬,你的竞争对手在某种程度上是帮助你拓展市场,进一步的扩大市场规模。鉴于兼并,收购和工作变化的现实世界,您可能会发现有一天,您正在与同样的开发人员合作,那么为什么不将代码库声明为 DMZ?你能够证明你为什么比你的竞争对手更好,那么你就能在更加广阔的市场腾挪。

活下去才是最重要的

对于我和我的公司来说,2013年末和2014年初,这段日子是最为煎熬的时期,我们的社区被众多的竞争对手所包围,似乎是被压制了,而公司内部则是在争论“公司是不是可社区名一致”,而且我们强调了一种未分化的商业产品。事后看来,我们也遭受知识认知偏见的诅咒,并没有认识到人们开发应用程序的方式的心态以及为什么会这样。

从积极的一面来讲,我们深刻了解我们的开源项目具备高质量、久经验证的功能,而且我们还拥有强大的社区,这些是不可能在一夜之间消失的。我们还在机器学习方面有着不错的表现,也围绕自然语言处理开发了很多高级功能,高质量相关的特性引起来人们的更多关注,也让人们从基础版本迁移到高级版本,相对易用性方面,人们似乎已经不再那么的看重。(谁会去关心这样一个产品? —— 第一周很好使用,但是却不能用于生产环境还丢失数据。)

我们还有这样一个直觉,那就是人们必然会对管理 Hadoop 技术栈的复杂性而对大数据产生某种畏惧感,所以我们应该提供更加简单的、易于管理的解决方案。更重要的,我们还有些现金,支持我们董事会,以及新近加入的新人,而且要改进我们的产品架构,以解决前面提到的二分法问题(开源和销售)。

我们是如何活下来的?首先,我们聚焦于我们的下一代产品,而且是花大量时间去做的那种,通过节省成本、紧缩开销。第二,我们专注于构建一个补充开源产品的架构,所增加的有价值的是那些社区并不感冒也不愿整合的内容,但是这些都是客户所需要的。很幸运,我们成功的做到了这点,我们也聚焦于创造一种制胜的文化。现在返回头再来看,我认识到那段难熬的岁月,对于企业来说是至关重要的,因为它教会了我们:不仅仅是客户是重要的,我们自己也很重要。

引用Rascal Flatts的一句话:“破损的道路能够让我们更加的认清自己。”

聚焦于你所能控制的

尽管我在本文中花了大量的篇幅来探讨竞争,但是你最好还是将精力聚焦于自己公司可以控制的部分:

  1. 你的员工是谁?具备怎样的技能、三观、健康等。
  2. 你开发了什么样的功能?能够显得与众不同,特别是当你处于合作状态时。
  3. 打算如何切入市场?(定价、营销等策略)
  4. 帮助使用了你产品的客户获得业务上的成功。(而且在客户没有实力去做的时候,你要去理解并且要及时的修复问题。)
  5. 你愿意质疑你的信念,在错误中学习,并寻找前进的道路。(无论你是否能够从错误中吸取教训,但是可以确定的是别人正在进步。)

进化

虽然Lucidworks在各个方面都取得了一些进展,但是仍然在摸索中,只有时间才能说明我们的方法最终是否能够取得成功。而能够证明这点恰是我们创建公司的动力,敬请关注!

关于作者

Image of author 1 Grant 是Lucidworks的联合创始人兼首席技术官,是由曼宁出版社发行的《驾驭文本》的联合作者之一,也是 Apache Mahout 的共同创始人,而且还是 Apache Lucene 和 Solr 开源项目的长期贡献者。Grant 过去的工作经验包括各种搜索的引擎、用于各个领域和语言的问答和自然语言处理应用。他拥有阿默斯特学院的数学和计算机科学的学士学位,以及雪城大学的计算机科学的硕士学位。在空闲时间,他享受与家人待在一起,业余爱好由骑自行车、攀岩和徒步旅行。

本文由作者Grant Ingersoll 发表在Opensource.com上:Coopetition: All’s fair in love and open source。由开源之道翻译共享。本文在Creative Commons BY-SA 4.0许可证下发布。