Перейти к содержимому
Дорожная карта
План MVP

Дорожная карта

Семь этапов от анализа до пилота. Оценка предполагает частичный параллелизм; внешние зависимости могут сдвигать сроки без изменения объёма работ.
Оценка
по согласованию
суммы обсуждаются отдельно
Срок
14–16 недель
ориентир с параллельными работами
Этапов
7
0–6, включая пилот
Внешние зависимости
CSMS · платежи · касса
доступы нужны до этапа 4
Что означает эта оценка
Срок 14–16 недель — предварительный ориентир согласованного MVP. Расходы внешних сервисов и поставщиков в него не входят, если это не согласовано отдельно. Изменение объёма меняет сроки.

Зависимости этапов

Граф зависимостей этапов

Пунктирная связь показывает внешние решения, без которых интеграционный этап не начинается.

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

Этапы подробно

0

Анализ, уточнение требований и архитектуры

Недели 1–2по согласованию8 задач
результат этапа

Закрыть неопределённости, которые влияют на деньги, бронирование и связь с оборудованием, и зафиксировать контракт объёма MVP.

Задачи

  • Инвентаризация исходного ТЗ и проверка противоречий между разделами.
  • Формирование реестра D01–D11 с владельцами, влиянием и сроками решения.
  • Проверка модели и профиля пилотной AC-станции, доступных команд CSMS.
  • Выбор платёжного провайдера, кассы, SMS, карт/геокодера и push.
  • Проработка юридической модели EcoCoin, согласий, оферты и фискализации.
  • Фиксация географии, ожидаемой нагрузки, версий iOS/Android и ограничений договора.
  • Обновление оценки и перечня внешних расходов после ответов заказчика.
  • Согласование архитектурных принципов и Definition of Done для MVP.

Результаты

  • Реестр решений D01–D11 со статусами и владельцами.
  • Перечень зависимостей и внешних договоров.
  • Уточнённая оценка и календарный план.
  • Реестр рисков и архитектурные принципы.
  • Согласованный перечень пилотного оборудования и тестовых сред.

Технологии

OpenAPI как ориентир контрактовСхема сред dev / test / pilot / prod

Критерии завершения

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

Нужно от заказчика

  • Назначить ответственного за решения D01–D11.
  • Предоставить модель станции, CSMS и тестовые доступы.
  • Подтвердить юридические требования и регион данных.

Риски этапа

Без решения D04 и D06 нельзя гарантировать денежный и командный контуры. Позднее подключение поставщиков сдвигает интеграционный этап.

Внешние зависимости

Ответы заказчика по D01–D11 Модель станции и доступ к CSMS Тестовые кабинеты платёжного провайдера и кассы Юридическая консультация по EcoCoin и персональным данным

Не входит: Разработка экранов и серверной логики до согласования рамок.

1

UX/UI, API и модель данных

Недели 2–4по согласованию9 задач
результат этапа

Сделать кликабельный прототип, проверить основной путь водителя и зафиксировать контракты, данные и состояния до разработки.

Задачи

  • Карта экранов, переходов и состояний для iOS, Android и админки.
  • Макеты успешных, пустых, ошибочных и неопределённых состояний.
  • Прототип сценариев: карта → порт → hold → оплата → сессия → чек.
  • Архитектурная диаграмма и границы доменных модулей.
  • Ролевая матрица: водитель, оператор, поддержка, администратор.
  • Логическая модель сущностей и правила целостности.
  • Проект API, коды ошибок, идемпотентность и версионирование.
  • Последовательности Start/Stop, оплаты, сверки и возврата.
  • Требования к логированию, доступности и тестовым сценариям.

Результаты

  • Кликабельный прототип основного пути.
  • Спецификация экранов и состояний.
  • Проект модели данных и API.
  • Ролевая матрица и перечень ошибок.
  • Список приёмочных тестов и тестовых данных.

Технологии

Figma/аналог для макетовOpenAPIER-модельДиаграммы последовательностей

Стартовая точка: что уже есть на портале

  • Этот портал уже содержит черновики: кликабельную демонстрацию основного пути, каталог экранов и состояний, реестр FR-001–FR-026, модель данных и проект API.
  • На этапе 1 эти материалы дорабатываются и согласуются с заказчиком, а не создаются заново.
  • Демонстрация портала работает на вымышленных данных и не принимает решения D01–D11; этап 1 фиксирует согласованный прототип и контракты, по которым идёт разработка.

