Хотите дальше читать devby? 📝
Support us

Беседа с MAPS.ME (MapsWithMe) о трудностях, багах, приятных мелочах и о том, как всё начиналось

2 комментария
Беседа с MAPS.ME (MapsWithMe) о трудностях, багах, приятных мелочах и о том, как всё начиналось

Команда MAPS.ME всё чаще начинает светиться на местном, белорусском рынке, участвуя в мероприятиях, организуя свои небольшие «квартирники» — всячески стараясь не упустить возможность рассказать о себе и получить полезный фидбек. Я не мог проигнорировать это и напросился на встречу с Юрием Мельничком, CEO, и Виктором Говако, CTO, — оба, так сказать по совместительству, помимо Александра Борсука, являются сооснователями MAPS.ME.

Первые эксперименты, выбор провайдера, идеи и планы на будущее

Первые эксперименты

Когда задумывалось приложение MAPS.ME, задачи привнести в копилку человечества что-то супер-новое не стояло. Более-менее, все используемые технологии уже были реализованы, и самая большая проблема была в том, чтобы заставить этот комбайн работать не просто бесперебойно, но и без тормозов на технике того времени. Речь идёт о iPhone 3g и первых Android-смартфонах.

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

Но не везде приходилось писать большие и сложные велосипеды, например, индекс данных был написан в лоб, по самому простому пути. Буквально за 36 часов (в том числе и две ночи подряд), по-доброму разозлившись на проблему из-за того, что только она откладывала первый релиз, был написан необходимый код. Эту реализацию оставили для первой версии приложения, решив переписать его позже. Но не пришлось — после многочисленных тестов оставили как есть, убедившись в том, что простое не значит плохое.

Open Street Map

Провайдера выбирали не долго, им стал один из немногих сервисов, который отвечал нескольким важным требованиям. Во-первых, у него была лицензия, разрешавшая коммерческое использование бесплатно (на тот момент). Во-вторых, OSM имела очень хорошее наполнение контентом на территории Беларуси. И это в те дикие времена, когда у Google Maps карта страны показывала чистое поле — ещё хуже, чем в настоящий момент у Apple Maps.

Юрий выразил мнение, что OSM вплотную приближается к некой точке, которую в свое время прошла Wikipedia. Этот картографический провайдер становится эталоном, показывая прекрасную детализацию, наличие информации даже на затерянных в море европейских островах, где кроме козьих троп ничего и нет. Основа успеха — это большое комьюнити, которое делает огромный подарок всему человечеству. 

При этом комьюнити OSM уделяет огромное внимание вандализму, так как работает на основе саморегуляции, чем-то схожей с той, что используется на Wikipedia. С большего, данным можно верить, особенно в местах массового скопления людей, где данные проверяются и актуализируются десятками и сотнями людей (почему-то очень хочется назвать их волонтёрами).

Сообществом OSM решается вопрос и о спорных территориях. Если большинство пользователей считают нужным, например, выделить какую-то территорию в отдельное государство, то сам сервис этому противиться не будет. Демократия в чистом виде. Вот бы и в реальной жизни всё было так просто.

Но есть и серьезные отличия от Wikipedia, например, у сервиса нет никакой точки контактов по техническим вопросам. Выход информации в виде файла всей планеты напоминает выдачу информации из черного ящика, на это никак нельзя повлиять. Я уверен, что ответственные лица читают форумы и рассылки, и серьёзные проблемы не игнорируются, но это какое-то косвенное общение с техническим персоналом OSM, не прямое.

Первый мощный компьютер

Для того, чтобы не отвлекаться от разработки и не загружать рабочие станции парсингом файла планета.osm, было принято решение о покупке мощного компьютера. Стоит отметить, что покупка была весьма затратной, тем более для молодого стартапа, который не заработал ни копейки. Собранный по частям аппарат стоил несколько тысяч долларов. Особое внимание уделялось тому, чтобы материнская плата поддерживала максимально большое количество оперативной памяти.

После сборки его поставили под стол, где компьютер, не отвлекая никого, делал свою работу. Забавный факт: скрипты, которые парсили карты и разбивали его по странам (напомню, приложение даёт скачивать карты отдельных стран и не просит скачивать всю планету), были настолько оптимизированы, что процессор был забит на 100% практически постоянно. Проводили опыты, результаты которых показали, что загрузка процессора полезными вычислениями была такой же, как и от синтетических тестов, основная задача которых — выжать всю вычислительную мощность до последней капли.

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

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

Android

Логично, что зоопарк устройств с Андроидом доставляет больше всего головной боли. Дикая фрагментация операционной системы на рынке, совершенно разное железо устройств и новшества новых версий — всё это делает разработку сложнее.

Но в этом есть смысл, ведь больше всего инсталляций именно на телефонах с этой операционной системой. Необходимо поддерживать работоспособность приложения везде и всегда. На столе разработчика привычная картина: несколько iOS-устройств и россыпь устройств на Андроиде.

