开源项目 RethinkDB 关闭,创始人总结失败教训(市场定位错误)

当咱们宣布RethinkDB关闭时,我答应写一个调查分析。我花了一些时间来整理所得的教训和经验,如今能够清楚地写出来。html

HN讨论贴中,人们提出了许多关于为何RethinkDB失败的缘由,从莫名的人性和聪明的MongoDB营销人员;到没有创建一个有经验的上市团队;再到缺少支持超过64-bit float 的数字类型……我将这些意见集中到这里git

其中一些缘由确实是真的,但它们是症状而不是缘由。例如,说咱们未能赚钱的,它并无说明咱们失败的缘由。github

过后看来,有两个重要的缘由致使了咱们的失败 —— 咱们选择了一个可怕的市场,并地按照错误的指标对产品进行优化。每一个错误均可能使RethinkDB的估值下降一到两个数量级。所以,若是咱们认为它们其中之一是正确的,那么RethinkDB将是MongoDB的大小,若是咱们认为它们两个都是正确的,咱们最终多是红帽的大小(不要觉得这些数字很接近,它会让你知道这些错误的代价)。数据库

可怕的市场api

咱们的想法是这样的:新公司不是在Oracle之上构建的,因此有机会创建一个新的基础设施公司。数据库市场十分巨大,若是咱们建立一个可以俘获一部分市场的产品,咱们的公司将会十分红功。架构

不幸的是,你并不在你本身认为的那个市场上,而是在你的用户认为的那个市场上。咱们的用户认为咱们是一个开源开发工具公司,虽然这就是咱们原来的想法。这是很是不幸的,由于开源开发工具市场多是最糟糕的市场之一。成千上万的人在商务背景下使用RethinkDB,但大多数人甚至不肯意支付一杯星巴克咖啡的价格(这就是说,他们不肯意支付任何东西)。工具

这不是由于产品好到不须要别人的支持,或是开发者不控制预算,或者资本主义的失败。答案是基本的微观经济学。开发人员喜欢建立开发人员工具,而且一般是免费的,因此虽然有大量需求,但供应却十分充足。使得替代品的数量上升,价格降低到零。性能

看看其余公司如何:MongoDB(市值约为1.6亿美圆,约700名员工)和Docker(市值约为1B,约300名员工)。两家公司彻底在各自的市场占主导地位。成长阶段的民营科技公司两个很是粗略的经验法则是:估值是年收入的10倍,每位员工的收入大约为每一年2万美圆。这意味着MongoDB的年收入约为140-1.6亿美圆,而Docker的年收入约为60-1,000万美圆。学习

这看起来不错,直到你看到市场上那些不是专一于开发者工具的主要的 B2B 技术公司。像SalesForce,Palantir或Box(面临激烈的竞争)的公司。忽然MongoDB和Docker看起来很弱。开发工具

这些都得到了巨大的成功。若是和现有的公司创建合做关系,分销基础设施和获取大量帐户将麻烦不断,那么对于一个处于萌芽阶段初创公司意味着什么呢?

对咱们来讲,这意味着一个难以处理的客户收购渠道。在一个肥沃的B2B市场创业必须处理一百个潜在客户才能得到十个机会,最终得到一个销售,对于一个开发工具的初创公司增长了10倍的机会。您能够访问大量的高品质潜在客户 - 不少人正在下载您的产品和与您的互动,但你必须花掉很多的线索才能获得一个订单。

这是具备灾难性的多米诺效应。它使团队的士气,使吸引投资和聘用顶尖人才变得很是具备挑战性。反过来,这限制了您的资源,使您不能在产品和分销方面进行充分的投资。初创公司的生存仍是死亡靠的是动力,早期的分配挑战几乎能致使最终的死亡。

错误的度量指标

好了,虽然市场很差,但其余开发工具公司仍然销售了不少产品。为何不是RethinkDB呢?

虽然咱们没法干预市场的动态(除了创建别的东西),产品决定权却彻底在咱们的控制以内。咱们但愿打造一个优雅,健壮,美观的产品,所以咱们对如下指标进行了优化:

  • 正确性。咱们做出了很是严格的保证,而且严格履行。

  • 接口的简单性。咱们承担了实现过程当中大部分复杂性的工做,因此应用程序开发人员能够更轻松。

  • 一致性。咱们作到了从查询语言,客户端驱动程序,群集配置,文档,到首页上的营销副本都尽量一致。