Критерии завершения

  • Заказчик проходит основной сценарий в прототипе.
  • Каждый важный экран связан с FR-ID и состояниями.
  • Контракты покрывают все обязательные операции MVP.

Нужно от заказчика

  • Согласовать прототип и ролевую модель.
  • Подтвердить тексты и юридические ограничения.

Риски этапа

Согласование макетов без ответов по тарифам приводит к переделкам. Слишком детальная админка на этапе MVP раздувает объём.

Внешние зависимости

Подтверждение бренда D10 Требования к текстам согласий D08

Не входит: Финальные бренд-материалы предоставляет заказчик (логотип, фотографии, фирменные шрифты) — см. D10. Рекламные промо-креативы (видео, баннеры, кампании) в проект не входят.

2

Серверная часть и бизнес-логика

Недели 3–8по согласованию10 задач
результат этапа

Реализовать доменную логику, транзакционную целостность денег и броней, API и журналирование без привязки к демонстрационному store.

Задачи

  • Пользователи, согласия, автомобили и профиль.
  • Каталог площадок, станций и портов.
  • Тарифы и версионирование тарифных снимков.
  • Календарь, hold, брони и атомарная проверка конфликтов.
  • Платёжные попытки, webhooks и идемпотентность.
  • Журнал EcoCoin, резервы и компенсирующие проводки.
  • Контроллер сессии, команды и адаптер CSMS.
  • Телеметрия, финальный расчёт и сверка.
  • Чеки, уведомления, поддержка, инциденты, роли и аудит.
  • OpenAPI, миграции и тесты критических инвариантов.

Результаты

  • Работающий backend API для мобильного приложения и админки.
  • Миграции базы данных и сиды тестовой среды.
  • Модульные и интеграционные тесты денег, броней и команд.
  • OpenAPI-спецификация и описание ошибок.
  • Журнал аудита и структурированные логи.

Технологии

Node.js LTSNestJS (предлагаемый вариант)PostgreSQLPrisma (при подтверждении)OpenAPI

Критерии завершения

  • Конкурирующие брони не подтверждают один интервал дважды.
  • Повтор платежа или команды не создаёт второй эффект.
  • Итоговая проводка связана с сессией и не меняет историю.

Нужно от заказчика

  • Согласовать правила D02–D05.
  • Предоставить тестовые интеграционные доступы.

Риски этапа

Некорректная транзакционная граница создаёт двойные списания. Поздние webhooks и повторные события ломают календарь. Тарифный снимок может быть случайно перезаписан.

Внешние зависимости

Тестовая среда CSMS Тестовые кабинеты платёжного провайдера и кассы

Не входит: Рабочая нагрузка и отказоустойчивость вне согласованных NFR.

3

Мобильное приложение iOS и Android

Недели 4–10по согласованию9 задач
результат этапа

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

Задачи

  • Вход по телефону и SMS, версионированные согласия.
  • Карта/список, фильтры, станции и порты.
  • Календарь, короткая и плановая бронь.
  • Демонстрационная и реальная оплата по выбранному контуру.
  • Кошелёк EcoCoin, резервы и история.
  • Запуск, активная сессия, добавление объёма и остановка.
  • Итог, чек, история, уведомления, профиль и поддержка.
  • Работа в фоне, восстановление сессии и защищённое хранение токенов.
  • Проверка на iOS и Android, системные разрешения и доступность.

Результаты

  • Тестовые сборки iOS и Android.
  • Реализованные экраны и состояния.
  • Интеграция с backend и демонстрационным/тестовым контуром оплаты.
  • Список известных ограничений и инструкция тестировщика.
  • Подготовка к TestFlight и внутреннему тестированию Google Play.

Технологии

React Native + Expo (предлагаемый вариант)Expo Application Services или совместимый CI

Критерии завершения

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

Нужно от заказчика

  • Аккаунты магазинов и устройство для проверки.
  • Согласование текстов согласий.

Риски этапа