Обратная связь

Самое первое, что я услышал — каждое письмо, которое отправляется в техническую поддержку, не остаётся без ответа. Безусловно, чаще всего это стандартные ответы на стандартные вопросы (этакая первая линия технической поддержки), однако бывают и исключения. Например, каждый телефон на Андроиде обладает восхитительной особенностью — он может породить специфическую граблю на ровном месте — такие сообщения передаются разработчикам.

В настоящий момент приходит около 30 писем ежедневно (это не считая отзывов в магазинах и социальных сетях). Чаще всего пишут из России, европейских стран и США — всё вполне закономерно, больше пишут из стран, где приложение пользуется наибольшей популярностью.

Среди писем с обратной связью встречаются и весьма необычные. Например, военный в одной из африканских стран пользуется во время службы картами MAPS.ME и по этому поводу написал письмо с благодарностью: мол, «ваши карты весьма помогают в моей работе».

Еще запомнилось письмо европейского парашютиста, который просил указывать на картах границы частной собственности, а то неловко получается — летит над полями и лесами, а не знает, нарушил ли он по приземлению закон о частной собственности или нет.

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

Баги

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

Ошибки исправляются либо сразу, либо откладываются на больший срок — всё зависит от критичности бага, от его распространённости и т. п. факторов.

В каждом проекте есть баг — тот самый Полтергейст. На iPhone примерно в 5% случаев запуска приложение просто падало. Пишет пользователь, сообщает о том, что приложение упало, а через несколько минут добавляет, что всё запустилось и работает как надо. Доходило до того, что в магазине приложение получает высокие оценки, но каждый 10 отзыв — одна звезда и комментарий «Приложение падает при запуске».

Эту ошибку ловили долго, действительно начали верить в потусторонние силы, но в итоге поймали. Дело в том, что при запуске приложение проверяет буфер обмена, и если там есть ссылка, похожая на гео-метку, пытается её как-то обработать. Примерно в 5% случаев в буфере оказывался мусор определённого порядка, который приложение переварить не могло.

А вот ещё один случай на устройствах из Купертино: при установке формата региона «Эсперанто» приложение в некоторых случаях падало. В итоге проблему нашли довольно быстро: это был обычный и неловкий программерский баг. Если вы пишете приложения, проверяйте его с разным регионом в настройках, это может оказаться важным.

Тем не менее, основную часть багов плодят Android-устройства, не только из-за фрагментации и самого разного железа, сколько из-за установленных антивирусов и программ со схожим функционалом.

Идеи

Идей, по заверениям команды, — целый фонтан. Если начать реализовывать всё, то работа по наследству перейдет детям и внукам. Но, как вы сами знаете, сама по себе идея ничего не стоит. Перед тем как сломя голову бежать её реализовывать, её нужно проработать, понять, как она может сделать приложение лучше и полезнее. Не помешает ли она удобству использования, как впишется в интерфейс и многие другие вопросы. 

Основная стратегия проста и заключается не в том, что делается и реализуется, а в том, что не делается и не реализуется. При этом нужно бежать всё быстрее и быстрее даже для того, чтобы остаться на месте, ведь конкуренция большая и постоянно растёт.

Есть два основных источника идей. Первый, самый очевидный — обратная связь от пользователей приложения. Второй — личный опыт сотрудников команды. Вся команда собрана из людей, которые помимо высоких профессиональных качеств обладают страстной любовью к путешествиям. Потому на основе своего опыта и опыта пользователей отбираются самые-самые идеи, которые и реализуются.

Например, одна из последних реализованных идей — полноценный поиск по скачанной карте страны. Теперь легко и просто можно найти улицу и дом, заведение или нужный городок. Естественно, если эта информация есть на OSM.

Порою нужно реализовывать весьма щепетильный функционал, например, иконки на религиозные места (церкви, соборы, мечети и прочее). На OSM это показано одной иконкой, на которой в квадрате 2 на 2 расположены как звезда Давида, так и мусульманский полумесяц. Это не очень удачное решение, поэтому было принято решение сделать что-то абстрактное, что-то, говорящее о том, что эта точка «религиозная», но без указания конфессии.

Компания ещё не окостенела (и надеюсь, что и не окостенеет), потому жёсткого процесса внесения нового функционала в приложение нет. Однако есть приоритеты.

Навигация

Постоянная тема в письмах с обратной связью, регулярнейший вопрос при различных интервью и вопросах изданий — когда будет навигация. Я не стал исключением и тоже задал этот вопрос. Планируется запустить навигацию до конца 2014 года — эта задача с высоким приоритетом. Но тут есть много «но».

