Рассказываем, как мы, Hawking Bros, помогли крупному онлайн-ритейлеру завершить затянувшийся перезапуск интернет-магазина, увеличить его производительность и отказоустойчивость при средней посещаемости в 75 000 пользователей в сутки.
Сантехника-Онлайн.Ру — это лидер рынка по продажам сантехнических товаров, входит в топ-50 интернет-магазинов России по версии Data Insight. На момент начала работы с нами у клиента уже было две параллельно существующие версии интернет-магазина: старая и новая.
Прежнюю не вывели из эксплуатации, потому что свежая не до конца отвечала требованиям компании. Завершить разработку быстро оказалось непросто из-за разветвленной системы внутренней проверки и согласований: у Сантехники-Онлайн была собственная команда разработки, тестирования и аналитики. На согласование каждой итерации уходили недели — обычная ситуация в enterprise-разработке. В результате к запланированной дате запуска часть решений попросту устарела, зато прибавился груз задач и предложений, которые возникли после ввода в эксплуатацию нового сайта. Привет, порочный круг согласований и обсуждений, который приносит столько боли, но без которого крупному проекту не выжить.
«У нас был большой инхаус, который работал над новой версией интернет-магазина. Однако чувствовались проблемы на многих этапах разработки: как при постановке и приоритезации задач, так и при администрировании процесса разработки. Остро ощущалась нехватка менеджмента проекта и знаний по управлению многочисленной командой. Это вылилось в определенные финансовые издержки. В итоге руководство компании поставило задачу о переводе большей части разработки на внешних экспертов», — Евгений Сахаров, CTO Сантехника-Онлайн.
Так выглядела схема работы над проектом и контроля задач
Тем не менее новую версию интернет-магазина запустили, и какое-то время обе площадки делили между собой трафик, что создавало определенные неудобства как для покупателей и дилеров, так и для сотрудников самой компании.
На этой стадии мы и включились в игру. Силы внутренней команды разработки клиент бросил на завершение миграции в облачную IT-инфраструктуру, а мы взялись перезапускать интернет-магазин, взяв на себя фронт, бэк и техподдержку. Стратегию и цели проекта разрабатывал IT-отдел клиента, на нашей стороне было составление конкретного плана тактических действий по направлениям работ.
Мы занимались оптимизацией затрат и ресурсов для разработки. При этом мы не демпинговали и не снижали цену в ущерб себе или клиенту. На проекте была возможность сократить объем трудозатрат. Вопрос был лишь в том, удастся ли клиенту и нам за пару первых месяцев работы частично перестроить процессы, особенно менеджмент, прием и отгрузку итераций правок
В качестве CMS использовался 1С-Битрикс, который был сильно кастомизирован, что повысило его гибкость и производительность. Поддержание интернет-магазина в живом состоянии постоянно требует тестирования гипотез, внесения корректировок и точечных исправлений. Если все это делать с помощью разработчиков, то о нужной скорости можно забыть. Кроме того, часы ценных специалистов тратятся на мелкие задачи. Поэтому мы расширили функциональность, и теперь контент-менеджеры могут быстро настраивать блоки и обновлять информацию на сайте самостоятельно.
Помимо этого сотрудники уже много лет работали на Битриксе и привыкли к его интерфейсам. «Переезжать» они не хотели, поэтому мы решили просто расширить возможности текущей CMS.
У Сантехники-Онлайн бОльшая часть оплат и транзакций совершается онлайн — в офлайне функционируют только пункты выдачи. Кроме того, речь идет о высоконагруженном интернет-магазине. А как гласит русская народная поговорка, где видишь ecommerce, там жди интеграций.
Методологию мы строили, исходя из нескольких условий:
С первым пунктом все оказалось так, как мы и предполагали. За неделю число незапланированных задач могло достигать нескольких десятков. Для интернет-магазина это нормальная ситуация, разработчику нужно просто быть к этому готовым. Дополнительные таски как раз относились к категории конверсионных: скажем, исправить баг в форме регистрации. Такие задачи надо быстро внедрять и выносить на бой, а еще нужно сделать процесс разработки не только оперативным, но и гибким, чтобы каждый участник проекта понимал, что происходит и чтобы задачи из разряда «надо вчера» не вытесняли стратегические.
Наиболее эффективным методом оказались недельные спринты: чем короче спринт, тем чаще выходят релизы и быстрее можно получить обратную связь. Это, в свою очередь, дает возможность скорректировать направление работы, опираясь на пользовательские инсайты и фидбек от клиента.
Код-ревью также частично перешел к нам. Это позволило не создавать очередь задач на стороне клиента и не наращивать технический долг. Под нож пошел и первоначальный объем тестирования, так как оно проводилось слишком часто. Раз в две недели мы встречались очно с топ-менеджментом компании. Встречи проходили в формате рабочей группы — мы разбирали репорт с прошлой встречи и намечали дальнейшие шаги. Таким образом, работала система кросс-контроля по выполнению задач. Клиент проверял нас, мы — его.
Пример репорта
Помимо этого мы помогли заказчику разобраться с тикетовой системой. Команда проекта и задачи существовали в 2 трекерах одновременно: Битрикс24 и YouTrack. Из-за этого таски дублировались, не всегда было ясно, какие задачи в работе, а какие сдвинуты по сроку. Да и в целом, тяжело вести учет и контроль задач одинаково эффективно в двух системах. Принимайте во внимание и тот факт, что одинаковые задачи ставились разными людьми и содержали разные формулировки. Отслеживать дублирование приходилось вручную.
Продолжать работу в двух системах было бессмысленно, и мы отказались от Битрикс24. Он остался для внутренней коммуникации клиента. Задачи по разработке сайта стали обрабатываться менеджером со стороны Сантехники-Онлайн и переноситься в YouTrack, где мы использовали Канбан и ввели приоритезацию по таскам. Параллельно мы вели ежедневную отчетность в Google-таблицах. В отчете у нас рассчитывалось процентное соотношение по задачам по стадиям работ и объем потраченных и запланированных человеко-часов. Клиент всегда видел полную и прозрачную картину того, что происходит на проекте, какие задачи закрыты, какие еще в работе.
«В месяц на сторону клиента передавалось около 200 задач, такое же количество поступало в разработку. Чтобы обрабатывать весь поток, использовался Канбан-метод. Задачи распределялись по статусам и приоритетам между свободными исполнителями, принимались, синхронизировались. В течение дня на сторону клиента регулярно передавались закрытые задачи», — Алексей Нефедов, менеджер проекта.
Кроме того, для отдельных крупных задач мы использовали диаграмму сгорания. Затем мы внедрили накопительную диаграмму потока (CFD). Последняя позволяла быстро оценить и понять, на каком этапе работы скапливается больше всего задач.
Диаграмма сгорания, реальный пример с проекта
Еще одна особенность проекта — неравномерное распределение нагрузки. Были месяцы, когда мы вырабатывали по 300 часов, а бывало и так, что это количество часов достигало 1500. На этот случай мы быстро масштабировали команду: задействовали дополнительного фронта, бэка или сразу нескольких специалистов, которые быстро погружались в проект. Это позволяло за считанные дни увеличить количество вырабатываемых часов без потери качества.
«Команда Hawking Bros. может быстро масштабироваться: у нас наблюдалась острая нехватка ресурсов в осенние месяцы, когда была самая большая загрузка по веб-разработке. HB, благодаря быстрому подключению дополнительных специалистов, всего лишь за месяц увеличила объем вырабатываемых часов в 2 раза. В целом, опыт совместной работы, а также хороший менеджмент со стороны Hawking Bros. помогли нам увидеть проблемные зоны и упорядочить внутреннюю и внешнюю веб-разработку», — Евгений Сахаров, CTO Сантехника-Онлайн.
Результаты За год мы перезапустили основной канал продаж компании с расширенной функциональностью и постоянной актуализацией данных. Теперь у компании одна площадка для взаимодействия со всеми потребителями. Кроме того, мы помогли клиенту упорядочить работу на проекте и выстроить понятный и прозрачный процесс взаимодействия внутренней и аутсорс-команд.
Если сравнивать годовую сумму контракта с нашей компанией и расходы на содержание внутренней команды (заработная плата, онбординг специалистов и т.п.), то экономия клиента составила 50%.