Перейти к содержанию
MIRONOVICH

Сколько стоит поддержка приложения после разработки

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

Данил Миронович5 мин чтения

В статье

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

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

Сначала отделите инфраструктуру от работы специалистов

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

Сопровождение — работа людей с этой системой: проверка состояния, исправления, обновления, восстановление и планирование изменений. Если в предложении указана только оплата сервера, это ещё не договор на поддержку приложения.

Попросите разделить счета поставщиков, вознаграждение исполнителя и возможные дополнительные работы. Уточните, на кого оформлены кабинеты и кто согласует увеличение расходов. Даже небольшой продукт может оказаться дорогим, если платные зависимости остаются вне общего бюджета.

Что входит в регулярные технические работы

Мониторинг и разбор ошибок

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

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

Исправления и обновления

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

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

Интеграции и внешние API

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

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

Копирование и восстановление

Нужны не только расписание архивирования, но и понимание состава копии, доступов, хранения и процедуры восстановления. Документация GitHub о копировании репозитория помогает увидеть ограничение: сохранённый код не равен полной резервной копии приложения.

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

Как учитывать технический долг

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

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

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

Три модели оплаты

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

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

Работы по отдельным заявкам. Подходят для редких некритичных изменений, когда постоянная готовность исполнителя не требуется. При этом мониторинг, резервирование и ответственность за продукт всё равно кто-то должен выполнять. Отсутствие пакета не означает отсутствие эксплуатационной работы.

Ни одна модель не лучше всегда. Для критичного продукта покупается ещё и определённый режим доступности специалиста, а не только сумма фактически отработанных часов. Для простого инструмента такая готовность может быть экономически лишней.

Условный пример сравнения предложений

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

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

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

Что закрепить в договоре

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

Не считайте обещание «быстро реагируем» гарантией конкретного срока восстановления. Для внешних зависимостей и неизвестных дефектов требуются оговорки и отдельные способы контроля.

Статья о стоимости разработки приложения помогает оценить первоначальный проект. Здесь решение другое: какой режим владения продуктом компания может обеспечить после запуска. Если важный процесс зависит от приложения, отсутствие ответственного — тоже управленческое решение с последствиями.

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

Автор

Данил Миронович

Внешний CTO · Разработка · Сопровождение

Обо мне →

Связанная услуга

Техническое сопровождение →

Регулярная работа с продуктом вместо поиска нового исполнителя при каждой проблеме. Объём и условия закрепляются в договоре.

Есть похожая задача?

Первичное обсуждение — бесплатно.

Обсудить задачу бесплатно