Предыстория
Последние годы я фокусируюсь на мобильной разработке с точки зрения собственной экспертизы и бизнеса. За это время собрал несколько команд, попробовал разные сферы, поработал с Xamarin и ушел от него на Flutter, ищу куда развиваться дальше.
Обзор рынка в СНГ сейчас дал какую‑то однобокую картину: курьер может заработать больше, чем предлагают по вакансиям в разработке.
Кажется, что после COVID стало нормальным, когда у специалиста несколько работ.
Может, и работодатели уже смирились с этим? «Задачи закрываются и ладно».
Я начинаю исследование, чтобы понять, можно ли всё это узаконить и отладить процесс со сниженной ролью в заказной разработке.
Начну с темы, на которой я фокусировался последнее время — мобильная разработка на Flutter.

В этой статье
-
Пошаговая структура разработки:
Аналитика и постановка задачи
Дизайн и ожидания пользователей
Разработка и автоматизация
Тестирование и роль QA
Релиз-менеджмент и ветвление
Подготовка к релизу: чеклист
Что дальше?
Начнем по шагам: постановка задачи, аналитика, дизайн, разработка, тестирование, релиз, следующий цикл
Какое приложение создаем?
Когда хочешь сделать приложение, нужно понимать, что ты хочешь сделать.
Это — роль аналитика. Без неё никуда. Сохраняем её в команде.
Оговорюсь, что иногда её исполняет Project Manager, когда ресурсов мало и нужна сильная коммуникация с заказчиком. Усиливает роль тем, что GPT помогает расписывать требования — знай успевай накидывать и делать факт-чек.
Примечание: факт‑чеку будет посвящена отдельная статья, потому что много копий сломали с моим приятелем системным аналитиком, обсуждая «стоит ли доверять GPT проработку требований и документацию, или проще написать самому, чем проверять за ним».
Как будет выглядеть?
Теперьесть требования — кажется пора писать код. Так как у нас самостоятельные, опытные разработчики, то они дальше сами все сделают. Это может работать: опытный разработчик заложит uikit и вероятно даже структурирует проект. Но чаще: нет общей картинки — нет системности, а согласование новых разделов происходит «на пальцах», а это ведет к новым и новым ошибкам, что замедляет разработку. Есть решение в виде готовых дизайн систем. Например Material Design.
Дальше вопрос: насколько нам подходит шаблонный дизайн (например, Material)?
Как правило, сейчас это не работает. Пользователи искушены. Продукт должен не просто работать, но и выглядеть нормально. Иначе выберут конкурента.
А что такое «нормально»? Здесь тысяча школ и подходов. Дело вкуса.
Никакой AI не угадает, как заказчику «нормально».
Поэтому делаем упор на дизайнеров, но объясняем им правила разработки и генерации компонентов и вёрстки из Figma.
Итого у нас есть:
требования,
дизайн,
кодогенерация традиционными способами и с помощью AI.
Как будем разрабатывать?
Здесь я хочу разобрать инструменты и их эффективность, но главное — отстроить процесс, чтобы AI‑инструменты забрали максимум рутины в разработке.
А принятие решений на уровне ревью и факт‑чека оставались за разработчиком.
Основные опоры:
1) Код, требования, дизайн, документация — всё храним в одном репозитории:
тогда могут работать штуки вроде Cursor
git, git diff, Merge Request — как инструмент акцепта со стороны разработчика
git как связующее звено для разных промтов
2) CI/CD как основа для факт‑чека. Усилена e2e, golden и widget‑тестами
3) Идём от TDD, так как важен факт‑чек
Контроль результата
Итак, у нас появился какой‑то код и регулярные сборки.
И тут мы доходим до проверки того, что же у нас получилось.
Речь про QA.
Ослабление роли разработчика, повышение общей непредсказуемости, а значит — рисков, приведёт к тому, что нагрузка на QA вырастет.
По сути, эта компетенция становится bottleneck и кузницей кадров для подобной структуры.
Базовые подходы:
всеобъемлющий подход к тестированию: требований, дизайнов, приложения
анализ corner‑cases — желательно на уровне требований
составление базы скриптов
автоматизация тестирования
Делаем релиз
Последняя составляющая — релиз‑менеджмент.
Первое — это стратегия работы с ветками: здесь будет взят базовый GitFlow. Главное — он понятен разработке. Можно вести несколько параллельных веток.
Но подход будет усилен шагом в сторону Trunk‑Based за счёт тотального использования feature‑flags:
на уровне сборки
на уровне CI/CD
Причины:
версии могут сильно разойтись → усложнение merge»ей → повышение вовлечения разработчиков
для работы с AI удобнее иметь одну версию продукта
Второй важный момент: приоритизация багов и работа с версионированием и зависимостями.
Что важно для подготовки релиза?
Кратко:
Обновляем версии приложения
Обновляем версии пакетов на последние стабильные
Прогоняем линтер, тесты, устраняем ворнинги
Запрашиваем рекомендации по рефакторингу у AI, делаем поиск ошибок (после merge что‑то могло пойти не так)
Ставим в работу приоритизированные баги по итогам релиза
Ставим в работу фичи
Описываем риски для QA по пунктам 2–6
Делаем сборки и смоуки с QA после пунктов 2–5
Такой процесс я держу сейчас в голове.
Следующий шаг
подбор инструментов, промтов
шаблон приложения (отдельная статья)
обкатка MVP на примере приложения (отдельная статья)
Буду рад вопросам, комментариям, дополнениям.
milkyway044
Интересный взгляд на "идеальный" процесс. На деле же, пока будет писаться ТЗ, рисоваться дизайн и настраиваться CI/CD, проект может стать неактуальным.
Статья отвечает на вопрос "как правильно строить процесс", но не на главный вопрос бизнеса: "как максимально быстро проверить гипотезу и начать получать пользу?".
Иногда лучший процесс — это его отсутствие.
a-dersh Автор
Спасибо за комментарий. Пока действительно делаю акцент на проблему, как масштабировать процесс, а не как сделать первый запуск.
Проверку гипотез буду затрагивать вторым этапом. Пока не знаю, но верю, что найду ответ через снижение стоимости разработки. Предполагаю, что для ряда задач найдется Win-Win за счет ИИ: разработчик делает меньше рутины, фокусируется на более сложной и ценной для бизнеса части работы, а значит получает большее вознаграждение. Бизнес получает снижение дефицита ресурсов и сокращение сроков проекта за счет того, что ИИ работает быстрее, чем человек
milkyway044
Пытаться выстроить вокруг ИИ формальную структуру сейчас — это попытка залить бетоном фундамент на тектоническом разломе. Любой "узаконенный" процесс устареет еще до того, как мы его внедрим.
Ценность смещается от следования процессу к умению его ломать и пересобирать на лету с помощью новых технологий.