若是你以为这些权衡彷佛很熟悉,他们是“ worse is better”(即快速拿出原型,听取用户意见,而后继续增长功能,修复bug)。原来,正确性,接口的简单性和一致性是大多数用户的错误衡量标准。相反,大多数用户但愿这三种标准:

  • 及时。他们但愿产品在须要时就存在,而不是三年后。

  • 可触知速度。人们但愿RethinkDB可以快速实现他们想要的工做负载,而不是咱们建议的“真实世界”工做负载。例如,他们会写快速脚原本测量插入一万个文档须要多长时间,而不会读取它们。咱们输掉了市场学习这一仗时,MongoDB巧妙地掌握了这些工做负载。

  • 一个有用的东西。咱们开始创建一个好的数据库系统,但用户想要一个好的办法来实现某件事(例如,一个很好的方法来存储来自hapi的JSON文档,一个很好的方式来存储和分析日志,一个很好的方式来建立报告等)

不是咱们没有试图让RethinkDB快速发货,并创建其周围的生态系统,让有用的工做作起来更加容易。咱们作到了这一点。可是正确、简单和一致的软件须要很长的时间来构建。这使咱们落后市场三年。

当咱们以为RethinkDB知足了咱们的原来的设计目标,咱们有信心让它投入生产使用时,几乎每一个人都问“RethinkDB与MongoDB有什么不一样?”咱们努力解释为何正确性、简单性和一致性更加剧要,但这些并非大多数用户最重要的评判标准。

老实说,它受到很大的打击。很难理解,为何人们会选择一个几乎不作它应该作的事情(存储数据)的系统,而且还有一个大的内核锁,随机丢弃错误,实现单节点功能,有一个几乎不工做的分片系统,尽管它是产品的核心特征之一,基本上不能保证正确性,而且暴露了没有可辨别的一致性或视觉一致性的接口。

每次MongoDB发布一个新版本,人们会祝贺他们作出改进,这让我感到悲哀。他们会宣布他们修复了BKL,可是事实上他们会把粒度从一个数据库降到一个集合。他们会添加更多的操做,而不是一个适合系统其他部分的组合接口,他们只是简单地使用一次性命令。他们会作分片改进,但很明显,他们不肯意或者不能作出基本的数据一致性保证。

但随着时间的推移,我学会了欣赏人群的智慧。当人们须要的时候 MongoDB能将普通开发者变成英雄,而不是几年后。它使数据存储速度快,让人们快速收货。随着时间的推移,MongoDB长大了。他们解决了一个接一个的架构问题,如今它是一个优秀的产品。它可能不像咱们想要的那么完美,但它把本身作的工做作得很好。

2014年咱们已经清楚地意识到本身在竞争中处于劣势,咱们努力与MongoDB区分开来。咱们发现了一种很是优雅的方式来添加实时推送,但愿可以让开发人员构建一代他们以前没法构建的应用程序。但这还不够。忽然,咱们发现本身正与咱们几乎忽略的致力于解决实时问题多年的Meteor和Firebase在竞争。咱们再次落后了市场三年,而后咱们发现本身已经彻底败下阵来。

云服务

有几我的建议咱们应该创建一个云服务。咱们实际上有一个这样的做品,因此这是个我想说的有趣的话题。

小型数据库公司构建云服务的明显问题是它的模式匹配一个常见的启动失败模式 - 分裂焦点。构建、运输和运营可靠的多租户云服务是很困难的,它须要非凡的专业知识和资源,因此若是你沿着这条路走下去,你发现本身像是同时运行两个创业公司。可是咱们面临着一个存在的威胁,并迅速作了选择,因此咱们只能给它一个短镜头。

咱们的推理是这样的,数据库云提供的服务能够是如下三种之一:托管,数据库即服务(DBaaS)或增值平台即服务(PaaS)。使用上面提到的每位员工的收入大约为每一年2万美圆的经验规则,快速回溯一下市场分析:

因此这些市场很小,甚至比数据库市场自己更小。可是,他们的其中之一能比别人更好吗?

托管主机本质上是为AWS上的人运行数据库,所以他们没必要这样作。使用这些服务的替代方法是本身在AWS上设置数据库。这是痛苦的,但它不是那么难。但有一个很是困难的上限,多少托管数据库托管服务能够收费。考虑到Compose.io和mLab提供的MongoDB的用户数比RethinkDB多一到两个数量级,咱们认为提供托管托管不会产生影响。

