Shred Labs — стартап в сфере онлайн-фитнеса, который основали в 2018 году два персональных тренера из Лос-Анджелеса. Чарли Хейл и Адам Саммер запустили мобильное приложение с записями тренировок для занятий дома и в тренажерном зале.
Проект привлек несколько раундов инвестиций. Приложение использовали больше 100 тысяч человек, но спустя два года оно все еще работало на базе кода, который написали по принципу MVP — быстро и не задумываясь о масштабировании в будущем. Бэкенд приложения в разное время разрабатывали несколько отдельных команд. К 2020 году стало понятно, что код проекта слишком запутанный, в нем множество повторов, не хватает комментариев и документации.
При этом популярность онлайн-тренировок быстро росла: из-за пандемии Covid-19 закрывались фитнес-залы, люди самоизолировались. Чтобы получить максимальную выгоду от потока новых пользователей, приложение Shred нужно было развивать, добавлять функциональность, оптимизировать его работу для возросшей нагрузки.
В это же время стартовал новый раунд инвестиций, и Shred Labs обратились за помощью к команде Resolventa.
Команде Resolventa предстояло решить две большие задачи:
Для этого нужно было проанализировать API и подготовить документацию, оптимизировать код, избавиться от устаревших и повторяющихся функций, добавить тесты. И одновременно с этим — наладить процессы разработки и внедрения.
Команда Resolventa столкнулась с противоречием: с одной стороны, нужно было как можно быстрее добавить в Shred новые возможности. С другой стороны, сначала необходимо было навести порядок в бэкенде проекта. Внедрение функциональности в существующий код могло вызвать ошибки и нестабильную работу приложения. Разработчикам пришлось бы прикладывать дополнительные усилия, чтобы поддерживать работоспособность проекта. Для небольших срочных задач такой подход может сработать, но для долговременной перспективы не подходит.
При этом отложить работу над новыми возможностями на несколько месяцев было нельзя, потому что клиент хотел привлечь новых пользователей в самые короткие сроки. Поэтому команда приняла решение разрабатывать новые модули, оптимизировать существующий код и писать документацию параллельно.
В первую очередь для приложения настроили интеграцию с платежными системами Apple Pay и Stripe, добавили возможность загрузить свое видео с тренировкой и запустить плейлист из Spotify. Кроме того, разработали модуль для продаж приложения корпоративным клиентам.
Работа с документацией для API и покрытие кода тестами заняли около двух месяцев. За это время специалисты Resolventa:
Одновременно команда внедряла привычные процессы: Scrum, код-ревью, непрерывную интеграцию и внедрение. Resolventa использует их во всех проектах, чтобы обеспечить прозрачную, гибкую и быструю разработку.
В следующие месяцы эксперты приводили в порядок и оптимизировали код. В первую очередь переписывали те части приложения, которые работали медленно. Также разработчики вычищали баги и ошибки, переписывали функциональность и объединяли похожие функции, чтобы в коде не было повторов.
Команда обновила основу Shred — фреймворк Symfony. В 2020 году вендор перестал выпускать обновления безопасности для устаревшей третьей версии фреймворка, поэтому приложение перенесли на актуальную пятую версию.
Через полгода Resolventa завершила все крупные задачи. Клиент высоко оценил работу команды и попросил заняться другими элементами проекта: запустить личный кабинет пользователя на сайте, промо-страницы и Android-приложение.
Resolventa спасла Shred от коллапса разработки: MVP с запутанным кодом превратили в стабильное приложение, которое выдерживает высокую нагрузку. Команда подготовила понятную документацию по API, поэтому удалось значительно ускорить разработку мобильного приложения, уменьшить количество багов и скорость их исправления. Наконец, внедрение методологии Scrum сделало разработку предсказуемой и стабильной для клиента.
Gerald Chao. CTO. Shred:
В команде работают отличные профессионалы. Они пишут качественное ПО в установленные сроки и с минимальным количеством ошибок, благодаря своим знаниям, навыкам и вниманию к деталям. Они быстро и четко понимают требования и не нуждаются в подробных спецификациях. С ними приятно работать, искренне рекомендую.
Resolventa продолжает работать с проектом Shred: поддерживает и развивает бэкенд, а также разрабатывает Android-приложение.
PHP, Symfony, MySQL, Redis, Kotlin, Docker, AWS, React, TravisCI, PHPUnit
Apple Pay, Stripe, OneSignal, Mailjet, AppsFlyer, Facebook Business, MixPanel, Spotify, Datadog