Записки начинающего продакт-менеджера: новая функция для приложения нормализации адресов

Привет! Меня зовут Николай Горланов, и я анонимный начинающий продакт-менеджер :) Хочу поделиться своим первым опытом работы по развитию  Pullenti Address SDK, который помогает нормализовать адреса и автоматизировать работу с ними в различных системах.

Гипотеза: новая функция повысит уровень заинтересованности продуктом

Дано: программный продукт Pullenti Address SDK, который умеет приводить адреса к нормализованному виду. Программа может из текстовой строки вроде «Самара, Артёмовская, 22, 23» понять, что Самара — это город, Артёмовская — улица, 22 — номер дома, а 23 — номер квартиры.

Гипотеза: если дополнить наш продукт данными о GPS-координатах объектов (адресов), это будет полезно для потенциальных клиентов. В моем воображении нарисовался образ магазина с доставкой, который сможет проверять, входит ли клиент в зону доставки при вводе адреса в CRM (ранее сталкивался с подобной проблемой, когда нужно было организовать доставку документов по районам).

Примеры использования функции GPS-координат

Согласно методике Jobs to be Done (JTBD), продукт должен выполнять конкретную работу для клиента. Приведу примеры ниже.

  1. Магазин с доставкой: Когда менеджер по доставке вводит адрес клиента в CRM, он хочет мгновенно определить зону доставки, чтобы оперативно организовать доставку без лишних проверок.

  2. Логистическая компания: Когда логистическая компания планирует маршруты для своих водителей, она хочет учитывать точные координаты адресов, чтобы минимизировать время в пути и расходы на топливо.

  3. Обслуживающая компания: Оператор контакт-центра мгновенно определяет обслуживающего клиента менеджера и телефон обслуживающего центра на основании информации об адресе клиента.

  4. Автоматизированная система распознавания голоса: Администрация городского округа при приеме звонков по телефонной линии хочет, чтобы продиктованные голосом адреса с информацией о проблемах в ЖКХ были верифицированы и записаны в базу данных.

Первый шаг: реализация гипотезы

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

Обнаруженные проблемы и новые возможности

В процессе работы мы выяснили, что GPS-координаты имеют далеко не все объекты, которые есть в реестре недвижимости. Это подтолкнуло нас к следующему шагу — загрузке данных из других источников, первым из которых стал OpenStreetMap (еще в процессе).

Ура! Моя первая фича выведена в прод! Новая версия Pullenti Address умеет определять геопозицию объекта по адресу. Причем делает она это в некоторых случаях лучше, чем другие геосервисы. В данной статье как раз хотелось рассказать о некоторых примерах.

Возьмем такую текстовую строку, которая относится к объекту недвижимости (в таком виде адрес фигурирует в Росреестре):

Самарская область, г. Самара, Кировский район, 17 км Московского шоссе, здание 2 В.

API Яндекса возвращает по данному адресу следующие координаты: [53.246822, 50.286252]

Но адрес возвращается с параметром «other». Таким образом, мы понимаем, что это не совсем тот адрес, который нас интересует, а какой-то другой. При проверке оказывается, что это адрес Кировского района (видимо, какая-то средняя точка). Кировский муниципальный район — это слишком большой объект, чтобы принимать во внимание определение координат.

Результат поиска по текстовой строке в 2GIS (используя веб-интерфейс): «Точных совпадений нет. Посмотрите похожие места или измените запрос.»

Результат поиска через Pullenti Address: «Выделение текущей сущности в исходном тексте Коэффициент качества: 100. Штатная нормализация через ToString/GetFullPath: Россия, область Самарская, город Самара, внутригородской район Кировский, шоссе Московское, километр 17, д. 2В»

Параметр GPS для данного адреса в Pullenti Address: 53.27284, 50.25372

Проверим, что по этим координатам найдется в 2GIS: Ссылка на 2GIS 

Ага, есть какой-то объект недалеко от стадиона.

Ага, есть какой-то объект недалеко от стадиона.

На Яндекс.Картах: Ссылка на Яндекс.Карты

Ага, тут даже есть подпись, что это диспетчерский пункт.

Ага, тут даже есть подпись, что это диспетчерский пункт.

«Подсказки» и «Нормализация» от dadata позволяют найти точные координаты (почему-то разные для этих двух инструментов, но обе версии показывают на одно и то же здание: 53.272839, 50.2537247 или 53.2729098, 50.253668).

135f0fe477aae60f4b07615136236bd2.png

Продвижение, сотрудничество и первый отказ

Отлично, фича реализована, и теперь необходимо проверить гипотезу о том, что эта функция действительно нужна клиентам. Немного поразмыслив, было решено предложить функцию SDK для потенциальных клиентов. Но где их найти? Нужно искать партнеров! Так было принято решение о написании предложения об интеграции с одной известной CRM платформой.

Перед тем как обращаться к разработчикам этой системы, проверил работу с адресами внутри CRM. Оказалось, что там уже есть встроенный механизм нормализации адресов для поля «Адрес» в карточке клиента, но он не всегда работает корректно. Например, при вводе адрес «Самара, ул. Сердобская 8» система не может его найти на карте.

Оказалось, что дело в том, что CRM ищет адреса по базе данных OpenStreetMap и может отобразить его на карте. Но если в OSM адреса нет (как в моем случае), то он не определяется и не отображается на карте. Представляется, что это создает неудобства для пользователей, особенно если они работает с доставкой товаров или корреспонденцией.

Наш SDK умеет нормализовать адреса, разбивая текстовую строку на части (город, улица, дом и т.д.) и находить их координаты. Эти координаты можно затем отображать на OpenStreetMap. Внедрение Pullenti Address на стороне CRM позволило бы устранить необходимость в дополнительных интеграциях с другими системами, такими как DaData или Яндекс.Карты, что предполагает более высокий уровень удобства для пользователей CRM-системы.

Итак, было решено предложить интеграцию нашего SDK с известной CRM платформой. Однако, был получен ответ: «Вы можете сделать свое приложение в маркете и интегрироваться в продукт. У нас открытый API». Спасибо, пока это не наш вариант. Это был ценный урок — несмотря на то, что у нас была отличная идея, у потенциального клиента в тот момент были другие приоритеты.

Подтверждение гипотезы: глубинные интервью с клиентами

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

Если Ваше приложение работает с адресами, и Вы хотите оптимизировать процесс работы с ними — рассмотрите возможность использования Pullenti Address SDK. 

В любом случае, надеюсь, что мой опыт и уроки будут полезны другим начинающим продакт-менеджерам. Удачи в ваших начинаниях и пусть GPS-координаты всегда указывают вам верный путь!

© Habrahabr.ru