
Всем привет! Меня зовут Ксения, я Engineering Manager в кластере Buyers Experience в Uzum Market. Наша команда занимается разработкой страницы товара и отзывов на вебе и в мобильных приложениях.
Путь нашей команды начался достаточно интересно: мы очень долго и упорно разрабатывали новую функциональность, потом очень долго и упорно ее тестировали, пока не довели до идеала ее работу и дизайн. Мы много созванивались друг с другом и обсуждали задачу, и наконец отправили ее в релиз. Вся команда, гордая собой, пришла к Product‑менеджеру, чтобы он увидел плод наших стараний, но он оказался не так рад. Продакт сказал, что это не то, что он хотел изначально. Повисла ужасающая тишина. Эта задача называлась: «Форма для оставления отзывов на главной». Запомните это название, мы еще с ним встретимся.
Следом за продактом пришел дизайнер, который сказал, что вообще эту форму не видел, а мы вроде бы показывали, но все было достаточно суматошно, так что мы действительно не были уверены.
Так начался наш путь к улучшению процесса разработки.
Стало понятно, что нам точно есть, что улучшать:
-
Слишком долгий процесс от груминга до релиза:
выяснение требований;
-
множественные созвоны по постановке задачи разработчикам и QA;
исправления ошибок;
исправления по замечаниям от дизайнера, а иногда мы и вовсе забывали про дизайн-ревью.
-
Большая когнитивная нагрузка но команду:
нужно помнить о постановке задачи;
-
нужно помнить о договоренностях во время обсуждения;
нужно помнить о том, что задачу придется когда-то показать дизайнеру.
Продакт, который получал непредсказуемый для себя результат. А далее — доработки, исправления и невозможность перейти к следующей задаче и быстро тестировать гипотезы.
Есть процесс разработки, он как конвейер. На каждом шаге могут возникнуть проблемы, которые отсрочат получение итогового продукта. У нас был классический процесс, далекий от идеала, и хотелось внести изменения сразу и во многих местах. Но начали, конечно, по порядку.
Выяснить, сколько времени мы тратим в среднем на каждом этапе и между этапами

