Обновление ИТ-продукта: с нуля за 1,5 месяца
Обзор проекта
Нередки случаи, когда мы беремся за проект, в котором уже есть разработанный MVP и с его помощью даже проверены некоторые гипотезы. Но для развития и получения новых инвестиций иногда требуется основательное обновление ИТ-продукта. Обычно на этом этапе возникает много технических вопросов, один из главных – внести изменения в существующий ИТ-продукт или вообще переделать его?
Этот вопрос один из самых частых потому, что на этапе создания MVP обычно не продумывается и не закладывается масштабируемая архитектура. Продукт делается довольно быстро, цель – как можно скорее проверить гипотезы и понять, стоит ли продолжать работать в этом направлении. Поэтому особенно остро технические вопросы встают уже когда продукт успешно прошел тест-драйв, и нужно двигаться дальше.
Часто сроки решения задач масштабирования ограничивают инвесторы, поэтому выбор приходится делать быстро. В таких случаях мы, в первую очередь, смотрим, какой вариант будет самым быстрым и в то же время не выйдет за рамки бюджета заказчика. Немаловажно и то, с чем к нам пришел клиент – какие технологии использовались при создании MVP, есть ли полная документация, хорошо ли читаем написанный ранее код и т. п.
Задача
Похожую задачу мы решали недавно. Заказчик пришел с уже работающим сервисом, но его развитие сильно ограничивалось отсутствием интеграции с удобной платежной системой. По сути, клиенты могли оплатить услугу только одним непопулярным способом, из-за чего было проблематично транслировать проект на более широкую аудиторию. На начальном этапе этот момент был не в приоритете, поскольку тестировались другие гипотезы, но сейчас стало крайне важным найти решение, подходящее для массового рынка.
С технологической стороны проблема стояла такая: адаптировать существующий сервис заказчика под оплату через другие платежные агрегаторы или создать сервис заново.
Так как сроки поджимали и уже была договоренность с инвестором, который был заинтересован в развитии проекта, важно было выбрать оптимальный вариант реализации и уложиться в 1,5 месяца.
На первый взгляд часто кажется, что доработать существующий сервис проще, ведь база уже готова. Но на практике, это не всегда так. В данном случае у нас не было ни качественного исходного кода ранее разработанного MVP, ни документации на него, поэтому не представлялось возможным быстро подхватить задачу. После того, как мы проанализировали ситуацию и просчитали экономику проекта, оказалось, что будет быстрее и дешевле сделать новый MVP с использованием своего технологического стека, нежели разбираться в чужом коде и наводить в нем порядок.
Решение
Команда оперативно приняла задачу и предложила аналогичный продукт, но уже с интеграцией со стандартными платежными сервисами. На этапе проработки архитектуры будущего продукта, мы выбирали из трех самых популярных платежных агрегаторов и остановились на сервисе Яндекс.Деньги. Этот сервис позволял наиболее полно реализовать требуемую бизнес-логику: возможность оплаты любым удобным способом – всеми банковскими картами и электронными кошельками, распространенными на территории РФ.
Процесс интеграции с платежным агрегатором Яндекс.Деньги был самой сложной задачей и занял около трети всего времени работы над проектом. Неопределенность была в том, что мы фактически зависели от работы стороннего сервиса и не могли предугадать, как поведут себя обе системы в том или ином сценарии работы. Чтобы интеграция работала корректно, пришлось немало потрудиться над ее отладкой.
В остальное время мы занимались разработкой бэкенда и фронтенда. Функциональность и интерфейс мы сделали практически тот же, что был у заказчика изначально, дополнительно улучшив мобильную верстку. Основная часть разработки велась на Java / React, но так как некоторые вещи было дешевле реализовать на Python, то для определенных функций выбрали фреймворк Django.
В результате получилось веб-приложение, адаптированное под десктоп и мобильные устройства, с возможностью совершения оплаты услуг всеми распространенными в РФ способами.
Статус
За установленные 1,5 месяца и не выходя за рамки бюджета мы смогли сделать обновление ИТ-продукта с нуля. Сейчас он отвечает всем требованиям заказчика и достаточен для тестирования новых гипотез. Когда мы узнали, что продукт был успешно принят инвестором, мы убедились, что на старте приняли верное решение.
Технологии:
Back-end: Java, Python
Front-end: React
Front-end: React