paint-brush
Создание единорога: моя десятилетняя карьера в inDriveк@michil
9,010 чтения
9,010 чтения

Создание единорога: моя десятилетняя карьера в inDrive

к Michil Androsov9m2023/11/15
Read on Terminal Reader

Слишком долго; Читать

Отправьтесь в увлекательное путешествие по истории inDrive, службы заказа такси, которая возникла в экстремальном климате Якутска и стала компанией-единорогом. Михаил Андросов, технический директор inDrive, делится своими мыслями о первых днях разработки, проблемах, с которыми пришлось столкнуться в суровых условиях Якутии, а также об уникальной модели ценообразования, которая отличает inDrive. От первых дней разработки iOS до выхода за пределы Якутска и других городов России — узнайте об основных вехах, которые повлияли на эволюцию inDrive. Следите за новостями о технических и нетехнических проблемах, с которыми сталкивается inDrive на пути к успеху.
featured image - Создание единорога: моя десятилетняя карьера в inDrive
Michil Androsov HackerNoon profile picture
0-item


Несмотря на несколько претенциозное название, цель этой статьи – не представить историю успеха или дать какие-то «горячие советы», основанные на бесполезных банальностях и трюизмах. Я просто хочу поделиться несколькими историями о компании, в которой я провел почти всю свою профессиональную карьеру. О том, как этот сервис появился на свет в далеком и холодном городе под названием Якутск, делюсь своим взглядом на inDrive с точки зрения инженера.


Всем привет! Меня зовут Михаил Андросов, я работаю в inDrive уже 10 лет. Я пришел в компанию, когда в команде разработчиков было три человека, и ушел с должности технического директора с 500 людьми под своим началом. За прошедшие годы компания выросла из местного стартапа в компанию-единорога с сотнями миллионов долларов , инвестированных ведущими мировыми фондами.


inDrive (ранее inDriver, сокращение от « Независимые Водители ») — сервис заказа такси из Якутска (столицы Республики Саха ) с одним большим отличием от всех остальных: стоимость поездки устанавливается самими пассажирами. .


В отличие от конкурентов, модель ценообразования inDrive не предполагает сложных алгоритмов, основанных на сотнях критериев. Вся система максимально прозрачна: в процессе участвуют только две стороны: водитель и пассажир, которые договариваются о тарифах между собой и договариваются о цене, которая устраивает обе стороны. Это самобалансирующаяся система.


Республика Саха, также известная как Якутия, — республика, расположенная на Дальнем Востоке Российской Федерации. В основном проживает местное коренное население якуты, но достаточно мультикультурное. Республика имеет репутацию экстремального и сурового климата.


Якутская атмосфера

Якутск зимой. Фото Марии Васильевой, ЯСИА


Вот почему сервис появился именно в Якутске. В моей книге это объясняется двумя причинами:


  1. Холодный климат. Поскольку температура на улице опускается до 50 градусов по Цельсию ниже нуля, вместо того, чтобы пойти на прогулку в парк или отправиться в поход на природу, люди предпочитают оставаться дома. Им приходится находить способы развлечься, и чаще всего они проводят время перед компьютером. В сочетании с лучшими школами, уделяющими особое внимание физике и математике, которых в этом районе много, есть шанс, что многие из этих детей станут программистами. По крайней мере, так я себе это объясняю.


  2. Изоляция от материка. Из-за этого Интернет был очень дорогим и медленным. Интернет работал с помощью радиорелейной технологии. И нужно было платить за каждый мегабайт. Пара скачанных из интернета фильмов могла стоить зарплаты работнику. Поэтому сотрудники интернет-провайдеров скачивали что-то из Большого Интернета и выкладывали в интранет . Помню некоторых ребят, которые даже занимались спутниковой рыбалкой.


Именно благодаря этим двум факторам в Якутске появился собственный «Интернет», а вместе с ним и интернет-портал Ykt.ru (в настоящее время не работает) — местные веб-порталы, такие как Yahoo или Dmoz, Craigslist, Napster, фото-борд изображений, новости, форумы. все в одном. Это была местная разновидность «Алфавита», и все немногочисленные айтишники Якутска хотели устроиться туда. Компания-владелец портала называлась Синет (сокращение от «Саха Интернет») — компания, в рамках которой вскоре был создан InDrive.