Требования оборудования вынудят часть логики писать нативно. Фоновые ограничения iOS влияют на отображение сессии. Публикация требует аккаунтов и ответственных за магазины.

Внешние зависимости

Apple Developer Account и тестовый iPhone Google Play Console и тестовый Android SMS-провайдер и тестовый номер CSMS/OCPP тестовая среда

Не входит: Публикация без подтверждённых аккаунтов и ответственных.

4

Интеграции с внешними системами

Недели 6–11по согласованию8 задач
результат этапа

Проверить на тестовом контуре реальные команды, платежи, фискализацию, SMS, карты и push, изолировав адаптеры от доменной логики.

Задачи

  • Адаптер к выбранной CSMS: Start, Stop, измерения, тайм-ауты.
  • Повторные команды, неизвестный результат и восстановление связи.
  • Платёжный провайдер СБП/карт: тестовые платежи, webhooks и подписи.
  • Сверка статусов и обработка поздних/повторных событий.
  • Онлайн-касса: фискализация, очередь, ошибки и повтор.
  • SMS-провайдер, лимиты и защита от перебора.
  • Карты/геокодер и push-инфраструктура.
  • Изоляция адаптеров и контрактные тесты.

Результаты

  • Работающие адаптеры с тестовыми средами.
  • Протокол испытаний на согласованной станции.
  • Матрица ошибок и восстановления.
  • Настройки тестовых сред.

Технологии

CSMS/OCPP (профиль по модели станции)Платёжный API и webhookОнлайн-кассаSMS APIКарты/геокодерPush

Критерии завершения

  • Start/Stop подтверждены на тестовом оборудовании.
  • Повтор webhook не создаёт второй платёж.
  • Ошибка кассы создаёт задачу повтора, история сохраняется.

Нужно от заказчика

  • Обеспечить доступ к оборудованию и провайдерам.
  • Согласовать SLA и комиссии.

Риски этапа

Модель станции поддерживает не все команды/профили OCPP. Комиссии и ограничения провайдеров не входят в стоимость разработки. Ошибка кассы не должна удалять сессию и платёж.

Внешние зависимости

Физическая станция и CSMS Договоры и тестовые кабинеты провайдеров Телефонные номера и ключи push

Не входит: Поддержка произвольных марок и профилей сверх согласованных.

5

Веб-админка

Недели 8–11по согласованию8 задач
результат этапа

Дать операторской команде рабочий инструмент управления каталогом, календарём, тарифами, сессиями и инцидентами.

Задачи

  • Роли и серверные проверки прав.
  • Обзор состояния и связанные списки записей.
  • Станции, порты, календарь и технические блокировки.
  • Брони, сессии и временные шкалы.
  • Платежи, EcoCoin, тарифы и чеки.
  • Обращения, инциденты, пользователи и аудит.
  • Запрет редактирования проводок задним числом.
  • Тарифные изменения только для будущих операций.

Результаты

  • Веб-админка с ролевым доступом.
  • Аудит административных действий.
  • Очередь чеков и повтор операций.
  • Инструменты разбора инцидентов.

Технологии

Next.js App RouterReactTailwind CSSСогласованная компонентная библиотека

Критерии завершения

  • Поддержка не может выполнить действие администратора.
  • Изменение тарифа не меняет активную сессию.
  • Каждое административное изменение попадает в аудит.

Нужно от заказчика

  • Назначить ответственных операторов и поддержку.

Риски этапа

Слишком широкий доступ ролей. Попытка исправить историю вместо компенсирующей записи.

Внешние зависимости

Согласование ролей и процессов поддержки

Не входит: Полноценная CRM и расширенная аналитика.

6

Проверки, пилот, исправления и подготовка публикации

Недели 11–16по согласованию9 задач
результат этапа

Доказать работоспособность на согласованном стенде, стабилизировать систему и подготовить сборки, документацию и передачу.

Задачи

  • Модульные, интеграционные, end-to-end и приёмочные проверки.
  • Параллельные брони, повторные webhooks, нестабильная сеть.
  • Неизвестный результат Start/Stop и несогласованная телеметрия.
  • Ошибка кассы, роли, доступы и резервное восстановление.
  • Проверка производительности на согласованном объёме.
  • Пилот на физическом порту и протокол результатов.
  • Исправления, регрессия и список известных ограничений.
  • Инструкции развёртывания, сборки и чек-лист публикации.
  • Материалы карточки приложения: иконка, скриншоты и тексты описания для App Store и Google Play.