数据库做为服务是一个更复杂的托管托管版本 - DBaaS提供从用户抽象节点管理彻底。你只需运行你的查询,系统处理它们。你不知道有多少节点在引擎盖下运行。这个业务是很是具备挑战性的 - 部分是由于DBaaS公司必须与巨人(例如DynamoDB和DocumentDB)竞争,部分是由于当有不少其余替代品和替代品时,客户彻底把数据管理交给创业公司是很是困难的你知道谁在使用一个启动的DBaaS产品吗?)因此一个DBaaS产品出来了。

最后一个选择是创建一个增值平台做为服务。咱们认为这颇有前途,由于在这方面咱们有巨大的技术优点。 Firebase和Meteor必须在MongoDB之上构建应用程序级实时逻辑,从根本上限制了实时查询功能和性能。另外一方面,咱们一路控制堆栈,因此咱们具有Firebase和Meteor所没有的显著的优点。

所以,咱们建立了Horizon,并开始致力于Horizon Cloud - 这是用户部署和扩展RethinkDB / Horizon应用程序的一种方式。一个很是小的团队创建三个大型项目(RethinkDB,Horizon和Horizon Cloud)的挑战最终遇上了咱们,咱们历来打算在咱们用完钱以前放弃云服务。把掌声送给工程团队,他们已经很是很是接近成功了。

元问题

咱们还能够作一个级别的根本缘由分析。咱们为何会选择一个很差的市场,并按照错误的指标优化产品?

当我仍是个小孩子时,我想要创建本身的收音机。我用胶合板作了一个盒子,里面放了一些金属垃圾,把盒子链接到电源线。我在家里有电子书,但我没想过本身须要他们 - 我有坚决的信念,我能够本身作。最终,我创建了一个工做接收器,但我花了不少年才终于意识到我须要学习基本的电子学。

早期的RethinkDB有点像这样。咱们对产品或市场没有直觉,因此咱们经过了创建一家公司的议案,而没有真正了解咱们在作什么。更重要的是,咱们有很大的乐观偏见(人类倾向于把将来估计得比实际状况更好。)。就像医生知道,制药公司的礼物对其余医生有偏见效应,但相信他们免受这种影响,咱们相信咱们免受经济和经营业务的数学法则的影响。数学,固然,最终让咱们尝到了苦果。

咱们能够作些什么来避免这些错误吗?如今已经不是那个本身搬弄一个能够工做的收音机的那个孩童时代。不知不觉间,咱们已经不能胜任,并且这种无力感要若干年以后才被意识到。

有几我的指出,若是咱们创建了一个有经验的上市团队,咱们会作得更好。这100%是真的,但咱们我的发展的时机不符合公司的需求。最初,咱们不知道咱们须要进入市场的专业知识,因此咱们不想将它包括在创始团队(顺便说一句,没有良好的商业直觉,认识好的业务人员就像,对工程没有强烈的直觉却要认识优秀的工程师同样难)。当咱们作好心理准备时,咱们发现本身在一个尽是有能力的竞争对手的市场里,却资金短缺,只有一个三年后的产品。到那时,世界上最好的上市团队也救不了咱们。

离别的思念

许多人对开发工具市场有很是强烈的感受。工程师喜欢构建开发工具,因此他们很想让开发工具公司茁壮成长。

我彻底不理会市场——由于我不想用单一的经验进行推广;由于我不喜欢说“它不能作”;由于有不少例外。 GitHub,MongoDB和Docker已经创建了强大的公司。 GitLab和Unity彷佛作得很好。

若是你打算创建一个开发人员工具公司,请必定要谨慎细心。市场充满了不少好的替代品。用户指望高,价格低,认真思考你为客户提供的价值。记住——想要世界往某个方向走没必要必定要让它如此。

2009年,咱们在YCombinator演示日把RethinkDB(咱们尚未软件)的早期想法展现给投资者观众。咱们在结束的幻灯片上写了三点要记住的。 “若是你只记得RethinkDB的三个事情,”咱们说,“记住这些。”人们没有记住幻灯片的其余东西,但在结束时他们确实记住了三点。

若是你还记得这篇文章的任何内容,我但愿你记住这三点:

  • 选择一个大市场,但为特定用户制造产品。

  • 学会认识你失去的才能。

  • 系统地读经济学。它会让你更快更好。

编译自:http://www.defstartup.org/2017/01/18/why-rethinkdb-failed.html

编译:开源中国

http://www.oschina.net/news/81180/rethinkdb-why-we-failed

相关文章
相关标签/搜索