Идея — Продуктовые требования. Здесь все понятно и зависит от Product‑менеджера, который формулирует продуктовые требования. Он должен описать их в понятном виде. В нашей форме отзыва требований почти не было, так как всем казалось, что мы понимаем задачу одинаково.
Продуктовые требования — Груминг. У команды должен быть запас времени в спринте, чтобы иметь возможность качественно погрумить задачу. Это значит, что продуктовые требования команде нужно отправить заранее, чтобы команда прочитала их и подготовила список вопросов. Обдумала, как это устроено у нас сейчас. Если команда в огне и доделывает в срочном порядке задачи — не ждите качественный груминг с предварительной подготовкой. Обычно у команды есть чек‑лист того, что обязательно должно быть в требованиях, это помогает не ошибиться. У нас был груминг по задаче с формой отзывов, но это был переходный период, и так вышло, что грумили одни люди, а реализовывать пришлось немного другим составом.
Груминг — Разработка. Все зависит от загрузки команды. Не стоит грумить задачу сильно заранее, иначе к моменту реализации команда потеряет контекст и придется делать еще одни груминг. В идеале, задача должна пойти в разработку в течение месяца после груминга. Если пройдет больше времени, тогда точно нужно снова грумить.
В нашей задаче с формой отзывов между разработкой и грумингом прошло достаточно времени, чтобы часть информации забылась.
Разработка. Чем лучше погрумили задачу, тем проще будет разработка. Чем лучше описаны продуктовые требования, тем меньше будет доработок во время тестирования и после проверки Product‑менеджером. В нашем конвейере отсутствует этап «технические требования». Спойлер — поговорим об этом позже, это важный этап, который точно следует добавить. Чем больше устных договоренностей и нечетких формулировок, тем больше будет доработок.
В нашей задаче с формой отзывов было много устных договоренностей, даже слишком. А тестировал ее QA‑специалист, который не был в курсе всего этого, и ему приходилось постоянно переспрашивать, и, конечно, получился «испорченный телефон».
Тестирование. Если четких продуктовых и технических требований нет, то смело добавляйте время на выяснение требований командой QA. Это нужно ей для начала тестирования задачи. Если вы хотели сэкономить на этом время, то на этапе тестирования придется потратить минимум вдвое больше. Также следует определить, проверяет ли QA‑специалист дизайн до того, как этим займется сам дизайнер. Количество времени на тестирование зависит от многих факторов: требований, багов, качества кода, культуры передачи задачи от разработчика к тестировщику.
Проверка дизайна. На этом этапе дизайнер проверяет соответствие реализации дизайну. Возвращать на доработку с этого этапа очень дорого, так как исправления нужно будет еще перетестировать. Чем быстрее проверим дизайн, тем быстрее задача окажется в продакшене. Иногда этим этапом пренебрегают для ускорения релиза, что не всегда правильно.
В нашей задаче с формой отзывов мы отправляли скриншоты в личные сообщения дизайнеру, которые могли затеряться. Вся коммуникация должна была быть вынесена в тред в Slack или в отдельную задачу.
Релиз — Ревью продактом. На этом этапе Product‑менеджер смотрит то, что получилось. На самом деле лучше этим заняться как можно раньше, чтобы быть уверенным, что команда сделала то, что хотел продакт. Доработки на этом этапе самые дорогие. Если фича сделана не так, то придется начинать сначала.
Нашу форму отзывов продакт смотрел уже на проде, это было слишком поздно. Все дальнейшие изменения стоили нам очень дорого, так как приходилось начинать весь процесс с самого начала и проходить все этапы снова.
Перестановка
Для себя мы выстроили определенный порядок, ориентируясь на следующие факторы:
Мы должны как можно раньше исправлять ошибки, требующие больше всего времени. В этом смысле дороже всего — сделать концептуально не то, что задумывал бизнес. Поэтому у нас должны быть четкие требования и максимально быстрая коммуникация с продактом.
Мы должны максимально рано узнавать о доработках и ошибках, то есть нам нужно как можно раньше выполнять шаги с наибольшим количеством доработок.
Никто не должен делать несколько раз одну и ту же работу. Например, QA‑специалист не должен тестировать одно и то же несколько раз.
После нескольких итераций мы пришли к итоговому варианту (последняя строка):

Что изменили:
Ввели этап технических требований. Это четкие требования, переведенные с языка бизнеса на язык разработки. Требования формируем во время и после груминга, а после — проверяем по продуктовым критериям. Сейчас их формулирует и записывает в задачу тимлид.
Проверки дизайнером и продактом вынесли на этап после разработки и код ревью, но до тестирования. Разработчик записывает видео и скриншоты для презентации продакту и для проверки дизайна. Также это помогло повысить качество отдаваемого в тест кода: разработчик при самопроверке уже видит явные ошибки и исправляет их. В результате мы избавились от проявления в тестировании блокирующих багов.
Вынесли в отдельный этап итоговую проверку продактом после тестирования. Иногда во время тестирования обнаруживаем мажорные баги, после исправления которых мы должны еще раз проверить решение вместе с заказчиком.
И тут как будто можно и заканчивать. Мы доработали форму отзывов, и она оказалась действительно классной фичей, которая приносит компании деньги. Product‑менеджер был доволен результатом, клиенты были довольны классным интерфейсом и возможностью оценивать товары, а продавцы были довольны тем, что они получают обратную связь, которую можно анализировать для дальнейшего улучшения продуктов. По этому процессу мы провели еще несколько крупных задач, он работает, наши метрики улучшаются. Но однажды наш любимый продакт принес задачу «Доработки и улучшения формы для оставления отзывов». Вся команда вспомнила нашу первую задачу, и в воздухе снова повисла тишина.
Но хэппи энд действительно случился. Мы провели новую задачу по обновленному процессу, и — «Работает!» Разница оказалась разительной: мы закончили фичу почти вдвое быстрее и смогли зарелизить ее с первого раза без доработок.
Каких результатов мы добились
Основное — мы быстрее доводим задачу от груминга до релиза. Расскажу подробнее, как этого добились.
-
Бизнес заранее понимает, какую функциональность может реализовать команда и сколько времени это займет. Бизнес может заранее пересмотреть свои требования и скорректировать ожидания.
Благодаря хорошо прописанным техническим и бизнес-требованиям разработчику не приходится вспоминать, что мы когда-то обсуждали, искать контекст. Тестировщик не тратит время на выяснение того, как это должно быть, так как требования едины для продакта, разработчика и QA. Длительность разработки задач одинаковой сложности сократилась в среднем на 30% в сравнении с прошлым кварталом.
Продакт видит проблемы и баги сразу же после реализации. В этот момент мы уже можем понять, все ли корректно мы сделали. Если есть большие и серьезные проблемы, мы исправляем их сразу, не переключаясь на другие задачи. В среднем сейчас на одну задачу приходится примерно два возвращения на доработку. Первый раз — после проверки дизайна, второй — после итерации тестирования. Раньше возвращали после нескольких итераций тестирования, так как были блокирующие баги.
-
Дизайн проверяем во время или после проверки кода. Разработчик не успевает переключиться с контекста задачи и сразу же правит баги дизайна.
Мы не передаем блокирующие баги на тестирование, так как разработчик сам проходит позитивный сценарий, когда записывает видео для продакта и дизайнера. Очевидные баги правим еще до тестирования. За последний квартал во время тестирования обнаружили 1 баг. В предыдущем квартале — тоже.
Поскольку большинство багов мы исправляем до тестирования, мы стали обнаруживать их реже и чиним быстрее.
Для Product-менеджера всегда оказывается предсказуемый результат на проде, и нам не приходится переделывать фичу уже после релиза.
Теперь мы получаем приятные сообщения от продакта, когда он еще до выкатки на прод видит новую функциональность.

