Хаос в разработке веб-сервиса — это провал. Как мы спасли криптопроект заказчика и запустили MVP за 3 месяца

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

Хаос в разработке веб-сервиса — это провал. Как мы спасли криптопроект заказчика и запустили MVP за 3 месяца

Привет! Это Вика Чебодаева — проектный менеджер в MetaLamp. Часто мы разрабатываем продукты с нуля: определяем набор их функциональностей, делаем прототип и дизайн, доводим проект до MVP. Но иногда клиенты приходят к нам, когда процесс разработки уже запущен и им нужна помощь с тем, чтобы завершить продукт. Рассказываем, как мы создавали криптобиржу, дважды переносили проект из одной сети в другую и каждый раз меняли настройки.

Подписывайтесь на наш уютный крипто телеграм-канал: там мы обсуждаем актуальные новости, публикуем обзоры и анонсы интересных материалов о мире web3💎

Подключились к проекту в середине разработки

Клиент решил создать стартап — биржу для торговли криптовалютой, где пользователи могут обменивать цифровые активы без посредников. Референсом стала популярная криптобиржа Camelot DEX, которая реализована в сети Arbitrum. Клиент хотел создать такой же успешный проект, но на другой технологии, поэтому мы остановились на Scroll.

Scroll — блокчейн второго уровня, который создан для масштабирования сети Ethereum. У этого решения ниже комиссия за транзакции и выше скорость их обработки, чем у других сетей. Рыночная капитализация Scroll составляет более 660 млн долларов. Чтобы лучше понять, как он работает, можно прочитать технический обзор от нашей Solidity команды.

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

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

  • Завершить разработку MVP, которая включает функционал обмена токенов и добавления пулов ликвидности.
  • Сделать стейкинг для провайдеров ликвидности. Он включает блокировку LP-токенов и получение ревордов в токенах протокола. Это один из механизмов привлечения ликвидности наряду с комиссиями, которые получают провайдеры.

Исправили ошибки предыдущей команды разработчиков

Хоть мы и не начинали разработку веб-сервиса с нуля, процесс растянулся на несколько этапов. Вот что сделали в первой итерации ↓

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

Уже в первой верстке на дашборде видно основные фичи веб-сервиса: обмен токенов, лаунчпад, пулы, NFTs
Уже в первой верстке на дашборде видно основные фичи веб-сервиса: обмен токенов, лаунчпад, пулы, NFTs

В команде клиента не было человека, который отвечал бы за то, как должен выглядеть конечный продукт с технической стороны. Заказчик выбрал референс — Camelot DEX, но еще нужно проработать техтребования для команды, которая будет делать подобный проект.

Обычно организационные задачи решает проектный менеджер. Он выступает как связующее звено между заказчиком и технической командой. Этот специалист выполняет следующие задачи:

  • распределяет скоуп работ и отвечает на вопросы команды;
  • следит за дедлайнами и роадмапом;
  • отчитывается перед заказчиком о том, как продвигается разработка продукта;
  • синхронизирует работу команды с ожиданиями клиента.

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

Когда клиент обратился к нам, в первую очередь мы подключили к работе команду с проектным менеджером. После обзора готовых материалов собрали эти данные, показали их заказчику и уточнили, что от нас требуется. В итоге решили делать самую распространенную версию DEX V2, которая создана на основе протокола Uniswap v2.

Исправили и доработали смарт-контракты. Изначально мы взялись только за фронтенд и разрабатывали функционал продукта. На старте проекта нам не хватало много деталей — например, информации о том, как рассчитываются цены в долларах, показатели TVL и APR для конкретного протокола. Чтобы восполнить пробелы, мы обращались к документации Camelot DEX и Uniswap.

Показатели TVL и APR отражаются на странице с пулами ликвидности 
Показатели TVL и APR отражаются на странице с пулами ликвидности 

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

Наш solidity-разработчик реорганизовал кодовую базу и выполнил правильный деплой скриптов, чтобы сохранить версии компиляторов и библиотек, под которые изначально написаны смарт-контракты. Они были подогнаны под последнюю версию, а оставлять код в таком виде небезопасно: это сделало бы веб-сервис уязвимым к взлому.

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