Результаты

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

Технологии

VitestPlaywrightCI заказчика или согласованный контурМониторинг тестовой среды

Критерии завершения

  • Критические AT-01–AT-13 имеют доказательства или явный статус.
  • Нет известных блокирующих дефектов в основном сценарии.
  • Передача включает инструкции и ограничения.

Нужно от заказчика

  • Участвовать в приёмке и пилоте.
  • Подтвердить владельцев публикации.

Риски этапа

Пилот выявляет ограничения оборудования, не входившие в оценку. Публикация задерживается из-за аккаунтов и модерации.

Внешние зависимости

Доступ к физическому порту Тестовые аккаунты магазинов Согласованные окна пилота

Не входит: Маркетинговое продвижение и долгосрочная поддержка вне договора.

Вне оценки

Расходы, которые оплачиваются отдельно

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

Доступ к зарядным станциям

Станции уже установлены и принадлежат операторам. Нужен доступ и API, а не покупка оборудования: покупка, монтаж, кабели и датчики в проект не входят.

СтатьяКто оплачивает
Согласование подключения к сети станций оператораоператор станций
Доступ к CSMS/OCPP: API-ключи, тестовый контур, документацияоператор станций
Тестовая станция или тестовый порт на время пилотаоператор станций
Возможная плата оператора за интеграцию в его системуоператор станций

Инфраструктура

Оплата напрямую поставщику. Если используется сервер заказчика (Ubuntu, Nginx, PM2), расходы минимальны.

СтатьяКто оплачивает
Сервер под backend и базу данныхзаказчик
Домен проекта: зона и регистратор по выбору заказчиказаказчик
TLS-сертификатзаказчик
Резервные копиизаказчик
Логи и метрики на серверевходит в работу
Внешний сервис мониторинга и алертовзаказчик
CI/CD для сборок iOS и Androidзаказчик

Платёжный контур

Ставки зависят от выбранного банка-эквайера и кассы (решения D04 и D07). Оплата идёт напрямую поставщику.

СтатьяКто оплачивает
Эквайринг карт и СБП — комиссия с оборотазаказчик
Онлайн-касса: ОФД, фискальный накопитель, сервисзаказчик
SMS-провайдер для входа по кодузаказчик
Карты и геокодерзаказчик
Push-уведомления (FCM / APNs)не оплачивается

Магазины приложений

СтатьяКто оплачивает
Apple Developer Programзаказчик
Google Play Consoleзаказчик
Аккаунт организации вместо личногозаказчик

Юридические требования и данные

СтатьяКто оплачивает
Оферта, политика конфиденциальности, согласиязаказчик
Регистрация/уведомление об обработке персональных данныхзаказчик
Размещение данных на территории РФ, если требуетсязаказчик

После запуска

Это отдельный договор или отдельные часы.

СтатьяКто оплачивает
Поддержка и гарантия: реакция на инциденты, обновления, мониторингпо договору
Доработки и новые функции после MVPпо договору
Реклама и продвижениезаказчик

Резерв и прочее

Статьи, которые чаще всего забывают заложить в бюджет.

СтатьяКто оплачивает
Резерв на изменения и переделки после пилотапо договору
Налоги и схема оформления (НДС, ИП/ООО/самозанятые)заказчик
Инструменты и подписки: макеты, CI, тестовые фермыпо договору
Расширенное обучение оператора и поддержкипо договору
Интеграция с 1С или бухгалтерией, если понадобитсяпо договору
Дополнительные регионы, DC-зарядка, гостевой сценарий, CRMпо договору
Что это меняет
Эти статьи оплачиваются отдельно от работы команды. Станции уже стоят — нужен доступ и API от их операторов, без покупки оборудования. На пилоте инфраструктура минимальна. Внешние договоры, ключи и доступы предоставляет заказчик.
Как читать сроки
Периоды этапов пересекаются: UX/API начинается после первых решений, backend и приложение идут параллельно, интеграции зависят от доступа к CSMS и тестовым кабинетам. Итоговый календарь фиксируется после закрытия D01–D11.