Слогер Создать блог
Разработка

Как мы сделали редизайн приложения, не меняя ни строчки логики

Три разработчика, дизайнер на неполный день и шесть недель без переработок. Рассказываем, как ограничения помогают делать больше, а LLM берёт на себя рутину.

Я никогда не видел, чтобы проект прошёл настолько гладко. Три разработчика, дизайнер на полставки, шесть недель работы — и почти ни одного бага на проде. Без героизма, без переработок. Просто чёткий план: сузить задачу, собрать базовые компоненты и позволить нейросети спокойно выполнять ручную работу.

Питч

Приложение работало, было простым, пользователи даже называли его «дуракоустойчивым». Но, честно говоря, оно мало что умело. Никто из нас им особо не гордился. Дизайн хромал: каждая фича выглядела по-своему, потому что использовалась та дизайн-система, которая была в моде в момент её создания. А последняя, полная дизайн-система, где были проработаны все уровни и страницы под фирменный стиль, так и пылилась на полке — её никто не применял.

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

Чтобы решить обе проблемы, наш дизайнер предложил полный редизайн: взять ту самую невостребованную дизайн-систему, но переосмыслить её с учётом будущих фич.

Согласование

Макеты получились красивыми, с новыми функциями в центре внимания, и туда же добавили пару идей сверху. Руководство подписало их без вопросов. Разрыв между «что у нас есть» и «что могло бы быть» невозможно было не заметить.

Разработчики тоже обрадовались — никто не любит поддерживать приложение-франкенштейн. План был такой: «постепенная консистентность» — когда страницы и флоу меняются, мы подтягиваем их к новой дизайн-системе. Но воз и ныне там: толком ничего не двигалось. И вот наконец появился повод бросить всё и заняться редизайном.

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

Более того, питч не покрывал все страницы: детально рисовать всё приложение только ради согласования было бы пустой тратой времени. Часть флоу пришлось бы импровизировать.

Мы всё равно решили делать.

Решение

Раз уж мы взялись, то жёстко ограничивали себя во времени. Четыре недели. За это время нужно построить максимум, потом тестирование, исправление багов и релиз. Никаких продлений, никакого расширения границ, никаких «ещё одну страничку».

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

Никаких изменений логики. Только визуал и структура.

План

Мы завели тикет на каждый флоу, каждую страницу, каждую фичу. Потом отсортировали их по частоте использования и ценности и отчертили линию на объёме двух спринтов. Эта линия стала нашим «go/no-go»: если мы не верили, что успеем, — не начинали. Спойлер: под линию попало достаточно, чтобы игра стоила свеч.

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

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

Основная работа

Когда у нас появились базовые компоненты, которым мы доверяли — сделанные вручную, совпадающие с макетами, понятные всей команде, — остальное приложение перестало быть дизайнерской задачей и превратилось в задачу сборки. Для каждой новой страницы мы говорили: «Вот текущая версия, вот примерно то, что мы хотим получить, используй только эти компоненты». Иногда был референс, иногда нет — и это не имело значения. Контент не менялся, менялась только система, через которую он отображался.

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

Результат

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

Поворот

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

Они были достаточно мелкими, чтобы их добавление не угрожало тестированию и не сорвало сроки, поэтому мы согласились. Но не стали блокировать из-за них раскатку. Если бы они могли сломать UAT или занять больше времени, чем позволял план, я бы их не пустил. Мы не собирались откладывать релиз и терять драгоценное время на снижение рисков. Мы не ждали, пока они доделаются, чтобы выкатиться на 10% — они должны были успеть только к раскатке на 100%.

Поворот на повороте

Потом прилетело изменение цен, требовавшее функциональных правок, чтобы приложение не путало людей. И был жёсткий дедлайн на следующей неделе. Дважды делать одно и то же — сначала в старом UI, потом в новом — не хотелось, поэтому мы сжали раскатку: вместо двух недель с шагами 10%, 50% и 100% пошли сразу с 10% на 100% через несколько дней.

Глубокий вдох

Мы выкатились на 10% и внутренними письмами предупредили остальную компанию, что скоро будет. Внутри царило воодушевление, а пользователи? Никто не сказал ни слова — ни жалоб, ни комментариев.

Мы доделали дополнительные фичи и изменение цен, затем раскатили всем, включая внешние коммуникации. И снова: только положительные отзывы внутри. Никакого всплеска тикетов в поддержку, никаких упоминаний в соцсетях. Успех?

Через неделю нашли один мелкий баг и исправили в тот же день. Это весь пост-релизный список. Остальные мелочи доделывались в фоне, пока мы переключились на следующее.

Успех.

Я вёл много проектов и участвовал в ещё большем количестве. Немногие проходили так гладко, и ни один не ощущался таким быстрым. Четыре недели разработки, неделя тестирования, неделя раскатки и парочка дополнительных фич по пути. Без переработок, без выгорания, просто чёткий план. Мы не позволили себе отвлечься и сделали так, чтобы нейросети было безопасно и просто работать автономно.

Я никогда не использовал слово «спринт» так буквально.

По материалам: design. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.