Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект

Пилить идеальный продукт год или запустить тестовую версию через полгода, собрать отзывы пользователей и уже получать прибыль? Мы всегда за второй вариант, который называем гибким подходом. В статье объясняем, почему метод ускоренной разработки выигрывает.

Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект

Нас никто не спрашивал, но мы сделаем вид, что получили такой вопрос: «У меня свой интернет-магазин. Разработчики делают каждое обновление сто лет, что с этим делать?» Ответ: внедрять гибкий подход к задачам.

Что мы подразумеваем под гибким подходом

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

Управление процессами

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

Один из примеров в нашей работе, где бизнес выбрал MVP, — это McDonald’s. Проект запустился через шесть месяцев после старта с меньшим функционалом, а ещё через шесть вышла вся система целиком в том виде, в котором и планировалось. Благодаря такому подходу мы сократили срок запуска в два раза, а бизнес быстрее стал получать выгоду — прибыль и отзывы клиентов, которые помогли сделать сервис лучше ещё на этапе разработки.

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

Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект

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

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

Разработка и поддерживаемый код

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

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

Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект

Гибкость архитектуры

Гибкость в разработке — это не только методология, но и выбор архитектурных решений. Для примера разберём монолитную архитектуру и микросервисы:

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

Гибкость — это не про «давайте делать микросервисы, потому что сейчас все так делают». Это про выбор архитектуры под задачи и проект с учётом масштаба, нагрузки и частоты обновлений. Приведём пример из нашей работы. Для MR Group — крупного девелопера недвижимости — мы использовали гибридную архитектуру: монолит на «Битриксе» для хранения объектов (квартир, парковок, офисов) и два микросервиса.

Первый микросервис на Elasticsearch позволяет быстро искать и фильтровать недвижимость, оперативно обновлять данные и поддерживать высокую производительность. Второй отвечает за отправку сообщений клиентам: за уведомления о статусе сделок, подтверждения по электронной почте и SMS. Разделение позволило сделать систему более гибкой: важные процессы вынесены в отдельные сервисы, что упрощает их масштабирование и поддержку.

Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект

DevOps и автоматизация жизненного цикла поставки изменений

Чтобы код как можно быстрее попадал в продакшен, помогут DevOps-практики и несколько тестовых сред:

  • Dev — первое тестирование.
  • Stage — предпродуктовая среда, максимально приближенная к реальной.
  • Prod — финальная версия, доступная пользователям.

Чтобы упростить выпуск обновлений и избежать ошибок, настраивают CI/CD — систему, которая сама проверяет и загружает код. GitLab CI/CD делает это автоматически, снижая вероятность сбоев.

Но важно понимать: не во всех проектах CI/CD изначально правильно настроена. Например, так было в крупной алмазодобывающей компании «Алроса»: её код было тяжело поддерживать и дорабатывать. Тогда мы исправили ошибки, оптимизировали процесс и параллельно внедрили CI/CD и мониторинг. Работу делали поэтапно: не переписывали весь код сразу, а улучшали систему в процессе разработки. Такой подход позволяет стабилизировать проекты без долгих простоев в плане выпуска новых фич.

Как определить, что нужно проекту

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

Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект

Обычно этим занимается руководитель отдела разработки. Он собирает требования, анализирует бизнес-цели и определяет:

  • какие серверы использовать и где их разместить;
  • какие технологии лучше подходят под задачи проекта;
  • как разные сервисы будут взаимодействовать между собой.

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

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

Не следуйте трендам просто потому, что они популярны, — выбирайте решения, которые соответствуют бизнес-целям проекта. Рассказываем, как это сделать, на примере кейса.

Как гибкий подх��д позволяет быстро запускать новые проекты — «Магнит Аптека»

Задача

Когда к нам пришёл «Магнит», у него не было систем, готовых к e-commerce. Нам нужно было создать всё с нуля и интегрировать системы во внутренние процессы компании.

Решение

Мы выбрали монолитную архитектуру на базе «Битрикса», дополнив её фреймворком Symfony и поисковым движком Elasticsearch для работы с большими объёмами данных. Это позволило нам за четыре месяца запустить полностью функционирующий сервис, который принимал заказы, работал с большим каталогом (больше 300 тысяч товаров) и поддерживал стабильную производительность.

Как ускорить выпуск новых фич: гибкая разработка спасёт ваш проект

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

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

26
26 комментариев