В первой части гайда RuStore по доставке фичей мы — техлид backend-команды Rustore Григорий Рябов и руководитель команды разработки RuStore: направление платежей, Александр Котельников, разобрали подготовительные этапы, которые закладывают прочный фундамент для всей разработки: от Kick-off и архитектурного планирования до Technical Design и тестовой стратегии.

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

Напомним, зачем мы вообще взялись за этот гайд и кому он будет полезен:

  • тем, кто хочет навести порядок в процессе доставки фичей;

  • тимлидам и менеджерам, которым нужна предсказуемость;

  • инженерам, которые хотят меньше хаоса и больше системности.

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

Разработка и интеграция: превращаем идеи в код

Зачем нужен этот этап?

У нас есть утверждённый подробный Technical Design и понятные входные данные. Пора кодить, тестировать и интегрировать фичу в систему. 

Цель этапа — реализовать фичу в соответствии с Technical Design, интегрировать с другими компонентами системы, обеспечить отказоустойчивость, мониторинг и подготовить код к тестированию и последующему релизу.

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

Как проходит работа

1. Подготавливаем окружение

  • Готовы ли нужные стенды (Dev, Stage, Test)?

  • Есть ли доступы ко всем сервисам?

  • Настроены ли переменные окружения?

2. Пишем код

  • Разработка ведётся по задачам из Technical Design.

  • Внедряем feature toggle для безопасной активации.

  • Пишем основную бизнес-логику.

  • Интегрируемся с другими компонентами — работа с API, базами данных, очередями сообщений.

  • Настраиваем логирование, сбор метрик, алерты.

  • Работаем с доработками и исправлениями — перед выкладкой фиксируем все найденные недочёты.

  • Инжекты в изначально декомпозированные планы запрещены — любые изменения должны проходить отдельный процесс согласования.

  • Планируем дополнительный этап работы при необходимости (для тилида) — управляем ожиданиями заинтересованных лиц.

3. Проверяем и тестируем код

  • Прогоняем локальные тесты.

  • Проверяем, не сломали ли другие части системы.

Результаты этапа

  • Готова реализация фичи.

  • Feature toggle работают корректно.

  • Задачи готовы к тестированию.

  • Настроены механизмы логирования, мониторинга и алертов.

  • Подготовлен код, учитывающий отказоустойчивость и обработку ошибок.

  • Возможность гибкого включения и отката фичи через feature toggle.

Проверочный вопрос этапа: если фича упадёт в проде — мы поймём, почему? Сможем откатить? Если нет, надо улучшить мониторинг и логи!

Наш опыт

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

Feature toggles позволяют нам лить код в мастер, не влияя на релизные процессы, а также дают отложенное тестирование и возможность ограниченной раскатки на прод. Всё это — 100% уверенность в работе фичи и ее мониторинга.

Разработка автотестов и реализация бизнес-метрик

Зачем нужен этот этап?

Автоматизация тестирования и настройка бизнес-метрик помогают гарантировать стабильность работы фичи и обеспечить контроль её эффективности после релиза. Этот этап минимизирует вероятность регрессионных багов, ускоряет выпуск обновлений и позволяет оперативно реагировать на изменения в поведении системы.

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

Без автотестов разработка замедляется, так как каждое изменение требует ручной проверки. А без метрик невозможно оценить влияние фичи на пользователей и бизнес-показатели.

Как проходит работа

1. Реализуем автотесты и метрики

  • Покрываем ключевые сценарии юнит- и интеграционными тестами.

  • Для критических сценариев разрабатываем API-тесты и проверки с UI (web/mobile).

  • Настраиваем CI/CD для автоматического запуска тестов.

  • Настраиваем сбор ключевых бизнес-метрик и интегрируем их в систему аналитики.

  • Настраиваем дашборды и алерты в Grafana, Kibana или другом инструменте мониторинга.

2. Проверяем корректность работы тестов и мониторинга

  • Автотесты успешно проходят в CI/CD без ложных срабатываний.

  • Бизнес-метрики корректно собираются и анализируются.

  • Алерты на критические ошибки и аномалии работают без избыточного шума.

Результаты этапа

  • Готовый набор автотестов, покрывающий ключевые сценарии.

  • Запуск тестов автоматизирован в CI/CD, снижая время на регресс.

  • Настроены бизнес-метрики и дашборды, позволяя анализировать поведение пользователей.

  • Рабочие алерты, сигнализирующие о сбоях и критических изменениях в системе.

Этот этап критически важен для устойчивости и наблюдаемости системы. Чем раньше тесты и метрики внедрены в процесс, тем быстрее можно находить и устранять проблемы.

Тест-дизайн и тестирование

Зачем нужен этот этап?

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

Цель этапа — проверить работоспособность фичи, выявить дефекты, убедиться в соответствии бизнес- и техническим требованиям и подготовить её к выпуску.

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

Как проходит работа

1. Определяем ключевые сценарии

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

  • Определяем критические пользовательские сценарии.

  • Выявляем граничные случаи и возможные ошибки.

2. Готовим тест-кейсы и тестируем фичу

  • Создаём тест-кейсы и тестовые данные.

  • Определяем тест-планы для CI/CD.

  • Проводим тестирование:

    • проверяем базовые и критические сценарии;

    • анализируем влияние изменений на другие части системы;

    • фиксируем баги, передаём их в разработку.

  • Составляем итоговую тестовую документацию.

Результаты этапа

  • Готовы тест-кейсы и тест-планы.

  • Проверены все необходимые сценарии.

  • Зафиксированы результаты тестирования.

  • Исправлены критические баги.

  • Фича готова к финальной проверке перед релизом.

Быстрый тест: если QA из другой команды может взять кейс и протестировать — всё хорошо.

Наш опыт

С переходом на верхнеуровневые тест-планы мы начали гораздо точнее оценивать сроки тестирования и добиваться совпадения планов с фактом при разработке фичей. Это также помогло заранее понимать объём предстоящей автоматизации и эффективнее планировать работу над автотестами.

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

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

Что дальше?

Во второй части гайда мы прошли путь от утверждённого Technical Design до полностью реализованной, протестированной и наблюдаемой фичи. Разработка, интеграция, автотесты, метрики и тест-дизайн — всё это не просто формальности, а важные шаги, которые обеспечивают стабильность, отказоустойчивость и предсказуемость поставки фичи.

Когда каждый этап работает как часы — прод уже не пугает, а становится ожидаемым итогом системной работы.

В третьей части гайда мы расскажем:

  • как подготовить фичу к релизу: от финального тестирования до disaster- и нагрузочного тестирования;

  • как мы настраиваем мониторинг и алерты для выхода в прод;

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

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

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