Здесь стоит отметить, что помимо «Синета» в Якутске существовала крупная компания по разработке игр « Мытона », которая тоже была магнитом для местных айтишников. Эта компания началась с двух братьев из маленькой северной деревни Хонуу, которые заняли немного денег у своих родителей, чтобы начать разработку своей первой инди-игры. На сегодняшний день inDrive и Mytona «уехали» из России.


Независимые водители

Что касается такси, то до появления inDrive в Якутске было сложно и дорого ездить. Все работало по старинке: нужно было сначала позвонить и забронировать машину через диспетчера, а потом долго ждать приезда водителя. Что еще хуже, ваш звонок может быть забыт, и тогда ожидание машины превысит все возможные пределы.


Отдельной болевой точкой стали новогодние праздники (главный праздник в стране, две недели гулянок, никто не работает), когда такси завышали цены в разы, чем доводили пассажиров до крайности. Зимой 2012 года несколько умных ребят создали группу Вконтакте под названием «Сообщество независимых водителей Якутска». В нем вы могли указать, что вам нужно проехать из пункта А в пункт Б и оставить свой номер телефона. Тогда заботливый водитель, который случайно направлялся в ту сторону, может позвонить вам и договориться о поездке. По окончании поездки пассажир должен был оставить водителю деньги на оплату бензина.


Конечно, очень скоро вместо компенсации за бензин люди начали платить за поездку. За короткое время группа приобрела массовую популярность и начала постепенно отказываться от традиционных услуг такси.

инДрайв. Первые дни

Тогда директор «Синета» Арсен Томский увидел в этой группе перспективную идею для расширения своего бизнеса и решил ее выкупить. По сути, этот момент знаменует собой начало существования inDrive.


Значок первой версии приложения для iOS. В то время у приложений iOS и Android были разные значки.


В октябре 2013 года я присоединился к компании в качестве третьего разработчика, когда стартап работал уже пятый месяц. На тот момент Android-версия приложения уже была доступна, и наши ребята искали iOS-разработчика. Прежде чем прийти в компанию, я год проработал в небольшой стартап-студии, занимающейся разработкой интерактивных книг для детей на iPad, сначала на нашем родном языке. Именно в этот момент я подумывал о смене работы.


У меня было одно большое преимущество — мой MacBook, который в то время был редкостью в Якутске. Я подумал, что это мой шанс попытаться получить работу в Sinet. У меня не было опыта iOS-разработки, но каким-то образом (скорее всего, из-за отсутствия подходящих кандидатов) мне удалось получить работу в компании моей мечты.


Мое первое рабочее место и мой личный Macbook


Разработка для iOS была нативной: я писал код на Objective-C. Сейчас ситуация особо не изменилась, с той лишь разницей, что вместо Objective-C теперь широко используется Swift . Хотя Android был написан на Java, серверная часть была написана на PHP. Многие из заложенных тогда вещей остаются в основе кодовой базы inDrive и сегодня.


В то время основной командой разработчиков iOS был только я. В 2015 году ко мне присоединился второй человек. Когда в 2016 году наняли третьего, мы начали очень быстро расти. Тогда не было кроссплатформенных команд — только команды iOS, Android, серверной разработки и тестировщики QA.


Это заставляет меня задаться вопросом, как водитель inDrive принимал заявки на поездку в те дни. Это называлось « колл-ориентированная договоренность» : пассажир делает заказ, водители рядом одновременно видят его в своем списке запросов, а те, кому предложение понравилось, кликают на него. Самое интересное тогда было то, что мы просто соединили водителя и пассажира через сеть сотовой связи! Иногда несколько водителей одновременно звонили с одним и тем же запросом на поездку. После звонка мы показывали пассажиру список всех звонивших водителей, чтобы он мог выбрать наиболее подходящего. Вся система, казалось, работала по принципу «приказ достается тому, кто первым позвонит». Из-за этого в службу поддержки поступали жалобы водителей о том, что им не хватает времени забрать заказ.



На этом экране отображается список номеров телефонов водителей, которые звонили.



