尽管标题有些自命不凡,但本文的目的并不是展示一个成功的故事,也不是基于无用的陈词滥调和老生常谈来给出一些“热门提示”。我只想分享一些关于我几乎整个职业生涯都在其中度过的公司的故事。关于这项服务如何在一个遥远而寒冷的城市雅库茨克诞生,我从工程师的角度分享了我对 inDrive 的看法。
大家好!我叫 Michil Androsov,在inDrive工作已有 10 年了。我加入公司时,开发团队只有三人,离开时担任 CTO,手下有 500 名员工。多年来,该公司已从一家本土初创公司成长为拥有全球顶级基金数亿美元投资的独角兽公司。
inDrive (原inDriver,“ Independent Driver s”的缩写)是雅库茨克(萨哈共和国首都)的一项叫车服务,与其他服务有一个很大的区别:行程费用由乘客自行决定。
与竞争对手不同,inDrive 的定价模型不涉及基于数百个标准的复杂算法。整个系统尽可能透明,只有两方参与该过程:司机和乘客,他们相互协商票价并商定对双方都适用的价格。这是一个自平衡系统。
萨哈共和国,也称为雅库特,是位于俄罗斯联邦远东的一个共和国。主要居住着当地土著雅库特人,但文化相当多元。该共和国以气候极端恶劣而闻名。
这就是为什么这项服务在雅库茨克出现的原因。在我的书中,有两个原因解释了这一点:
气候寒冷。随着室外气温降至零下 50 摄氏度,人们倾向于呆在家里,而不是去公园散步或去大自然远足。他们必须找到让自己娱乐的方法,而且他们常常把时间花在电脑前。再加上该领域有很多专门关注物理和数学的顶尖学校,这些孩子中的很多人都有可能成为程序员。至少,我是这样向自己解释的。
与大陆隔离。因此,互联网非常昂贵且缓慢。互联网与无线电中继技术一起工作。而且你必须为每一兆字节付费。从互联网上下载几部电影就可能花费一个工人的工资。因此,互联网服务提供商的员工会从大互联网上下载一些东西并将其放在内部网上。我记得有些人甚至从事卫星钓鱼。
正是由于这两个因素,雅库茨克最终拥有了自己的“互联网”,以及互联网门户Ykt.ru (目前已关闭) - 本地门户网站,如 yahoo 或 dmoz、craigslist、napster、图像照片板、新闻、论坛一体。这是 Alphabet 的本地变体,雅库茨克为数不多的 IT 专家都想在那里找到一份工作。拥有该门户网站的公司名为 Sinet(Sakha Internet 的缩写),inDrive 很快就在该公司成立。
这里值得指出的是,除了Sinet之外,雅库茨克还有一家名为Mytona的大型游戏开发公司,它也对当地IT人员产生了巨大的吸引力。该公司由来自北部小村庄 Khonuu 的两兄弟创办,他们向父母借了一些钱,开始开发他们的第一个独立游戏。就目前情况而言,inDrive 和 Mytona 已“迁出”俄罗斯。
就出租车服务而言,在inDrive出现之前,在雅库茨克打车既困难又昂贵。事情以老式的方式进行,你必须先打电话并通过调度员预订车辆,然后等待很长时间才能让司机到达。更糟糕的是,您的电话可能会被忘记,然后等待汽车的时间超出了所有可能的限制。
一个单独的痛点是新年假期(该国的主要假期,两周的聚会,没有人工作),出租车服务的价格多次上涨,从而将乘客推向边缘。 2012 年冬天,几个聪明人创建了一个名为“雅库茨克独立司机社区”的Vkontakte群组。在其中,您可以表明您需要从 A 点前往 B 点并留下您的电话号码。然后,一位恰好朝那个方向行驶的热心司机可能会打电话给您安排乘车。行程结束时,乘客必须向司机留下钱来支付汽油费。
当然,很快,人们开始支付乘车费用,而不是汽油价格补偿。在很短的时间内,该集团获得了广泛的欢迎,并开始逐渐取消传统的出租车服务。
当时,Sinet 董事 Arsen Tomsky 认为该集团是扩展业务的一个有前途的想法,并决定将其收购。从本质上讲,这一点标志着 inDrive 存在的开始。
2013 年 10 月,我作为第三位开发人员加入该公司,当时这家初创公司正处于运营第五个月。当时,该应用程序的 Android 版本已经可用,我们的人员正在寻找 iOS 开发人员。在加入公司之前,我在一家小型初创工作室工作了一年,在 iPad 上为儿童开发互动书籍,首先是我们的母语。就在那时,我想到了换工作。
我有一个很大的优势——我的 MacBook,这在当时的雅库茨克是罕见的。我认为这是我尝试在 Sinet 找到工作的机会。我没有 iOS 开发经验,但不知何故(很可能是因为缺乏合适的候选人)我成功地在我梦想的公司找到了一份工作。
iOS 开发是原生的:我使用 Objective-C 进行编码。现在情况没有太大变化,唯一的区别是现在普遍使用Swift而不是 Objective-C。 Android 是用 Java 编码的,而后端是用 PHP 编写的。当时制定的许多内容至今仍然是 inDrive 代码库的核心。
当时iOS的核心开发团队只有我一个人。 2015 年,第二个人加入了我的行列。 2016 年聘用了第三名员工后,我们开始快速发展。当时还没有跨平台团队,只有 iOS、Android、后端开发团队和 QA 测试人员。
这让我想知道当时的inDrive司机是如何接受乘车请求的。这被称为基于呼叫的安排:乘客下订单,附近的司机同时在他们的请求列表中看到该订单,而那些喜欢该报价的人则点击它。当时的奇特之处在于,我们只是通过蜂窝通信网络连接了司机和乘客!有时,多个司机会同时打电话请求同一个乘车请求。通话结束后,我们会向乘客展示所有打过电话的司机名单,以便他们选择最合适的司机。整个设置似乎是基于“谁先打电话,谁先下达命令”的原则运作的。因此,司机向客户支持投诉称他们没有足够的时间来取货。
长期以来,有一种传说称iOS获得订单的机会比Android高得多。这有一定道理,因为该界面在 iOS 上确实运行得更快。很长一段时间,我们没有引入“无电话”接单流程,这是其他网约车服务更常用的流程,认为乘客如果有时间互相交谈,就会对司机更加信任。乘车前的电话。显然,这样的策略有其局限性,而且是相当严重的局限性。
此外,该应用程序的第一个版本有一个有趣的选项卡,称为“可用驱动程序”。通过单击它,您可以转到地图,找到可用的司机,亲自给他们打电话并安排乘车。可以理解的是,当时还没有加密连接。
此外,还有第三种寻找司机的方法:创建乘车请求(订单)后,我可以在地图上找到合适的司机,并通过个人消息向他们发送我的报价。这被称为“个性化订单”。
如今,人们有时会怀念一切都尽可能简单、快速、有趣的日子。我不知道存储库是什么,在每个版本发布后,我将项目文件夹存档并将其保存在我的硬盘驱动器(数百个存档仍然存储在那里)和Google Drive上。早年,我们在 Xcode 中的项目称为startPage ,而我们的产品任务则直接写在白板上。
我还不熟悉 iOS 开发的基本编程模式和架构。最终结果是一堆大型视图控制器和带有数十个屏幕的故事板。这是真正的 StackOverflow 编程。
渐渐地,我们的创业团队开始壮大。新人加入,第一个简单的流程出现了。 2014年,公司已有员工10人。就在那时,我们飞往新西伯利亚参加一个会议。这是我们三个人,整个开发团队。这是公司历史上的另一个重要里程碑,因为在萨哈共和国,您会感到与外面的广阔世界隔绝。这样的旅行对我们来说是一件大事。
2013 年底,VKontakte 小组的创始人 Sasha Pavlov 加入了我们,该小组已被 Arsen Tomsky 收购。在他的加入下,我们开始首次尝试在其他城市开展业务。有一天,萨沙飞往萨哈林岛与司机商量事情。他打印了一些宣传小册子并开始在商场停车场分发,但被保安赶走了。但最终,我们在萨哈林岛成功推出了产品,并立即表现出出色的增长。
然后我们开始在俄罗斯北部和东部的其他城市推出:伊尔库茨克、托木斯克等。这些地区与雅库茨克相似,气候条件相似,而且那里没有其他主要应用程序。在这些城市,该应用程序几乎立即开始出现增长。
我们常常坐在小办公室里做白日梦,“想象一下,有一天我们的收入将超过Ykt.ru。 ”我们笑了,但实际上那一刻来得很快。
我们的首席执行官总是想要一个更大的故事,而且与雅库茨克无关。他是一位彻头彻尾的企业家,总是寻求新的挑战。这对我们来说似乎是显而易见且合乎逻辑的,所以没有人质疑我们为什么要做我们正在做的事情。
弄清楚我们这些来自雅库茨克的人能够与大公司竞争多少总是很酷的。当时,我们的主要竞争对手是Taxi Maxim和Yandex Taxi 。我们还没有考虑过Uber 。但很快我们就不得不对这种情况进行充分的思考,但如果您感兴趣的话,我会在下一篇文章中告诉您更多相关信息。
PS这是我第一次写文章,我想写更多关于 inDrive 的演变历史、我如何成为 CTO,以及我们面临和必须克服的技术和非技术挑战。因此,如果能够获得您对此处可以改进的内容以及您有兴趣在未来的帖子中阅读的内容的反馈,那就太棒了。在评论中分享它们!
PPS Sinet 和 inDrive 发展的里程碑在该公司首席执行官的书中有更详细的描述: “inDriver:从雅库茨克到硅谷”。