Тестовый контур — это вторая копия вашей системы, живущая отдельно от рабочей, на данных, которые не жалко испортить. Релиз — момент, когда проверенное изменение переносят в рабочую систему. Откат — заранее подготовленная возможность вернуть предыдущее состояние, если после релиза что-то пошло не так. Три термина идут в смете одной строкой, и именно её обычно предлагают вычеркнуть, потому что «на ней ничего не работает для бизнеса».
Офисная аналогия — новая версия прайса. Коммерческий директор правит цены в отдельном файле, показывает двум менеджерам, потом выкладывает готовое в общий доступ и рассылает клиентам, а прошлую версию сохраняет. Если бы он правил прямо в том файле, из которого менеджеры прямо сейчас выставляют счета, половина дня ушла бы на отзыв уже отправленных документов. Отдельный файл — это тестовый контур. Момент выкладывания в общий доступ — релиз. Сохранённая прошлая версия — откат.
Дальше — расчёт по состоянию на сентябрь 2026 года. Компания в примере: торгово-производственная фирма, 50 человек, 1С:УТ, CRM и обмен с интернет-магазином. Ставка инженера — 3 000 ₽/час. Полная стоимость часа: менеджер по продажам — 900 ₽, комплектовщик — 550 ₽, бухгалтер — 844 ₽, оператор приёма заказов — 700 ₽, руководитель отдела — 1 800 ₽, директор — 2 500 ₽.
Три слова, которые в смете идут одной строкой
Вторая копия системы с теми же настройками и обезличенной копией данных, отделённая от рабочей. Нужна для двух вещей: проверять обновления до того, как их увидят сотрудники, и учить людей на реальных, а не выдуманных данных. Второе часто оказывается ценнее первого: новичок в тестовом контуре может провести отгрузку неправильно двадцать раз подряд, и это ничего не стоит. В смете — развёртывание копии и скрипт её регулярного обновления. Как именно готовятся данные, разобрано в пяти способах обезличивания.
Перенос проверенного изменения в рабочую систему в согласованное окно. Это не «программист что-то поправил», а процедура с ответственным, временем и чек-листом: перед выкатом делается точка возврата, после выката проходит короткая проверка, по её итогам принимается решение оставить или откатить. Проверочный вопрос подрядчику: в какое время суток вы выкатываете изменения и кто принимает решение, что выкат состоялся.
Заранее подготовленная и проверенная на учениях процедура возврата к предыдущему состоянию. Ключевое слово — проверенная: «в случае чего восстановим из копии» откатом не является, пока никто не замерял, сколько это занимает. Нормальный ориентир для одного изменения — 15 минут. Проверочный вопрос: когда вы в последний раз выполняли откат и сколько он занял по секундомеру.
Разница между этими тремя вещами и обычным тестированием кода в том, что здесь речь не о качестве работы программиста. Изменение может быть написано безупречно и всё равно сломать вечернюю выгрузку, потому что у вас в справочнике есть позиция, которой не было у подрядчика. Тестовый контур покупается не от плохих исполнителей, а от того, что ваши данные всегда содержат что-то, чего никто не предвидел.
Почему проверка на рабочей базе — не экономия
Аргумент «давайте проверим прямо в боевой, зачем платить за вторую копию» звучит разумно ровно до первого расчёта. Считаем цену часа, в который учётная система недоступна. Стоят не все и не полностью: часть работы можно делать на бумаге и по телефону, поэтому по каждой роли берётся честная доля простоя, а не сто процентов.
Упущенные заказы, сорванные отгрузки и звонки клиентам в расчёт намеренно не включены: их размер сильно зависит от отрасли, и завышать здесь нечестно. Даже в такой урезанной форме число получается заметным. Типичный неудачный выкат прямо в рабочую базу — это 3,5 часа до восстановления, то есть 34 881 ₽. Тот же самый неудачный выкат при наличии проверенного отката — 15 минут и 2 492 ₽. Разница за один инцидент — 32 389 ₽.
Горизонтальная столбчатая диаграмма из пяти полос, ось значений в рублях до 3 500. Полосы подписаны слева: «6 менеджеров — 3 240 ₽», «4 комплектовщика — 2 200 ₽», «3 бухгалтера — 2 026 ₽», «Руководитель отдела — 1 800 ₽», «2 оператора приёма — 700 ₽». Справа от диаграммы крупная итоговая подпись «9 966 ₽ за час». Под ней мелким шрифтом «упущенные отгрузки не учтены». Тонкие чертёжные линии, подписи по-русски.
Откат: чем платят за возможность вернуться за 15 минут
Откат кажется бесплатным свойством любой системы: раз есть резервная копия, значит, вернуться можно. На практике между «копия существует» и «мы вернулись за 15 минут» лежит работа, за которую и берут деньги. Нужно, чтобы точка возврата делалась автоматически перед каждым выкатом, чтобы процедура возврата была записана по шагам, и чтобы её хотя бы однажды выполнили с секундомером.
Горизонтальная лента времени с пятью отметками слева направо: «19:30 — точка возврата создана», «19:40 — выкат изменения», «19:45–20:05 — проверка по чек-листу, 12 пунктов», «20:05 — решение: оставляем или откатываем», «до 20:20 — откат за 15 минут, если решение отрицательное». Под лентой две подписи-выноски: «выкат в рабочий день — 34 881 ₽ при неудаче» и «выкат в окно с откатом — 2 492 ₽». Тонкие чертёжные линии, подписи по-русски.
Если изменение затронуло структуру данных, а сотрудники успели поработать сорок минут, возврат к предыдущей версии вернёт и старую структуру — вместе с ней исчезнут документы, введённые после выката. Именно поэтому выкат ставят вне рабочих часов, а не «когда будет готово». Спрашивайте прямо: какие изменения в нашем контуре откатить будет нельзя и что вы делаете с ними вместо отката. Честный ответ — «такие выкатываем только в выходные и держим двойную точку возврата», а не «у нас всё откатывается».
Что входит в строку сметы «тестовый контур»
Строка выглядит одним пунктом, а состоит из пяти работ. Полезно требовать её разбивки: так видно, за что именно платят, и становится возможным осознанно отказаться от части.
К этому добавляются две регулярные позиции: аренда сервера под тестовый контур — 3 500–9 000 ₽/мес в зависимости от размера базы, и подготовка обезличенных данных. Последнюю считать заново не будем: соседний материал оценивает её для компании на 60 человек в 25 200 ₽ разово плюс 9 600 ₽ в год за ежемесячную перезаливку. Складываем: 90 000 + 25 200 + 9 600 + сервер за год (42 000–108 000 ₽) — первый год обходится в 166 800–232 800 ₽, то есть от пяти до семи предотвращённых инцидентов. По разовой части арифметика короче: 90 000 ₽ против 32 389 ₽ разницы на одном инциденте — окупаемость на третьем.
Таблица-сравнение из двух колонок «Без тестового контура» и «С тестовым контуром» и пяти строк. Строки: «Где проверяется изменение» — «в рабочей базе, на живых документах» против «на копии, на обезличенных данных»; «Кто замечает ошибку» — «сотрудники в рабочее время» против «инженер до выката»; «Время до восстановления» — «около 3,5 часов» против «15 минут»; «Цена одной неудачи» — «34 881 ₽» против «2 492 ₽»; «Разовые вложения» — «0 ₽» против «90 000 ₽». Тонкие чертёжные линии, подписи по-русски.
Приёмка силами заказчика и четыре вопроса подрядчику
Приёмочное тестирование — это не повторение работы подрядчика, а проверка того, что система делает то, ради чего её заказывали. Проверяют её ваши люди, каждый в своей части, по заранее написанному списку сценариев. Список готовится до начала работ и входит в ту же строку сметы.
| Кто проверяет | Что именно | Время | Стоимость по полной ставке часа |
|---|---|---|---|
| Владелец процесса, руководитель отдела продаж | 12 сценариев чек-листа целиком, от заявки до отгрузки | 3 ч | 5 400 ₽ |
| Бухгалтер | Закрытие дня, печатные формы, проводки по трём типовым документам | 1,5 ч | 1 266 ₽ |
| Комплектовщик | Приёмка, отбор, отгрузка и одна инвентаризация | 1 ч | 550 ₽ |
| Директор | Один отчёт, по которому он принимает решения | 0,5 ч | 1 250 ₽ |
Шесть часов рабочего времени и 8 466 ₽ — меньше, чем один час простоя. Это самая дешёвая страховка в проекте и одновременно та, которую чаще всего пропускают, потому что выделить трёх человек на полдня организационно труднее, чем подписать акт. Отдельно от приёмки бизнес-сценариев проверяются стыки систем — про них есть десять обязательных проверок обмена, включая сценарий «одна система недоступна».
- 1Где проверяются обновления перед выкатом? Правильный ответ — «в вашем тестовом контуре, вот его адрес». Ответ «у нас на стенде» допустим только если ваши данные там воспроизведены; на выдуманных данных не всплывают ни длинные наименования, ни нулевые цены, ни документы за прошлые периоды.
- 2Сколько по секундомеру занимает откат и когда его выполняли в последний раз? Если ответ «не выполняли», в смете нужна строка на учение — 3 часа, 9 000 ₽. Непроверенный откат считается отсутствующим.
- 3Кто и в какое время принимает решение о выкате в рабочий день? У этого решения должна быть фамилия. Формулировка «выкатываем по готовности» означает, что решение принимает разработчик, а платит за простой ваша компания.
- 4Что входит в поддержку после сдачи и с какой скоростью там реагируют? Это уже соседний документ — SLA, но задавать вопрос надо в том же разговоре, потому что регламент выката и обязательства поддержки должны быть согласованы между собой.
Когда отдельный контур не нужен
Вычеркнуть эту строку иногда правильно, и вот в каких случаях это не экономия на спичках, а разумное решение.
- Вы используете облачный сервис без собственных доработок. Обновления в нём катит поставщик, и откатить их вы не можете в принципе — платить за собственный контур не за что. Вместо него в договоре стоит требовать уведомление об обновлениях заранее и возможность отложить крупные.
- Весь проект — один бот на 30 обращений в день, не пишущий в учётную систему. Час его простоя стоит около 700 ₽, и 90 000 ₽ на регламент выката вернутся лет через десять. Достаточно копии на стороне подрядчика и обезличенных данных.
- Простой стоит меньше 2 000 ₽ в час, а изменения вносятся два-три раза в год. Тогда разумнее заложить не контур, а окно выката в выходной день и обязательство подрядчика присутствовать в понедельник утром.
- Идёт пилот на ограниченном срезе данных: он сам по себе играет роль тестового контура, потому что работает в стороне от основного потока. Отдельная копия появляется на этапе, когда пилот признан удачным и переходит в эксплуатацию.
Во всех остальных случаях полезно помнить простую арифметику: строка стоит 90 000 ₽, а один неудачный выкат в рабочее время — 34 881 ₽. Если изменения в вашем контуре выкатываются чаще раза в квартал, вопрос не в том, покупать ли контур, а в том, когда именно вы за него заплатите — до первого инцидента или после третьего.
Тестовый контур покупают не потому, что подрядчик может ошибиться. Его покупают потому, что в вашей базе всегда найдётся документ, которого никто не предвидел.
