Чек-лист для сделки с размещением у покупателя: установка, обновления, поддержка
Используйте этот чек-лист для сделки с размещением у покупателя, чтобы заранее зафиксировать правила установки, обновлений и поддержки до подписания и чтобы обе стороны понимали, кто за что отвечает.

Почему такие сделки разваливаются после подписания
Сделки с размещением у покупателя часто выглядят согласованными во время продаж, а уже в первую неделю внедрения начинают разваливаться. Поставщик ожидает, что покупатель предоставит серверы, доступы, резервные копии, мониторинг и окно для изменений. Покупатель ожидает, что поставщик сам определит большую часть этих вещей. Когда платформа не закреплена за конкретной стороной, даже простые вопросы по настройке превращаются в задержки, взаимные обвинения и срочные совещания.
Установка, обновления и поддержка вызывают больше всего споров, потому что они находятся между разработкой продукта и инфраструктурной работой. Отдел продаж говорит о функциях и сроках. Юристы смотрят на цену, срок и ответственность. А сложная часть остается посередине: кто открывает порты в firewall, кто утверждает версии, кто может трогать production, кто тестирует откат и кто отвечает в 2 часа ночи, когда система перестает работать.
Размытое обещание быстро становится дорогим. Один упущенный допуск может сжечь неделю инженерного времени, перенести запуск на следующий квартал или вызвать change request, который никто не планировал. Если покупателю нужно внутреннее согласование безопасности на каждый порт или пакет, а поставщик узнает об этом уже после подписания, бюджет начинает утекать еще до завершения установки.
Та же проблема всплывает на обновлениях. Поставщик выпускает релиз, чтобы исправить ошибку. Покупатель хочет шесть недель на проверку, тестовую среду и письменные шаги для отката. Если никто не прописал политику обновлений ПО в договоре, обе стороны спорят по памяти вместо того, чтобы следовать общей норме.
С поддержкой обычно все ломается позже всего, но особенно болезненно. Пользователи открывают тикеты из-за проблем, вызванных DNS, хранилищем, просроченными сертификатами или нестандартными сетевыми правилами. Поставщик говорит, что приложение в порядке. Покупатель говорит, что поставщик обязан помочь, потому что пользователи не могут войти. Без матрицы ответственности поддержки каждый тикет начинается со спора.
Последствия выходят далеко за пределы технической команды. Финансы видят дополнительные часы услуг. Закупки видят споры о границах объема работ. Бизнес-владельцы видят, как сдвигаются сроки после того, как они уже объявили о запуске.
Именно поэтому чек-лист для сделки с размещением у покупателя важен до подписания. Четкие правила дешевле, чем путаница в production.
Что обеим сторонам нужно в первый день
Сделки с размещением у покупателя идут наперекосяк, когда ответственность остается размытой. Еще до обсуждения дат установки или часов поддержки обеим сторонам нужен короткий письменный документ, где указано, кто за что отвечает, кто что решает и где зафиксированы обязательные обещания.
Начните с границ. Если покупатель управляет серверами, сетью, системой идентификации и резервными копиями, скажите это прямо. Если продавец владеет кодом приложения, релизными пакетами и исправлениями ошибок, это тоже нужно сказать прямо. Управление доступом требует такого же подхода. Одна сторона должна контролировать создание аккаунтов, смену ролей и удаление доступов, даже если инструменты предоставляет поставщик ПО.
Четыре решения закрывают большую часть первого дня:
- кто отвечает за инфраструктуру и ежедневную эксплуатацию
- кто отвечает за пакет ПО и исправления
- кто управляет доступом пользователей и правами согласования
- кто принимает решение, когда что-то блокирует проект
Последний пункт часто становится причиной задержек. У каждой стороны должен быть один назначенный контакт с полномочиями сказать да, нет или пока нет. Не общая почта. Не комитет. Один человек на стороне покупателя и один на стороне продавца помогают двигать сделку, когда для правила firewall, сертификата или исключения по безопасности нужен быстрый ответ. Если у покупателя нет platform team, эту роль может взять на себя IT-менеджер, руководитель engineering или fractional CTO.
Договор должен содержать условия, влияющие на деньги, риск или юридическую ответственность. Включите туда объем поддержки, критерии приемки развертывания, поддерживаемые среды, обязанности по обновлениям и ожидаемое время реакции. Эти вещи не должны зависеть от памяти или разговоров в коридоре.
Runbook должен содержать операционные детали, которые меняются чаще. В него стоит внести имена серверов, порядок установки, шаги передачи доступа, задания резервного копирования, шаги по продлению сертификатов и пути эскалации. Если покупатель меняет SSO-сертификаты, runbook должен объяснять, как проходит эта передача. В договоре достаточно указать, кто владеет идентификацией и что происходит, когда ломается вход.
Когда эти решения ясны уже в первый день, последующие споры становятся меньше, быстрее и намного дешевле.
Пропишите правила установки
Большинство споров вокруг установки начинается с одной расплывчатой фразы: покупатель предоставит среду. Этого недостаточно. В договоре нужно указать, кто предоставляет серверы, сетевой доступ, хранилище и людей, которые могут утверждать каждый шаг.
Опишите среду простыми словами. Если серверами владеет покупатель, укажите, являются ли это virtual machines, узлы Kubernetes или bare metal. Если сеть контролирует покупатель, укажите, кто открывает правила firewall, кто занимается DNS и как поставщик получает безопасный доступ во время настройки. Хранилище тоже важно. Назовите ожидаемый объем, способ резервного копирования и уровень производительности, чтобы никто не пытался установить production-систему на маленький общий диск.
Поддерживаемые версии требуют такой же детализации. Перечислите операционные системы, которые вы поддерживаете, версии баз данных, которые были протестированы, и версии браузеров, которые нужны пользователям в первый день. Если система работает только на Ubuntu 22.04 и PostgreSQL 15, так и напишите. Если старая сборка SQL Server или Internet Explorer не подойдет, это тоже нужно указать. Контракты на self-hosted software часто ломаются именно потому, что команды узнают об ограничениях уже после того, как среда собрана.
Простое разделение обязанностей по установке сильно уменьшает количество взаимных претензий позже. Покупатель готовит серверы, хранилище и сетевые пути. Поставщик предоставляет установочные пакеты, конфигурации и runbook. Покупатель назначает технических контактов с правом принимать решения. Поставщик назначает инженера, который ведет установку.
Затем зафиксируйте шаги по порядку. Сделайте их скучными и точными. Покупатель создает машины и базу данных. Поставщик проверяет доступ. Покупатель загружает сертификаты и секреты в согласованное место. Поставщик завершает настройку приложения. У каждого шага должен быть владелец и срок.
Завершите установку критериями приемки, которые обе стороны могут проверить менее чем за час. Сделайте их объективными:
- приложение открывается из согласованной сети
- пользователь-администратор может войти
- тестовая запись или операция завершается успешно
- в логах нет серьезных ошибок после запуска
- проверки резервного копирования и восстановления проходят для установленной базы данных
Если одна сторона не может подтвердить эти результаты, установка не завершена. Это звучит жестко, но потом экономит недели споров, когда начинается давление по запуску.
Пропишите путь обновлений шаг за шагом
План обновлений должен читаться как короткий runbook, а не как обещание «поддерживать ПО в актуальном состоянии». Сначала укажите точную версию, которую покупатель установит первой, а затем определите окно обновления простыми словами. Например, minor updates происходят в течение 30 дней после релиза, major updates — только после совместного review, а срочные security fixes идут по более быстрому пути.
Этот график важен, потому что контракты на self-hosted software часто ломаются не из-за кода, а из-за сроков. Одна команда ожидает ежемесячные обновления. Другая считает, что обновления происходят «по необходимости». Зафиксируйте календарь письменно до подписания.
Тестирование должно быть отдельным шагом и всегда происходить до production. Покупателю стоит держать тестовую среду, достаточно похожую на production, чтобы ловить реальные проблемы. Поставщик должен предоставлять тест-план для каждого релиза с небольшим набором проверок, которые покупатель может выполнить без изучения исходного кода.
Практичный тест-план обычно выглядит так:
- установить новую версию в staging
- проверить вход в систему, импорт данных и отчеты
- подтвердить, что интеграции по-прежнему работают
- зафиксировать ошибки, предупреждения и ожидаемый простой
- одобрить или отклонить релиз в согласованное окно
Правила отката должны быть такими же четкими, как и правила обновления. До начала изменения покупатель делает свежую резервную копию и подтверждает, что ее можно восстановить. Если обновление не удается, команда уже должна знать, кто инициирует откат, сколько времени они пытаются исправить проблему без отката и как возвращаются к последней стабильной версии.
Записывайте такие решения с именами, а не только с должностями. Один человек со стороны покупателя утверждает maintenance window. Один человек со стороны поставщика отвечает за релизный пакет. Одна сторона выполняет инфраструктурные шаги, другая проверяет приложение после изменения.
И наконец, задайте границу поддержки для старых версий. Если покупатель может оставаться на две minor-версии позади, так и напишите. Если для security patches требуется обновление в течение 14 дней, это тоже нужно указать. Политика обновлений ПО работает лучше всего, когда всем понятно, насколько можно отставать и как меняется поддержка после выхода за этот предел.
Разделите обязанности по поддержке до появления тикетов
Поддержка быстро превращается в хаос, если все проблемы падают в один ящик. В сделках с размещением у покупателя это обычно означает, что поставщик ПО получает тикеты по server issues, локальным настройкам и простым ошибкам пользователей. Короткая матрица ответственности поддержки решает большую часть проблемы.
Зафиксируйте правила ответственности до появления первого тикета. Ошибки в самом поставляемом приложении относятся к поставщику. Проблемы хостинга на серверах покупателя относятся к инфраструктурной команде покупателя или к его hosting partner. Ошибки пользователей относятся к внутренней службе поддержки или операционному руководителю покупателя. Сбои в сторонних инструментах относятся к той стороне, которая выбрала и управляет этим инструментом.
Это звучит очевидно, но команды все равно размывают границу. Если приложение падает из-за неудачного релиза, исправляет это поставщик. Если переполняется диск, останавливается база данных или правило firewall блокирует трафик, это исправляет покупатель. Если пользователь загрузил не тот файл или удалил нужную настройку, support должен рассматривать это как обучение или администрирование, а не как дефект кода.
Часы поддержки и время реакции важны не меньше, чем распределение ответственности. Запишите, когда доступна поддержка, с какой скоростью на каждый уровень критичности должен приходить первый ответ и кто участвует в эскалации. Сбой production может требовать ответа в течение часа и назначенных контактов с обеих сторон. Низкоприоритетный баг может подождать triage в следующий рабочий день.
Каждый тикет должен содержать достаточно данных, чтобы по нему можно было действовать. Попросите покупателя приложить точный текст ошибки и время, когда она возникла, скриншоты или запись экрана, релевантные логи приложения и инфраструктуры, а также временный доступ или четкий список шагов для воспроизведения проблемы. Без этого тикеты тянутся днями. «Не работает» — это не запрос в поддержку. Это начало игры в угадайку.
Правила обновления патчей требуют той же детализации. Обычно покупатель обновляет операционные системы, базовые образы, инструменты резервного копирования, агенты мониторинга и другое ПО, работающее в его среде. Поставщик обновляет приложение и любые зависимости, входящие в поддерживаемый релизный пакет. Если настройка зависит от email gateway, провайдеров SSO или message broker, обязанности по обновлению нужно распределить письменно.
Простой пример для покупателя среднего размера
Представьте производителя на 350 сотрудников, который покупает self-hosted software для внутреннего планирования. У них сильная IT-команда, но нет platform lead, поэтому никто не отвечает за полный путь от настройки сервера до обновлений и разбора тикетов.
На момент подписания всем кажется, что разделение очевидно. Продавец говорит: «Мы устанавливаем приложение». Покупатель говорит: «Мы управляем нашими серверами». Это звучит нормально, пока не появляется первая реальная задача.
Для первоначальной установки продавец просит Linux-host, Docker, DNS-записи, доступ к SMTP и место для резервных копий. Покупатель предоставляет виртуальную машину и админский логин, но никто не подтвердил, кто будет ставить Docker, кто откроет правила firewall и кто проверит исходящую почту. Установка застревает на девять дней, пока поставщик ждет доступ, а покупатель ждет команду приложения.
Через месяц первое обновление вызывает еще больший спор. Новая версия требует изменения PostgreSQL и короткого окна на обслуживание. Продавец говорит, что договор покрывает «обновления приложения». Покупатель понимает это как полное обслуживание по обновлению. Продавец имеет в виду, что он предоставит пакет и шаги, а покупатель должен сам запланировать простой, сделать snapshot базы, провести миграцию и проверить откат. Именно так расплывчатые контракты на self-hosted software начинают стоить настоящих денег.
Потом ломается support. После обновления пользователи не могут загружать CSV-файлы. Покупатель открывает тикет уровня severity-1 и ожидает немедленного исправления. Продавец просит логи, номера версий, данные браузера и настройки reverse proxy. IT-команда покупателя говорит, что проблема находится внутри приложения. Продавец подозревает лимит на загрузку в proxy. Обе стороны теряют полдня на спор о том, чья это проблема.
Небольшая таблица правил убирает большую часть таких ситуаций.
| Область | Покупатель отвечает за | Продавец отвечает за | Готово, когда |
|---|---|---|---|
| Установка | Сервер, доступ к ОС, сеть, резервные копии, SMTP, DNS | Установка приложения, конфигурация, smoke test | Назначенный пользователь входит в систему и отправляет тестовое письмо |
| Обновление | Окно обслуживания, snapshot, утверждение отката | Runbook обновления, шаги миграции, примечания к версии | Критерии приемки развертывания выполнены |
| Поддержка | Состояние хоста, proxy, хранилище, сертификаты | Ошибки приложения, логи приложения, исправление или обходной путь | В матрице ответственности поддержки указан первый ответственный |
Такой чек-лист не требует юридического театра. Ему нужны имена, сроки и простая фраза для каждого handoff. Если у покупателя среднего размера нет внутреннего platform lead, такая таблица часто важнее, чем красиво оформленный statement of work.
Ошибки, которые превращаются в дорогие задержки
Большинство задержек начинается с безобидной фразы вроде «Мы будем поддерживать вашу среду». Для buyer-hosted software это слишком расплывчато. Если покупатель выберет необычную версию Linux, добавит нестандартные proxy или использует старую сборку базы данных, сделка может застопориться еще до начала установки. Назовите поддерживаемые версии, схему сети, предположения по хранилищу и то, кто утверждает исключения.
Еще одна частая ошибка — оставить обновления неопределенными. Если в договоре сказано, что обновления происходят «по необходимости» или «по взаимному согласию», позже команды начнут спорить о сроках, окнах простоя, обязанностях по тестированию и дополнительных платежах. Политика обновлений ПО должна говорить, как часто выходят релизы, как долго поддерживаются версии, за сколько времени покупатель получает предупреждение и что происходит, если он пропускает несколько релизов.
Экстренные исправления и обычные change requests никогда не должны попадать в одну очередь. Авария production в 2 часа ночи — это не то же самое, что «добавьте еще одного провайдера SSO» или «измените формат логирования для нашей audit-команды». Если все приходит по одному каналу поддержки, все кажется срочным, а движение замедляется. Пропишите уровни критичности, время реакции и правила согласования, а затем отделите feature work от аварийных работ.
Резервные копии, откат и правила доступа выглядят скучно, пока что-то не сломается. Тогда именно они решают, будет ли плохой релиз стоить 20 минут или двух дней. Определите, кто делает резервную копию до установки и обновления, где она хранится, как работает откат, кто имеет доступ к серверам и кто может согласовать временный доступ.
Небольшой пример
Покупатель среднего размера просит быструю установку. Поставщик соглашается поддерживать Kubernetes, VMs и bare metal, оставляет сроки обновлений открытыми и говорит, что поддержка включает «разумные изменения». Через два месяца покупатель просит патч во время периода freeze, план отката неясен, и никто не знает, кто должен восстанавливать данные — database admin или инженер поставщика. Юридический язык такой хаос не исправит. Командам все равно нужны точные технические правила.
Чек-лист для сделки с размещением у покупателя должен заставить стороны дать простые ответы до подписания. Если правило важно в худший день проекта, запишите его сейчас. Если никто не может в одном коротком абзаце объяснить, кто что делает, сделка еще не готова.
Быстрая проверка перед юридическим review
Договор может выглядеть завершенным и все равно провалиться в первую неделю внедрения. Большинство проблем начинается с мелких пробелов: неподдерживаемой версии Linux, утверждения установки, которое не учитывает реальную работу пользователей, или пункта о поддержке, где сказано, что обе стороны будут сотрудничать, но никто не назначен ответственным.
Сделайте один технический проход до начала юридического review. Многие контракты на self-hosted software на бумаге выглядят ясно, а команда установки все равно вынуждена угадывать.
Проверьте пять вещей.
- Сверьте поддерживаемый стек с реальной средой покупателя. Проверьте версии ОС и базы данных, container setup, сетевые ограничения, метод резервного копирования, работу с сертификатами и то, работает ли покупатель в cloud, on-prem или на bare metal.
- Прочитайте строку о приемке установки с точки зрения повседневной работы. Формулировка «сервис запущен» слишком слабая, если пользователи все еще не могут войти, синхронизировать данные, отправлять сообщения или завершить первую бизнес-задачу.
- Прочитайте план обновлений как операционный runbook. В нем должно быть указано, кто назначает окно, что тестируется до и после, как делаются резервные копии данных и как команда откатывается, если релиз не проходит.
- Назовите ответственных за поддержку простыми словами. В черновике должны быть указаны контакт покупателя, контакт поставщика, время реакции по уровню критичности, доступ к логам и кто занимается проблемами приложения, инфраструктуры и сторонних интеграций.
- Закончите одним финальным списком обязанностей, который обе стороны утверждают. Если два умных человека читают одну и ту же фразу и дают разные ответы, фраза все еще неверна.
Простой пример делает это особенно очевидным. Если покупатель работает в закрытой private network, в плане установки должно быть сказано, кто открывает исходящий доступ для проверки лицензий, загрузки пакетов, уведомлений или model APIs. Если этот шаг никому не принадлежит, установка останавливается, а спор начинается.
Именно здесь технический reviewer часто окупает себя. Сбои в установке, обновлениях и поддержке обычно повторяются очень похожими способами от сделки к сделке.
Что делать перед подписанием
Сделка с размещением у покупателя обычно идет не так в промежутке между sales call и первой установкой. Закройте этот разрыв до подписания. Внесите операционные правила в короткое приложение, которое лежит рядом с договором, а не в чьем-то почтовом ящике или в разрозненной заметке по проекту.
Сделайте это приложение коротким. Двух-четырех страниц часто достаточно для первого прохода. В нем должны быть указаны ответственный за установку, задачи покупателя, задачи поставщика, шаги обновления, правила отката, часы поддержки и точный момент, когда установка считается принятой.
Именно здесь чек-лист и приносит основную пользу. Если правило важно на третий день, запишите его в нулевой день. Если вы ожидаете чистую передачу, укажите, что покупатель должен предоставить до начала работы поставщика: доступ, DNS, сертификаты, политику резервного копирования, окно на обслуживание и технический контакт, который может утверждать изменения.
Лучше всего работает короткое приложение, в котором есть предположения по среде для первой установки, порядок шагов обновления и кто выполняет каждый шаг, граница поддержки после запуска и проверки приемки, закрывающие проект.
Не пытайтесь предсказать все крайние случаи в версии один. Начните с минимальных правил, которые позволяют обеим командам устанавливать, обновлять и поддерживать систему без догадок. После первой реальной установки обновите приложение с учетом того, что на самом деле вызвало задержку. Обычно именно там и всплывают недостающие детали.
Если никто из сторон не может взять на себя ответственность за эти детали, до подписания привлеките fractional CTO. Один ясный технический reviewer может сэкономить удивительно много времени, особенно когда юридический язык выглядит аккуратно, а план поставки все еще неясен.
Если вам нужен практический разбор, Oleg Sotnikov на oleg.is помогает стартапам и небольшому бизнесу проверить условия поставки, шаги обновления и распределение поддержки до закрытия сделки. Иногда одного сфокусированного прохода достаточно, чтобы найти пункты, которые позже превращаются в многомесячные споры.
Подписывайте только тогда, когда приложение к договору читается как операционный документ, а не как обещание.