
Полная версия:
Алгоритм для проигравших

Влад Велирский
Алгоритм для проигравших
От автора
Эта история начинается там, где слово «неудача» уже превратилось в показатель на экране. Но ни один показатель не умеет прожить последствия вместо человека.
В романе нет универсального набора упражнений и нет программы, способной гарантировать новую жизнь. Есть задания, отказы, ошибки и право спросить, кому выгодно считать один исход победой, а другой поражением.
Читайте этот текст как историю о людях и их выборе, а не как руководство по психологии, карьере или работе алгоритмов.
Глава 1. Человек с худшим прогнозом
В девять сорок семь Антон Рудин ещё был старшим продуктовым аналитиком «Шанса». В девять пятьдесят две его фамилия появилась на общем экране рядом с красным числом, которое он сам научил руководство считать понятным.
Совещание называлось «Итоги осеннего запуска». Ради него в переговорную на шестом этаже принесли лишние стулья, хотя половина сотрудников подключалась из дома. За стеклом дождь расчёркивал Рубежный на серые прямоугольники: бизнес-центр, эстакада, крыши старых мастерских, башня городской администрации с электронными часами. Внутри было жарко, пахло мокрыми пальто и кофе из автомата.
Антон сидел у стены, положив ладонь на закрытый ноутбук. Открывать его не требовалось. Все таблицы он знал почти наизусть: сколько пользователей заполнили профиль, сколько получили вакансии, сколько дошли до собеседования, сколько продержались на новом месте хотя бы три недели. Последнее число было хуже плана на одиннадцать процентов. Не катастрофа. Достаточно неприятно, чтобы перенести разговор о премиях, но недостаточно, чтобы собирать весь отдел.
Елена Градова стояла у экрана. Обычно она говорила без слайдов, прохаживаясь между столом и окном, будто площадь помещения была ещё одним ресурсом, который нельзя оставлять неиспользованным. Сегодня она держалась возле пульта.
— Начну с того, о чём все уже читали в городской ленте, — сказала она. — Контракт на следующий год не подписан. Комитет требует объяснить, почему при росте числа назначений устойчивое трудоустройство снизилось.
На экране возникла воронка. Синие прямоугольники сужались сверху вниз. Антон узнал свою версию диаграммы, только подписи стали крупнее, а внизу добавилась красная рамка.
— Потому что мы впервые перестали считать трудоустройством выход на одну смену, — сказал он.
Градова посмотрела на него не сразу.
— Антон, я дойду до методологии.
Это прозвучало мягко. В комнате зашуршали блокноты. Кто-то выключил звук уведомления, не успевшего прозвенеть до конца.
Антон откинулся на спинку. Он обещал себе молчать хотя бы первые десять минут. Обещание продержалось четыре.
Следующий слайд назывался «Причины отклонения». Под заголовком стояли три пункта: позднее обновление источников, недостаточная точность ранжирования, ошибочная калибровка модели удержания. Возле третьего пункта в скобках было написано: «ответственный — А. Рудин».
Такого поля в исходной презентации не было.
— Ошибочная? — спросил Антон.
— Сейчас всё объясню.
— Нет, я про термин. Мы согласовали порог на совете продукта. Протокол от четырнадцатого июня.
— Согласовали на основании твоей записки.
— На основании теста Нины и моей записки.
Имя вылетело раньше, чем он успел решить, зачем его произносит. На другом конце стола Марк из разработки опустил глаза. Нины в компании не было уже восемь месяцев, но пауза после её имени осталась такой, словно она только что вышла из комнаты и могла вернуться.
Градова нажала кнопку пульта. Воронка исчезла. Вместо неё появились две линии: ожидаемое удержание и фактическое.
— Мы не ищем виноватого, — сказала она. — Мы разбираем ответственность.
Антон едва не усмехнулся. Фразу про виноватого всегда произносили в тот момент, когда его уже нашли.
— Тогда уберите фамилию со слайда.
— Фамилия обозначает владельца решения.
— Решение было коллективным.
— Владение не бывает коллективным. Ты сам это повторял на каждом разборе.
Несколько человек посмотрели на него. Не злорадно — хуже. С облегчением тех, кому сегодня не придётся защищаться.
На боковой стене висели плакаты с правилами команды. Антон когда-то помогал формулировать их на выездной сессии. «У каждой метрики есть хозяин». «Плохие данные лучше удобной догадки». «Ошибка должна иметь адрес». Последнюю фразу он предложил сам и потом долго гордился её жёсткостью.
Градова переключила слайд. Теперь на экране была таблица из четырёх строк. В верхней строке — городская цель. В нижней — сценарий сокращения финансирования. Между ними — варианты, которые могли спасти контракт.
— Комитет согласен оставить программу, если мы до конца квартала докажем управляемость результата, — сказала она. — Для этого продуктовая команда будет перестроена. Аналитическая функция переходит в блок операционной эффективности.
Антон услышал знакомое выражение и понял всё на полсекунды раньше остальных. «Функция переходит» означало, что людей могли оставить. «Команда будет перестроена» — что руководителя оставлять не собирались.
— А моя роль? — спросил он.
— Упраздняется.
Градова не отвела взгляда. В этом Антон не мог её упрекнуть.
— С сегодняшнего дня?
— Доступ будет закрыт после встречи. Отдел кадров пришлёт документы. Условия стандартные, плюс компенсация за неиспользованный отпуск.
За стеклянной стеной переговорной прошла девушка из отдела коммуникаций. Она замедлила шаг, увидев красную таблицу, и сразу отвернулась. Значит, знали не все. Но достаточно многие.
Антон открыл ноутбук. Сеть уже не принимала пароль.
— Вы заблокировали доступ до разговора.
— По регламенту информационной безопасности.
— Зато обсуждаем при сорока двух людях.
— Мы обсуждаем решение, повлиявшее на сорок две роли и на городскую программу.
В правом верхнем углу экрана светился счётчик подключённых: тридцать восемь. Вместе с теми, кто сидел в переговорной, выходило пятьдесят один. Антон машинально поправил Градову про себя и почувствовал стыд. Даже теперь ему хотелось выиграть хотя бы арифметику.
— Если вы хотите доказать комитету управляемость, — сказал он, — не называйте прогноз причиной. Модель предупреждала, что новые назначения не удержатся. Вы расширили поток, потому что нужен был красивый квартальный отчёт.
— Модель ставила высоким риск людям, которые успешно работают до сих пор, и пропускала тех, кто ушёл через неделю.
— Любой прогноз ошибается на отдельных людях.
— Но твой продукт ошибся на решении, за которое нам теперь нечем платить.
Слово «твой» ударило точнее фамилии на слайде. Антон ощутил, как по спине под рубашкой стекает пот. Он мог поднять протоколы. Мог показать переписку, где Градова просила смягчить предупреждение модели перед заседанием комитета. Мог напомнить, что Нина первой обнаружила перекос и что именно после её ухода тест свернули. Но доступ был закрыт, а всё, что оставалось у него в памяти, перед лицом пятидесяти одного свидетеля превращалось в оправдание.
— Хорошо, — сказал он. — Тогда покажите полный отчёт. Не четыре строки.
— Антон, встреча не о твоём трудовом споре.
— Вы сделали её о нём, когда вывели мою фамилию.
Градова положила пульт на стол.
— Полный отчёт будет у комитета. Ты получишь материалы, которые положены по процедуре. А сейчас нам нужно продолжить работу.
Вот и всё. Не крик, не охрана, не картонная коробка из кино. Просто фраза, после которой человек становится помехой расписанию.
Антон закрыл ноутбук. На его крышке остался влажный след ладони. Он встал, задел коленом стул и услышал, как кто-то прошептал «осторожно». Ему захотелось ответить, что поздно, но он молча поднял рюкзак.
До двери было семь шагов. На третьем он увидел на экране подпись под таблицей: «Методика оценки устойчивости — аналитическая группа, руководитель А. Рудин». Ещё год назад там стояло имя Нины Соколовой. Потом она прислала новую версию расчёта, Антон объединил её со своей запиской и представил совету. Она спросила, почему исчезла строка с авторством теста. Он ответил, что в продуктовой документации авторами не меряются.
Сейчас память вернула её вопрос дословно, а собственного ответа — только тон.
У двери Антон остановился.
— Елена, один вопрос. Кто теперь владелец методики?
Градова поняла, что он спрашивает не о должности.
— Компания.
— У компании нет фамилии.
— Именно поэтому компания переживёт эту ошибку.
Он вышел, не попрощавшись.
В коридоре его ждал сотрудник безопасности Семён, с которым они три года здоровались у турникета и один раз вместе толкали заглохшую машину на парковке. Семён держал прозрачный пакет с наклейкой для пропуска.
— Антон Сергеевич, карту, пожалуйста.
— Уже Сергеевич?
— Всегда был.
Семён сказал это без улыбки. Антон снял пропуск с шеи. Пластик зацепился за пуговицу, лента натянулась и больно резанула кожу.
— Личные вещи можно забрать с сопровождением, — сообщил Семён. — Или вам соберут и передадут завтра.
Антон представил свой стол: кружка с трещиной, запасная рубашка, бумажная книга о причинных моделях, три пачки мятной жвачки, зарядка, которую давно считал офисной. В нижнем ящике лежал старый блокнот с первыми схемами «Шанса». В нём могли остаться заметки о тесте Нины. Или ничего полезного, только стрелки и слова, которыми он когда-то убеждал себя, что строит честную систему.
— Завтра, — сказал он.
Семён положил пропуск в пакет и запечатал полоску.
Лифт пришёл сразу. Это показалось издевательством: четыре года каждое утро Антон ждал его по три минуты, а в день увольнения здание выпустило его без задержки.
На первом этаже терминал у турникета мигнул красным, хотя пропуска у него уже не было. Семён приложил служебную карту. Стеклянные створки разошлись.
— Всего доброго, — сказал охранник.
Антон вышел под дождь.
Он не взял зонт. До остановки было двести метров, но вместо неё он пошёл в другую сторону, вдоль канала. Телефон вибрировал в кармане. Сначала отдел кадров прислал ссылку на документы. Потом Марк написал: «Не знал. Если что нужно — скажи». Следом пришло сообщение от матери: фотография банки с маринованными грибами и вопрос, заедет ли он в воскресенье. Антон не ответил никому.
У моста он остановился под козырьком закрытого киоска. На противоположном берегу висел огромный плакат «ШАНС ЕСТЬ У КАЖДОГО». Девушка в жёлтом пальто улыбалась поверх потока машин. Под слоганом мелко: «Городская платформа персонального трудоустройства».
Антон достал телефон и открыл приложение.
Его рабочий профиль исчез. Вместо внутренней панели появилась обычная форма входа для соискателей. Номер телефона приложение узнало сразу, прислало код и предложило подтвердить согласие на обработку данных. Антон ткнул в галочку, не читая текст, хотя сам когда-то требовал разбить это согласие на три отдельных экрана.
«Расскажите о себе, чтобы получить персональный маршрут».
Он мог закрыть приложение. Мог позвонить юристу. Мог хотя бы добраться домой и переодеться. Но палец уже нажал «Продолжить».
Платформа подтянула возраст, образование и прежнюю должность из городского профиля. В строке «Статус занятости» стояло: «Не работает с 09:52 сегодняшнего дня».
Антон посмотрел на часы. Было десять двадцать шесть.
Тридцать четыре минуты. Система, которую упрекали в опоздании данных, успела превратить его из сотрудника в объект до того, как высохла подпись под приказом.
Он ответил на вопросы. Готовность к переезду — нет. Снижение дохода — не более десяти процентов. Временная занятость — нет. Ночная работа — нет. Переобучение — «зависит от программы». Перерыв в карьере — ноль месяцев. Причина увольнения — «сокращение роли».
Последний ответ приложение не приняло.
«Выберите основной фактор: недостаток компетенций; нарушение дисциплины; завершение проекта; сокращение штата; личные обстоятельства; другое».
Антон выбрал «сокращение штата».
«Сведения работодателя не подтверждают выбранный фактор».
Дождь забарабанил по металлическому козырьку сильнее. Антон нажал «другое» и напечатал: «Разногласия по методологии оценки».
Приложение превратило фразу в серую плашку: «Профессиональный конфликт».
— Очень персонально, — сказал Антон вслух.
Пожилой мужчина рядом подвинулся от него на полшага.
Начался расчёт. Кольцо загрузки двигалось рывками, будто система сомневалась не в данных, а в приличиях. Потом экран стал белым.
«Ваш прогноз устойчивого трудоустройства на ближайшие 90 дней: 7%».
Ниже мелким шрифтом: «Прогноз не является решением работодателя и может изменяться после выполнения рекомендаций».
Антон перечитал число. Семь процентов было нижней границей шкалы. Ноль платформа не показывала, чтобы не создавать ощущения безнадёжности. Семёрку присваивали профилям с длинным перерывом, несколькими сорванными назначениями и отказом от большинства доступных форм занятости. Новый пользователь с востребованной специальностью не мог получить меньше сорока двух.
Он обновил страницу. Семь.
Закрыл приложение и открыл снова. Семь.
В разделе объяснений отображались четыре фактора: «низкая гибкость условий», «конфликтное завершение предыдущей занятости», «ограниченная вариативность маршрута», «низкая подтверждённая управляемость».
Последний термин не предназначался для пользователя.
В публичном интерфейсе должно было быть «готовность следовать маршруту». Формулировку меняли после юридического заключения ещё на пилоте. «Управляемость» оставалась во внутренних таблицах — короткое техническое имя признака, плохое даже по меркам технических имён.
Антон коснулся строки. Открылось пояснение: «Показатель отражает полноту взаимодействия с рекомендованными действиями».
Это было неправдой. Не прямой, а аккуратно собранной. Показатель учитывал скорость ответа, долю принятых рекомендаций, число самостоятельных изменений в анкете и склонность спорить с назначенным консультантом. Он не предсказывал трудоустройство. Он предсказывал, насколько легко провести человека по заранее выбранному маршруту. Когда-то это различие казалось временным: команде требовалась метрика для эксперимента, а потом её должны были заменить.
Антон открыл форму обратной связи и набрал: «В пользовательский интерфейс выведено внутреннее поле controllability_score. Вероятно, ошибка конфигурации признаков после переноса профиля сотрудника».
Кнопка отправки не сработала. Под текстом появилось предупреждение: «Обращение содержит служебные термины. Опишите проблему простыми словами».
Он стёр сообщение.
Семь процентов могли быть технической ошибкой. Его профиль мог унаследовать тестовую метку. После увольнения могли остаться ограничения доступа. Всё объяснялось быстро и без заговора. Нужно было написать Марку, попросить проверить запись, приложить скриншот. Антон уже выбрал его имя в списке контактов, но остановился.
«Если что нужно — скажи».
Нужно было, чтобы бывший подчинённый тайком исправил ему рейтинг в системе, за которую его только что уволили. Любое объяснение сделало бы просьбу ещё хуже.
Антон убрал телефон и пошёл домой.
Он жил в пятнадцати минутах от центра, в доме, который риелторы называли сталинским, а жильцы — старым. В подъезде пахло сырой штукатуркой и яблоками из квартиры на первом этаже. На площадке перед его дверью стояла соседка Лида Павловна с мусорным пакетом.
— Что это вы так рано? — спросила она.
Антон посмотрел на мокрый рукав пальто.
— Встречу перенесли.
— Домой?
— В другое место.
Она засмеялась, решив, что это шутка, и придержала ему дверь лифта. Антон поблагодарил и вошёл в квартиру.
Тишина встретила его ровно такой, какой он оставил её утром. На сушилке стояла чашка, на столе лежал вскрытый конверт с квитанцией, у окна пылился велотренажёр, превращённый в вешалку. Антон снял мокрое пальто и обнаружил на рубашке тёмную полосу от ремня рюкзака. Рубашку он сменил, будто рабочий день мог продолжиться, если правильно выглядеть.
Потом открыл ноутбук.
Корпоративная почта потребовала войти заново. Облачное хранилище — тоже. Мессенджер показал серый круг вместо фотографии и подпись «Учётная запись деактивирована». Из четырёх лет работы у него остались трудовой договор в личной почте, несколько фотографий с корпоративов и привычка держать открытыми семь окон.
Антон скачал документы от отдела кадров. Приказ был составлен чисто: соглашение сторон, компенсация, отсутствие взаимных претензий. Никакой фамилии на красном слайде. Никакой ошибки. Никакой Нины.
Он создал папку «Увольнение» и разложил файлы по датам. В отдельном документе начал хронологию.
09:47 — начало общего совещания.
09:52 — объявление об упразднении роли.
09:54 — блокировка доступа (фактически могла произойти раньше).
10:26 — профиль соискателя создан автоматически.
10:28 — прогноз 7%, отображение внутреннего признака.
Он перечитал записи. Хронология выглядела убедительно и ничего не доказывала.
Телефон снова завибрировал. На этот раз звонила мать. Антон смотрел на экран, пока вызов не прекратился. Через минуту она позвонила снова.
— Ты занят? — спросила она.
— Уже нет.
— Тогда приезжай в воскресенье пораньше. Я грибов закрыла, тебе оставлю. И кран посмотришь, он опять капает.
— Хорошо.
— Голос какой-то странный.
— Совещание было длинное.
— Ты же сказал, что уже не занят.
Антон закрыл глаза.
— Мам, я перезвоню вечером.
Он отключился раньше, чем она ответила, и сразу написал: «Всё нормально». Сообщение было доставлено. Два серых слова легли рядом с хронологией, и ему показалось, что весь день состоит из формулировок, созданных для прекращения разговора.
В одиннадцать сорок пришло уведомление «Шанса».
«Для вас сформирован первый шаг».
Антон открыл приложение. Вместо списка вакансий на экране была карточка без логотипа платформы. Чёрный фон, белые буквы, внизу тонкая янтарная линия.
«НОЛЬ».
Ниже:
«Запишите одно поражение. Только действие, ожидание и результат. Не указывайте внешнюю причину, пока не назовёте собственное решение».
Кнопки: «Начать», «Отказаться», «Почему я это вижу?».
Антон нажал последнюю.
Экран ответил: «Сценарий доступен при достижении нулевой точки маршрута».
Он сделал скриншот. На снимке вместо карточки оказался обычный раздел рекомендаций: обновить резюме, добавить фотографию, снизить ожидаемый доход. Антон повторил — тот же результат. Карточка оставалась на экране, но системный снимок её не видел.
Не чудо, сказал он себе. Защищённый слой. Так отображали документы с персональными данными. Любой разработчик мог включить запрет на снимок.
Проблема была в другом: «Ноль» закрыли до первого городского запуска.
Название принадлежало раннему сценарию для добровольцев, которые несколько раз выпадали из программ занятости. Антон помнил чёрные карточки и янтарную линию. Помнил спор о том, можно ли начинать маршрут с рассказа о неудаче, если человеку и без того каждый день объясняют, что с ним не так. Помнил, что сценарий не давал вакансий и не рассчитывал вероятность. Он задавал короткую последовательность действий, а участник записывал последствия. Потом тест признали слишком медленным, интерфейс переделали, а название отдали архиву.
Кто написал этот текст, Антон не помнил. Возможно, редактор из исследовательской группы. Возможно, Нина. Возможно, он сам набросал формулу в одном из десятков документов. Пять лет назад все говорили одинаковыми глаголами: зафиксировать, проверить, отделить, назвать.
Он нажал «Отказаться».
Появилось окно: «Отказ является результатом. Укажите, от чего именно вы отказываетесь».
Под окном мигал пустой курсор.
Антон закрыл приложение.
Через минуту открыл снова. Карточка ждала.
Он проверил обновления, очистил кеш, вошёл через браузер. В браузере «Ноля» не было. Там его встречали семь процентов и предложение вакансии оператора контактного центра с доходом в три раза ниже прежнего.
Антон позвонил Марку.
— Ты уже дома? — спросил Марк.
— Проверь одну вещь. В проде всплыл старый сценарий.
На другом конце повисла пауза.
— Антон, я не могу обсуждать прод.
— Я не прошу данные. У меня в приложении карточка «Ноля».
— Чего?
— Старый сценарий исследовательской группы. Чёрный экран, янтарная полоса. Задание записать поражение.
— Это шутка?
— Я похож на человека, которому сегодня хочется шутить?
— Не знаю, на кого ты сейчас похож. Тебя вывело из всех каналов за минуту.
— Поэтому я звоню тебе.
Марк выдохнул.
— Пришли скрин.
— Защита экрана. На снимке обычная рекомендация.
— Тогда пришли запись с другого телефона.
Антон оглядел квартиру. Другого телефона не было.
— У меня нет.
— Покажи поддержке.
— Поддержка отправит обращение вам.
— Значит, оно попадёт по процедуре.
Слово прозвучало почти тем же тоном, каким его произнесла Градова.
— Марк, просто найди в репозитории строку «нулевая точка маршрута».
— У меня теперь другой руководитель.
— Уже?
— Видишь, данные иногда обновляются быстро.
Антон промолчал.
— Извини, — сказал Марк. — Это было лишнее.
— Нет. Точно.
— Я посмотрю, если получу задачу. Сам лезть не буду. После сегодняшнего — точно не буду.
Антон хотел напомнить, сколько раз прикрывал его ошибки в релизах. Хотел сказать, что система могла выдавать архивные задания реальным людям. Хотел потребовать хотя бы профессионального любопытства. Но услышал собственное дыхание и понял: он уже формулирует внешние причины, почему Марк обязан принять его решение.
— Понял, — сказал он. — Не лезь.
— Ты документы посмотрел? Может, юрист нужен?
— Сначала разберусь.
— С чем?
Антон посмотрел на телефон с чёрной карточкой.
— С тем, что именно произошло.
После звонка он написал в поддержку простыми словами: «Приложение показывает незнакомое задание на чёрном фоне. Оно не связано с поиском вакансий». Автоматический ответ обещал рассмотреть обращение в течение трёх рабочих дней.
Карточка не исчезла.
В два часа Антон попытался поесть. Разогрел суп, сделал два глотка и вылил остальное. В три составил письмо юристу, приложил приказ и удалил абзац про «Ноль». В четыре открыл сайт с вакансиями и обнаружил, что не может написать первую строку резюме. «Руководил аналитической функцией городской платформы» теперь звучало как признание. «Разработал методику устойчивого трудоустройства» — как чужая заслуга. «Обеспечил рост числа назначений» — как причина провала.
Он снова вернулся к хронологии и добавил раздел «Предшествующие решения».
Весенний тест Нины.
Снижение порога предупреждения перед расширением.
Отказ от повторной калибровки после ухода Нины.
Решение представить методику как работу аналитической группы.
Последнюю строку он выделил и стёр. Написал вместо неё: «Корпоративный формат авторства».
Карточка «Ноля» светилась рядом.
«Не указывайте внешнюю причину, пока не назовёте собственное решение».
Антон выключил телефон экраном вниз.
К вечеру дождь прекратился. За окном мокрые крыши отражали оранжевый свет, машины ползли по эстакаде, в соседнем доме один за другим загорались квадраты кухонь. Рабочий день закончился для всех, кроме него: у него больше не было границы, после которой можно было перестать быть уволенным.
В девятнадцать десять пришёл ответ отдела кадров: копию протокола совета продукта предоставить не могут, поскольку документ содержит коммерческую и служебную информацию. Запрос на исправление основания прекращения занятости следовало направить бывшему работодателю через форму платформы.
Антон открыл форму. Поле принимало не больше пятисот знаков.
Он написал: «Работодатель указал конфликтное завершение занятости, не отражающее формального основания соглашения сторон. Прошу привести данные в соответствие с документами».
Система предложила добавить: «Я не согласен с оценкой работодателя».
Антон отказался от подсказки и отправил свой текст.
Рейтинг обновился через несколько секунд.
Шесть процентов.
Он смотрел на цифру, пока не рассмеялся. Смех вышел коротким и неприятным. Минимальная граница, значит, всё-таки была не семь. Или граница двигалась для тех, кто оспаривал данные.
В объяснениях появился новый фактор: «низкое принятие обратной связи».
Прогноз трудоустройства не мог честно измениться из-за одного обращения. За минуту Антон не стал менее квалифицированным, вакансии не исчезли, рынок не сдвинулся. Изменилось другое: он совершил действие, неудобное для маршрута. Система назвала это ухудшением шанса найти работу.