«Но #1». OSM — сообщество пешеходов, с точки зрения автомобилиста данные не всегда достоверны или полны. Особенно это касается дорожного покрытия, скоростей, запрещающих знаков. Уже сейчас навигаторы, которые используют данные от этого картографического провайдера, собирают и анализируют треки пользователей, так что ситуация должна будет исправиться.

«Но #2». Высока цена ошибки. Если пользователь воспользовался предложенным маршрутом и он привел его не туда, то негатив будет обращён не на провайдера данных, но на само приложение. 

У Юрия произошла похожая ситуация с навигацией от Google в Швейцарии. Он поехал по составленному маршруту, и где-то за 100 метров до конца поездки случился казус: по горизонтали до точки назначения было около ста метров, но вот по вертикали — почти два километра. Навигация просто не смогла привести пользователя на вершину горы и привела его к её подножию. Если у Google большой запас доверия, то у MAPS.ME он поменьше, и после таких досадных ошибок желание пользоваться этим приложением может и не возникнуть.  

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

Маркетинг

Секретов и тайн маркетингового продвижения мне не раскрыли, пожалуй, по одной простой причине — их просто нет. Искали тот самый путь методом проб и ошибок, ведь начинали им заниматься разработчики, технические люди, которые в тот момент были несколько далеки от маркетинга.

Скачивания и продажи находились примерно на одном уровне с небольшим ростом ровно до тех пор, пока не было принято решение взять в команду профессионала в этой области. Им оказалась Алёна Миранович. Рост скачиваний и продаж стал уверенным и весьма заметным.

Это подтверждает, что быть мастером на все руки — сложно, каждый должен заниматься тем, что он умеет делать хорошо. На то она и команда.

Кстати, именно маркетинговые соображения не рекомендуют вынести будущую навигацию MAPS.ME в отдельное приложение — это большое количество человеко-часов плюс большие финансовые вливания, тогда как технически задача (вынести функционал из карт, т. е.) несложна и вполне себе реализуема.

Почему MAPS.ME?

Совсем недавно команда MapsWithMe поменяла название. Чтобы не пришлось долго объяснять, зачем они это сделали, своими силами был снят цикл роликов. Стоит отметить, что съёмка проходила в Черногории, куда команда уехала отдыхать работать в арендованный домик на берегу моря. Естественно, за счёт компании — ведь кто-кто, а команда MAPS.ME очень любит путешествовать.

Ещё несколько роликов можно посмотреть на Vimeo-канале MAPS.ME.

Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
В DEIP из-за обвала курса от $1,1 млн осталось $350K, зарплаты не платят. CEO разбирает, как так вышло
В DEIP из-за обвала курса от $1,1 млн осталось $350K, зарплаты не платят. CEO разбирает, как так вышло
В DEIP из-за обвала курса от $1,1 млн осталось $350K, зарплаты не платят. CEO разбирает, как так вышло
Блокчейн-стартап DEIP больше двух месяцев не платит зарплату сотрудникам. Об этом dev.by рассказали несколько человек из компании: «официальная причина — стартап неправильно распорядился финансовыми ресурсами и денег нет. Подробностей не знаем». Сотрудникам сообщили, что топ-менеджмент ищет дополнительный капитал для погашения задолженности и дальнейшего развития. Но часть команды уже ищет новую работу.Мы также поговорили с СЕО DEIP Алексом Шкором — он рассказал, из-за чего у стартапа возникли сложности, как команда пыталась их решать и что собирается делать дальше. «Хочу поделиться опытом, чтобы на нём смогли научиться другие фаундеры, которые хотят идти в web3», — говорит Алекс. Ниже — подробный разбор.
8 комментариев
«Лаборатория Касперского» купила 49% в компании ForPeople, которая разрабатывает аналоги программ от SAP
«Лаборатория Касперского» купила 49% в компании ForPeople, которая разрабатывает аналоги программ от SAP
«Лаборатория Касперского» купила 49% в компании ForPeople, которая разрабатывает аналоги программ от SAP
Сооснователь OneSoil Слава Мазай уходит из компании
Сооснователь OneSoil Слава Мазай уходит из компании
Сооснователь OneSoil Слава Мазай уходит из компании
1 комментарий
Появилась интерактивная карта, которая показывает самого знаменитого человека в каждом городе
Появилась интерактивная карта, которая показывает самого знаменитого человека в каждом городе
Появилась интерактивная карта, которая показывает самого знаменитого человека в каждом городе

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Довлет Байрамалыев
Довлет Байрамалыев Начальник в Sushi house tm

Комментарий скрыт за нарушение правил комментирования.
[censored - П. 4.1.2. Пользовательского соглашения — https://devby.io/pages/polzovatelskoe-soglashenie]

Довлет Байрамалыев
Довлет Байрамалыев Начальник в Sushi house tm

Комментарий скрыт за нарушение правил комментирования.
[censored - П. 4.1.2. Пользовательского соглашения — https://devby.io/pages/polzovatelskoe-soglashenie]