В WEZOM обратился один из наших старых клиентов, крупный хостинг-провайдер. У компании была очень амбициозная и перспективная идея - запустить собственный облачный VOIP-сервис, который превзошел бы всю доступную на рынке онлайн-телефонию. Мы взялись за проект в новой для нас нише и выложились на 100%, чтобы сделать действительно достойный продукт.
Суть проекта
Это не первая наша работа с командой клиента, ранее мы помогали ей создавать успешные продукты для хост-провайдинга. Так что когда у клиента возникла идея по запуску нового направления бизнеса, он без раздумий обратился к нам.
В чем заключалась эта идея? Клиент видел, что рынок IP-телефонии стагнирует. Его делят между собой крупные провайдеры, которые работают на устаревших технологиях и предлагают слабый сервис: низкое качество связи, жесткие тарифы, сложная кастомизация услуг, слабая техподдержка.
Пример из жизни: если клиент крупного провайдера сталкивается с техническими проблемами, то вынужден звонить в поддержку, где ему дают советы из бородатых анекдотов о сисадминах: “перезагрузите компьютер”, “не используйте ваш вай-фай”, etc.
В B2B-сегменте давно появился запрос на качественную и удобную IP-телефонию, и у компании клиента было все, чтобы выйти на этот рынок с новыми решениями: оборудование, технологии, команда. Они хотели создать платформу, предоставляющую услуги по модели SaaS - за ежемесячную плату. Клиенты такого сервиса могли бы пользоваться гибкими тарифными планами и тонко настраивать свою телефонию без обращения в техподдержку. Но для этого нужно было построить обширную VOIP-инфраструктуру.
Что нужно было разработать?
Клиент обратился к нам без полноценного ТЗ, но у него была технически подкованная команда и четкое видение финального продукта. На этапе сбора требований и консультаций мы подробно проработали архитектуру проекта и оформили ее в виде блок-схем.
Цель разработки команда WEZOM определила так: создать VOIP-платформу с микросервисной архитектурой, которая будет включать в себя несколько продуктов для предоставления услуг по модели SaaS.
Эта цель требовала решения ряда задач:
- Построение VoIP-инфраструктуры для сервиса
- Создание веб-платформы для презентации и продажи услуг
- Создание личного кабинета с обширными настройками VOIP
- Создание клиентского сервиса непосредственно для совершения звонков
Когда концепцию продукта согласовали, детализировали и утвердили, можно было браться за проработку ТЗ и формирование стека технологий.
Выбор технологий и формирование команды
Справедливо будет уточнить важную деталь - на момент обращения клиента у нас не было достаточной экспертизы в области VOIP, и мы честно сказали об этом клиенту. Наш devops Евгений прекрасно разбирался в тонкостях работы IP-телефонии и концептуально продумал архитектуру всего проекта, которую мы затем и воплотили в жизнь. Но этого было недостаточно.
Для полноценной работы над продуктом нужно было найти VoIP-инженеров, так что мы с одобрения клиента взяли в штат трех специалистов, которые занимались развитием инфраструктуры - настройкой серверов, развертыванием цифровых АТС, терминацией транков.
Так мы сформировали по сути новую команду специально под проект. Кроме новых инженеров, в нее вошли наши разработчики - дизайнеры, специалисты по фронтэнду и бэкэнду, тестировщики, менеджеры.
Ключевая концепция разработки - построение сервиса по принципу микросервисной архитектуры. Каждая отдельная функция в системе, каждый ее модуль представляют собой так называемый микросервис - малую независимую программу, которая взаимодействует с другими микросервисами в распределенной сети по умным алгоритмам. Это дает системе гибкость, надежность и масштабируемость.
В качестве основного фреймворка разработки команда выбрала ReactJS. Он позволил построить быструю и надежную систему, которую можно модифицировать, поддерживать и развивать с минимальными усилиями.
Сфера VOIP опирается на ряд общепринятых правил и стандартов, поэтому “изобретать велосипед” в ней нежелательно. В системе посредством API используются готовые решения и сервисы для организации онлайн-телефонии (к примеру, системы для биллинга). Это не только позволило сэкономить на разработке, но и обеспечило ей наилучшую совместимость с нормами индустрии.
Как проходила разработка
Команда сформировала пул задач и двигалась по ним через большие месячные спринты.
Мы действовали по принципам SCRUM и практиковали итеративный подход - сначала сфокусировались на разработке ключевого функционала, а потом последовательно совершенствовали его на основании фидбека от клиента.
Параллельно с разработкой клиент анализировал свою бизнес-логику и добавлял в пул задач все новые функции и фичи. По ходу разработки проект сильно трансформировался и значительно отдалился от первоначальной концепции. Но команда была готова к этому и внедряла функционал гибко и последовательно, в несколько итераций.
Ключевая часть работы над проектом заняла порядка 10 месяцев, после нее команда сосредоточилась на доработках и дальнейшем развитии платформы.
Коммуникация, отчетность, поиск решений
Хотя команда клиента была хорошо подкована технически, во многом ее представления о разработке были слишком упрощенными. В начале проекта они были убеждены, что создать подобную систему можно очень легко и быстро, “на коленке”. Но наши специалисты последовательно отстаивали другую точку зрения: мало накодить что-то, что будет “просто работать”. Такой проект нуждается в развитой архитектуре, которая обеспечит ему надежность и длительный жизненный цикл.
Да, такая работа отнимет больше времени. Но если на старте не заложить в архитектуру платформы правильные решения, то спустя несколько лет бесконтрольного развития она обрастет “костылями” и утратит потенциал для роста. Поддерживать такой проект будет практически невозможно, легче создать новый. Это значит, что инвестиции в данную разработку просто испарятся.
В ходе многочисленных обсуждений и брейнштормов наша команда отстояла свою точку зрения. Как показала практика, это пошло проекту только на пользу.
В остальном существенных противоречий между сторонами не возникало. Клиент принимал активное участие во всех этапах разработки, с его стороны нам помогала большая команда специалистов. Митинги и созвоны с ними проводились как минимум еженедельно, а при необходимости и ежедневно. Собственник бизнеса лично принимал участие в презентации итогов спринтов и давал разработчикам весь необходимый фидбек.
Кроме того, мы всегда даем нашим клиентам доступ к таск-трекингу команды разработчиков. Они всегда понимают, на каком этапе работа пребывает прямо сейчас.
Что мы разработали
C точки зрения пользователя система выглядит очень просто. Рассмотрим ее по частям:
- Есть веб-платформа - сайт, который презентует сервис, продает услуги и предоставляет доступ к личному кабинету.
- Есть личный кабинет пользователя сервиса. В нем можно пополнить счет, выбрать виртуальный номер, воспользоваться дополнительными сервисами и провести тонкую настройку своей телефонии.
- Есть функционал для VoIP-звонков. По сути это цифровой IP-телефон, который выглядит и работает соответственно. У него есть цифровая панель для набора номеров, журнал контактов, список абонентов, функционал записи звонков и прочее.
Веб-портал фокусируется на презентации услуг для корпоративной VOIP-связи. Одна из главных продающих фишек на главной странице - динамичная инфографика со статистикой и географией сервиса. Пользователь может найти на сайте всю необходимую информацию о возможностях телефонии и в пару кликов выбрать один из нескольких тарифных планов, либо приобрести виртуальный телефонный номер.
Личный кабинет пользователя призван максимально упростить процесс тонкой настройки VOIP-телефонии, который у многих провайдеров организован очень сложно и требует привлечения службы поддержки.
К примеру, в ЛК пользователь может настроить такие функции:
- автоответчик
- голосовое меню
- перевод/перехват/переадресацию звонков
- запись и статистику разговоров
Там же доступны и дополнительные сервисы, такие как инструменты для маршрутизации звонков.
Функционалом VOIP-звонков можно воспользоваться двумя способами.
Первый - скачать один из множества сторонних SIP-клиентов - приложений для онлайн-телефонии (Zoiper, Phonerlite и подобные). Такое приложение можно поставить, к примеру, на ПК, и использовать его как телефон. Единственная сложность заключается в том, что настройки для связи нужно будет внести в приложение вручную.
Второй способ - использовать встроенный клиент для звонков, который доступен прямо в личном кабинете пользователя через веб-оболочку. Это крайне удобно, ведь для связи потребуется только браузер.
Все это выглядит очень просто и максимально удобно для пользователя. Но “под капотом” этого сервиса скрыта большая распределенная микросервисная экосистема.
Уникальные фишки продукта
Чем продукт существенно отличается от аналогичных решений на VOIP-рынке? В чем его киллер-фичи?
- Цифровой телефон, доступный прямо из браузера. У конкурентов на сегодня ничего подобного нет, по крайней мере, с аналогичным функционалом и уровнем качества.
- Тонкие настройки телефонии в личном кабинете. Скажем, пользователь может без помощи поддержки настроить шаблоны интерактивного голосового меню (IVR). Возможности личного кабинета рассчитаны на профессионалов - специалистов, которые понимают, чего хотят добиться от телефонного сервиса.
- Простота интеграции. Благодаря облачной инфраструктуре, любой пользователь может подключить онлайн-телефонию для своего офиса буквально за 15 минут.
Система отлично соблюдает логику “от простого к сложному”. Рядовые пользователи могут с легкостью подключить базовые возможности телефонии и воспользоваться ими незамедлительно. Профессионалы могут тонко настроить телефонию для своего офиса в личном кабинете, без необходимости обращаться в поддержку.
Результаты разработки
Хотя у нас ранее не было релевантного опыта в области IP-телефонии, разработка платформы прошла гладко. Проект успешно запущен и в полной мере оправдывает ожидания клиента. В его ближайших планах - расширение географии работы сервиса, добавление функций СМС-рассылки и готовых модулей для интеграции телефонии в популярные CRM-системы.
Работа над проектом продолжается и сейчас. Команда планомерно вводит в систему новый функционал и модули, расширяет возможности личного кабинета и интеграции со сторонними сервисами.
Новая платформа отличается продуманной архитектурой и хорошо исполнена технически. Это масштабный облачный сервис самых высоких стандартов, ради полировки которого команда не жалела сил и времени. Мы гордимся этим кейсом, ведь нам удалось не только сделать качественный продукт, но и обрести опыт в новой для себя индустрии.