
Я работаю в аутсорсинге рабочего персонала: грузчики, комплектовщики, разнорабочие на смены для складов, строек и производств. Сегодня разберу не экономику и не найм, а то, что обычно остаётся за кадром: что технически происходит между подтверждённой сменой и человеком у ворот объекта, когда что-то идёт не так.
Срыв смены похож на аварию в сервисе не метафорически, а буквально. Инцидентом он становится не в момент, когда исполнитель не вышел. Инцидент - это когда первым о невыходе узнал заказчик. Пока заказчик ничего не знает, аварию ещё можно закрыть незаметно для него, и весь вопрос в том, сколько на это времени.
Смена как машина состояний
Каждая смена в приложении исполнителя проходит через четыре состояния: «Выехал», «На месте», «Работа выполнена», «Оплата получена». Со стороны это выглядит как простая бухгалтерия статусов. На деле это четыре контрольные точки, в каждой из которых процесс может не пойти дальше. Про журнал этих событий и то, что из него можно посчитать задним числом, я уже писал на Хабре. Здесь другое: как те же состояния работают на опережение, пока смена ещё не началась.

Точка отказа номер один
Самая важная контрольная точка - «Выехал». Если за час до начала смены кнопка не нажата, система поднимает алерт диспетчеру. Дальше начинается самое интересное: у диспетчера есть примерно час, чтобы найти замену и отправить её на объект.
Почему порог стоит именно за час? Потому что это окно, за которое ещё возможен failover. Замена - это живой человек, которого нужно найти в базе, дозвониться, убедиться, что он готов выйти прямо сейчас, дать ему адрес и время на дорогу. За час это реально. Через полчаса до начала - уже лотерея. А после начала смены остаётся только извиняться.
Тут и лежит граница между подрядчиками. Никто не обещает заказчику, что люди не заболеют и не проспят - болеют все. Обещают другое: мы узнаем о проблеме раньше вас и закроем её сами. Подрядчик без этой механики узнаёт о невыходе из звонка заказчика в 6:40, когда фура уже стоит у ворот. Заменить человека к этому моменту нельзя, можно только разделить штраф и выслушать всё, что о вас думает начальник смены.
Что происходит в окне
Алерт пойман, что дальше. Диспетчер открывает базу и ищет не «кого-нибудь», а тех, кто помечен как готовый выйти сегодня: это люди без активных смен, с рейтингом выше порога и подтверждённой готовностью к подработкам. Дальше звонок, короткое собеседование по скрипту - что за работа, куда ехать, во сколько, в какой одежде - и новый исполнитель получает смену в приложение.
Один нюанс, о котором узнаёшь на своих ошибках: замену нельзя искать среди тех, кто уже на сменах. Кажется очевидным, но в пиковые дни соблазн велик, и так рождаются двойные бронирования, когда один человек числится на двух объектах одновременно. Объекты в этот момент ещё не знают, что у них один грузчик на двоих.

Отсюда же требование к базе: замена работает, только если база глубокая. Большая часть откликнувшихся на вакансию до реальной работы так и не доходит - кто-то передумал, кто-то нашёл постоянное место, кому-то не подходит график, - поэтому набор не заканчивается никогда. Сколько людей для этого держать в резерве и как это считать - отдельный разбор со своей арифметикой.
Сколько стоит сорванная смена
Теперь немного арифметики - типовой пример из нашей практики: заказчик платит 3 500 ₽ за смену, исполнитель получает 2 600 ₽. Разница - около девятисот рублей. На первый взгляд, сорванная смена стоит именно их. На деле всё наоборот: незамеченный невыход - самая дешёвая часть истории.

Дорого стоит объект, который после пары утренних сюрпризов уходит к конкуренту, и штраф от сети, если смена была частью согласованного графика. Именно поэтому деньги вкладываются не в «идеальных исполнителей» - их не существует, - а в сокращение времени между сбоем и реакцией на него.
Вторая контрольная точка и телеметрия
Следующая точка - «На месте». Она закрывает вечный спор «ваши опять опоздали»: время прихода зафиксировано приложением, и разговор о опоздании превращается из взаимных обвинений в чтение лога. Дальше «Работа выполнена» и «Оплата получена» закрывают расчёт, и по каждой смене остаётся полная история: кто, где, когда и за сколько.
После смены заказчик ставит каждому исполнителю оценку. Это уже телеметрия: рейтинг копится, и на следующие заказы первыми ставят тех, кого хвалили. Ненадёжные люди перестают получать смены сами, без долгих воспитательных разговоров - система просто перестаёт их выбирать. Со временем на постоянном объекте складывается почти постоянная бригада, и для заказчика это лучший повод остаться: людей не нужно учить заново, они уже знают склад и порядок.
Одна юридическая граница, о которой стоит сказать: заёмный труд в России запрещён статьёй 56.1 Трудового кодекса (текст статьи). Поэтому заказчик ставит задачу на результат, а людьми на объекте руководит старший из бригады - один из исполнителей, а не сотрудник заказчика. Если эту границу размыть, схема превращается в то, чего по закону делать нельзя.
Вместо вывода
В этой нише подрядчик продаёт не людей и не часы. Он продаёт скорость реакции: момент, когда сбой случился, а заказчик об этом даже не заметил. Кнопка «Выехал» с таймаутом, окно на замену, глубокая база и рейтинг - всё это нужно, чтобы инцидент заканчивался до того, как его увидит клиент.