Комментарии (7)
dkfbm
19.02.2025 10:33Путь нашей команды начался достаточно интересно: мы очень долго и упорно разрабатывали новую функциональность, потом очень долго и упорно ее тестировали, пока не довели до идеала ее работу и дизайн.
....
Эта задача называлась: «Форма для оставления отзывов на главной».
Это не стёб? У меня такие вещи делает один человек за пару дней. А то и за день.
Rhbnbr
19.02.2025 10:33Мой совет вам - переходите к классический модели разработки, где функциональные требования разрабатывает СА. Если это будут делать разработчики на "груминге", то по мере усложнения продукта, качество его будет падать.
IVNSTN
19.02.2025 10:33Здорово, что удалось признать наличие проблемы и решиться пройти путь непростых изменений, плохо, что "чуть менее, чем все" коллективы ходят по абсолютно известным граблям как первооткрыватели (но соглашусь, что это бывает весело и интересно). Осталось разрушить чары кикиморы по фамилии "груминг", разобраться, к чему это слово относится, а что на самом деле никакой не груминг и в формате груминга не делается, найти для груминга более подходящее место в процессе - и теперь уже станет точно лучше и по-взрослому.
Apoheliy
19.02.2025 10:33Пардонь-те, у меня кроме сарказма ничего нет:
Ксения изобрела водопад (waterfall) и "рыдает как девчонка". Согласен, аджайл уже "не торт", но мало-ли другой инкрементальной/RAD/другое-разработки?
Ксения добилась когнитивного диссонанса: Что есть проект? Что есть задача? Одну задачу делает вся команда?
Ксения в отношениях с продактом, т.к. он не посылает её после нулевого/первого раза, а внимательно делает ревью несколько раз для каждой задачи (или проекта);
Ксения очень любит домашних животных: слово "груминг" с производными составляют львиную часть текста. Может вместо новомодных словечек привлечь ПМ-а, САналитика и т.д.?
--
Бизнес заранее понимает, какую функциональность может реализовать команда
По-моему, это вообще огонь. Иногда сама команда не понимает, где у неё какие глюки и как это сдвинет функциональность - а бизнес, вот он ДА, заранее понимает.
--
Нижайше прошу прощения, всё выше написанное - это сарказм.
growth_hacker
Есть еще один популярный метод ускорения, со времен постройки пирамид. Когда приходит начальство и говорит, чтобы до пятницы все сделали. Тогда происходит чудо