Как разработчик на C++ превратил свой пет-проект в прибыльный стартап
Евгений Бодунов рассказал, как он вместе с командой создавал приложение Guru Maps и чем работа в стартапе отличается от работы в крупной компании.
Иллюстрация: Cardmapr / Devin Pickell / Unsplash / Дима Руденок для Skillbox Media
Я начал заниматься мобильной разработкой 12 лет назад. Тогда Apple выпустила iPhone OS 2 и разрешила сторонним разработчикам писать приложения для новой операционки. Руководство аутсорс-компании, в которой я работал, увидело в этом новую золотую жилу. Поэтому наши разработчики на С++ быстро переквалифицировались в мобильных и стали писать приложения для iOS на Objective-C.
Параллельно я работал над собственным приложением для просмотра карт для iPhone. Со временем этот хобби-проект стал приносить деньги, и я уволился, чтобы сфокусироваться на нём. С тех пор, уже 10 лет, я развиваю собственное мобильное приложение вместе с командой.
Как появилась идея стартапа
На заре мобильной разработки у Apple были ужасные карты. Например, в Беларуси они показывали всего две дороги: трассу Брест — Москва и Минскую кольцевую. Проспектов, улиц и переулков на них не было.
И в то же время набирал популярность проект OpenStreetMap. Энтузиасты рисовали открытую карту всего мира. Проект быстро нашёл поклонников в Беларуси, и карта Минска в OpenStreetMap была гораздо точнее, чем у Apple.
Надо было как-то создать возможность смотреть карту OpenStreetMap на iPhone, и желательно офлайн. Из этой простой идеи и получилась первая версия приложения Guru Maps. Потом, пока готовился к поездке в Европу, я добавил возможность создавать на карте метки и записывать GPS-треки. Идеи для функций приходили во время использования приложения. Когда сам пользуешься своим продуктом, лучше понимаешь, как он ещё может помочь пользователям и что надо добавить.
Сначала Guru Maps можно было скачать в App Store за два доллара, потом мы добавили бесплатную версию с платными функциями, а пару лет назад перешли на подписную модель. Это был очень удачный ход, потому что с одноразовыми покупками мы бы, скорее всего, потонули. Из-за COVID-19 все приложения для путешествий значительно потеряли в популярности.
Ещё одна идея монетизации проекта пришла от пользователя. Он спросил: «Как карту из Guru Maps встроить в моё приложение?» В то время мы как раз работали над версией для Android и переписывали большую часть кода. Во время большого рефакторинга получилось выделить основные компоненты приложения и сделать отдельный продукт для разработчиков. Так появилась библиотека для векторных офлайн-карт — globus.software. С её помощью разработчики могут встраивать карты Guru Maps в свои приложения.
Чему мы научились, пока создавали Guru Maps
Наверное, самое сложное в работе над своим проектом — правильно расставлять приоритеты, когда никто не говорит, что и как делать. А ещё находить время для отдыха и придумывать интересные задачи. Так что самый полезный навык для стартапа — это самоорганизация.
Нам приходилось постоянно осваивать новые технологии. Мы перешли с Objective‑C на Swift, с Java — на Kotlin. На серверах Python сменился на Ruby, а потом и на Go. Так что Guru Maps и всё, что с ним связано, приходилось постоянно переписывать. Ведь стартап — это не только написание нового кода, но и поддержка старого. В коде приложения всегда можно найти части, которые устарели и просятся, чтобы их переписали или вовсе удалили.
Ну и последнее, но не менее важное, — умение рекламировать и продавать продукт. Без этого навыка все прочие теряют смысл. Я долго не уделял маркетингу достаточно внимания и всецело был поглощён разработкой. Для пет-проекта это нормально, но, если хотите «захватить мир», продажи важны не меньше, чем сам продукт.
Чем стартап отличается от работы в компании
Работа в большой компании хороша тем, что можно набраться опыта, изучить процессы, познакомиться с best practices и поработать в команде с другими программистами.
Стартап же подходит тем, кто может самостоятельно спроектировать и собрать систему «на коленке». Здесь постоянно возникают вопросы, на которые никто не знает ответа, а все решения приходится принимать на свой страх и риск. У руководителя стартапа большая ответственность, но и свободы гораздо больше, чем в крупной компании. Если в корпорации вы бы перекрашивали кнопки, то в стартапе на вас свалится весь бэкенд и полприложения в придачу.
Когда я ушёл в Guru Maps, у меня заметно прибавилось работы. Я делал там всё, что умел: рисовал, пилил бэкенд и писал код под iOS и Android.
Амбициозные люди, которые хотят и знают, как сделать хороший продукт, творчески реализовываются в стартапах. В отличие от крупных компаний со сложными процессами, здесь можно самому придумывать интересные задачи. Например, когда мы делали контурные линии рельефа, то не стали применять готовое решение, а разработали собственное.
С другой стороны, в стартапе придётся погружаться в вопросы бизнеса: как привлекать инвестиции и зарабатывать деньги, чтобы выплачивать зарплаты, платить налоги и самому что-то кушать. Наёмного программиста эти проблемы не волнуют, ведь его зарплата не зависит от работы отдела продаж. А в стартапе каждый баг и неверное решение напрямую сказываются на вашем доходе.
Девять из десяти стартапов прогорают. Надо быть готовым к этому, не опускать руки в случае неудачи и учиться на ошибках. Это похоже на непрекращающийся хакатон, в котором вы рискуете и получаете колоссальный опыт. Вы днями и ночами что-то делаете и, если получается, радуетесь результату. А если нет — копите деньги и начинаете заново.
Как и в других компаниях, мы планируем работу, ведём тикеты и всегда знаем, кто, что и когда должен сделать. Мы избегаем бюрократии, чтобы оставаться гибкими и не загружать себя лишними процессами. Раньше, когда проект был совсем маленьким, нам хватало одной таблички в Excel.
В этом году мы хотим запустить веб-версию Guru Maps и добавить много новых функций, в том числе движение по полосам и CarPlay. А ещё планируем привлечь много новых пользователей.
Прозвучит парадоксально, но наш проект не прогорел, потому что мы довольно медленные. С этой точки зрения Guru Maps не совсем обычный стартап. У нас не было цели как можно быстрее собрать круглую сумму с инвесторов и выстрелить. Мы скорее из тех, кто тратит свою подушку безопасности, чтобы развиваться.
Начинающие предприниматели могут сказать, что стартапу тяжело расти только на своих деньгах. Но здесь как с вождением: когда вы едете со скоростью 200 км/ч, то рискуете попасть в страшную аварию, а на 60 км/ч можете ехать спокойно и уверенно. Так вот, молодой команде, которая только учится и набивает шишки, лучше ехать медленно.