У нашего веб-приложения не было сервера, поэтому мы доработали и настроили сабграф Camelot DEX для наших смарт-контрактов, иначе получать и обрабатывать данные стало бы трудозатратно.

Сверстали UI. Изначально заказчик пришел с готовым дизайном и частичной версткой, но в процессе работы изменились требования и объем работ. Из-за этого команде пришлось делать UI полностью с нуля, и из первоначального фронтенда мы по итогу ничего не использовали.

В конце первого этапа интегрировали фронт и смарт-контракты и отправили демку заказчику.

Перенесли проект в другую сеть, чтобы увеличить скорость транзакций и снизить расходы

Клиент хотел, чтобы у веб-сервиса была бóльшая масштабируемость, более быстрая скорость транзакций и повышенная безопасность платформы при более низких затратах. Именно поэтому после релиза проекта на Scroll заказчик решил перенести проект в другую сеть — ZKSync. Это решение второго уровня для Ethereum.

Для перехода в новую сеть мы согласовали новые требования по смарт-контрактам. На втором круге разработки у нас уже не было техзадания, и команда использовала только документацию Camelot DEX. Нам понадобилось около недели, чтобы изучить ее и проработать перенос проекта на ZKSync.

В отличие от Scroll блокчейн ZKSync не так хорошо совместим с Ethereum из-за своей архитектуры. В частности, в этой сети по-другому вычисляются адреса пар, поэтому нам пришлось адаптировать код.

Еще при переходе в новую сеть пришлось заново настраивать сабграф. Он зависит от того, какие токены использует DEX и на основе каких пар рассчитывается средневзвешенное значение стоимости ETH. В зависимости от этих данных определяются и другие цены.

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

Еще раз адаптировали продукт под новую сеть

После второй итерации ZKSync оказалась малоликвидной, поэтому клиент решил снова перенести проект в другую сеть. На этот раз выбрали Base — еще один блокчейн второго уровня для масштабирования Ethereum.

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

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

Разработали готовый MVP за 3 месяца

Мы довели проект до готового MVP с функционалом обмена токенов и добавлением пулов ликвидности, а также решили другие задачи клиента:

  • сделали стейкинг LP-токенов для провайдеров ликвидности с расчетом и выплатой реводров;
  • рассчитали APR для DEX и стейкинга.
Так выглядит страница с формами добавления ликвидности 
Так выглядит страница с формами добавления ликвидности 

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

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

Клиенту понравился результат. Получился готовый веб-сервис, который он может тестировать среди пользователей. Вот что написал заказчик ↓

«Очень хорошо! Я только что прошел через него, и наконец-то он начинает выглядеть как полезный продукт. Отличная работа» 
«Очень хорошо! Я только что прошел через него, и наконец-то он начинает выглядеть как полезный продукт. Отличная работа» 

Мы заменили клиенту фрилансеров без руководителя полноценной командой разработки на аутсорсе. Это ускорило процесс создания продукта и оптимизировало его качество. В итоге заказчик получил MVP, готовый к релизу.

Если вы тоже хотите разработать веб-сервис с нуля или по готовым материалам, запишитесь к нам на консультацию.

3939
66
28 комментариев

У популярных криптобирж документация есть просто в свободном доступе? то есть любой может ее найти и сделать свой сервис на базе этого?

2
Ответить

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

3
Ответить

Если бы заказчик изначально принес фрилансерам подробное тз, может они справились бы лучше. Как думаете?

2
Ответить

Вполне возможно, однако дело не только в ТЗ. Дело ещё в ответственном за управление разработки в команде заказчика — его не было. По тем или иным причинам не всегда со стороны заказчика есть человек, кто на 100% погружен в рутину, и управлением всей командой разработки. А мы как раз со своей стороны выделили такого человека.

2
Ответить

Когда можно будет оценить, насколько проект получился успешным?

2
Ответить

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

2
Ответить