Долгое время существовала легенда, что у iOS гораздо больше шансов получить заказ, чем у Android. В этом была доля правды, поскольку на iOS интерфейс действительно работал быстрее. Долгое время мы не вводили процессы приема заказов «без звонка», которые чаще использовались другими службами такси, полагая, что пассажиры будут больше доверять водителю, если у них будет время поговорить друг с другом по телефону. телефон перед поездкой. Очевидно, что такая стратегия имела свои ограничения, причем весьма серьезные.


Также в первой версии приложения была интересная вкладка «Доступные драйверы». Нажав на нее, вы могли перейти на карту, найти доступного водителя, позвонить ему лично и договориться о поездке. Понятно, что тогда еще не было шифрованных соединений.


Кроме того, существовал третий способ поиска водителя: после создания заявки на поездку (заказа) я мог найти на карте подходящего водителя и отправить ему свое предложение в личном сообщении. Это называлось «Персонализированный заказ».



Это экран после создания заказа. Пассажир ждет звонка водителя. Еще находясь здесь, они могут выбрать конкретного водителя и отправить ему «Персонализированный заказ».



Сейчас ребята порой скучают по тем временам, когда все было максимально легко, быстро и весело. Я не знал, что такое репозитории, и после выхода каждой версии архивировал папку проекта и сохранял ее на своем жестком диске (там до сих пор хранятся сотни архивов) и Google Диске. В первые годы наш проект в Xcode назывался startPage , тогда как задачи нашего продукта записывались прямо на доске.


Я еще не был знаком с основными шаблонами программирования и архитектурой разработки iOS. Конечным результатом стала стопка контроллеров Massive View и раскадровок с десятками экранов. Это было настоящее программирование на StackOverflow.


Разработчики iOS поймут описанную здесь боль. Извините за качество, но я нашел только эту картинку


Выход за пределы Якутска

Постепенно наша стартап-команда начала расти. Присоединились новые люди, и появились первые простые процессы. В 2014 году в компании уже работало 10 сотрудников. Как раз в это время мы прилетели в Новосибирск для участия в конференции. Нас было трое, вся команда разработчиков. Это была еще одна значимая веха в истории компании, ведь в Республике Саха чувствуешь себя изолированным от большого внешнего мира. Подобные поездки были для нас большим событием.


В конце 2013 года к нам присоединился Саша Павлов, создатель группы ВКонтакте, которую выкупил Арсен Томский. С его участием мы начали наши первые попытки запуска в других городах. Однажды Саша прилетел на Сахалин, чтобы обсудить ситуацию с водителями. Он распечатал несколько рекламных брошюр и начал раздавать их на парковке торгового центра, но охрана прогнала его. Однако в конце концов у нас состоялся успешный запуск на Сахалине, и он сразу же показал отличный рост.


Потом мы начали запускать и в других северных и восточных городах России: Иркутске, Томске и т. д. Эти территории напоминают Якутск тем, что у них такие же суровые климатические условия, и других крупных приложений там нет. В этих городах приложение начало показывать рост почти мгновенно.


Раньше мы сидели в своем маленьком офисе и мечтали: «Представьте себе, однажды мы будем зарабатывать больше, чем Ykt.ru ». Мы посмеялись, но на самом деле этот момент наступил очень быстро.


Нашему генеральному директору всегда хотелось более масштабной истории, не связанной с Якутском. Он предприниматель до мозга костей и всегда ищет новые задачи. Нам это казалось очевидным и логичным, поэтому никто не задавался вопросом, почему мы делаем то, что делаем.


Всегда было здорово осознавать, насколько мы, ребята из Якутска, можем конкурировать с большими компаниями. На тот момент нашими основными конкурентами были «Такси Максим» и «Яндекс Такси» . Мы еще не думали об Uber . Но вскоре нам пришлось хорошенько обдумать ситуацию, но если вам интересно, я расскажу о ней подробнее в своих следующих постах.





PS Это мой первый опыт написания статьи, и я хочу подробнее написать об истории развития inDrive, о том, как я стал техническим директором и с какими техническими и нетехническими проблемами нам пришлось столкнуться и которые пришлось преодолеть. Поэтому было бы здорово получить ваши отзывы о том, что здесь можно улучшить и о чем вам было бы интересно прочитать в будущих публикациях. Поделитесь ими в комментариях!


PPS Более подробно вехи развития Sinet и inDrive описаны в книге генерального директора компании: «inDriver: От Якутска до Кремниевой долины».