Книга

Глава 23. Психологическая безопасность: день, когда мы простили Сергея

После истории с обратной связью в команде установилась атмосфера особой осторожности. Люди стали тщательнее подбирать слова, чаще спрашивать друг у друга разрешения, прежде чем высказать замечание. Это было похоже на хрупкий мир, установившийся после долгой войны. Все помнили, как Алёна плакала в туалете, и никто не хотел повторения. Но вместе с этой осторожностью в команду вползло нечто, чего Алексей не ожидал - молчаливое, почти суеверное избегание серьёзных разговоров. Ошибки обсуждали шёпотом, промахи заметали под ковёр, а когда кто-то проваливал задачу, коллеги отводили глаза, словно боялись заразиться неудачей.

Сергей работал в своём обычном режиме: много, сосредоточенно, почти без перерывов. Он по-прежнему писал код быстрее и чище остальных, но теперь к его таланту добавилось что-то ещё. Он начал больше общаться, иногда даже шутил, и команда привыкла полагаться на него как на скалу. Именно поэтому то, что случилось в четверг, ударило по всем с такой оглушительной силой.

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

Павел и Сергей бросились разбирать логи. Павел листал записи, хмурился, бормотал что-то себе под нос. Сергей сидел рядом, и по мере того как они продвигались вглубь цепочки событий, его лицо менялось. Сперва на нём отразилось недоумение, потом тревога, а потом выражение, которое Павел потом описал как «человек увидел собственную смерть». Сергей нашёл место сбоя. Маленький кусок кода, который он написал три дня назад, подгружал данные из кэша без проверки их актуальности. В обычных условиях это работало. Но в тот день случился пик нагрузки, кэш не обновился, и система начала множить ошибки, пока не рухнула целиком.

Сергей отодвинул клавиатуру. Его руки легли на стол ладонями вниз, и он замер. Он не произнёс ни слова, пока Павел судорожно правил код и перезапускал сервера. Когда система ожила и Илья выдохнул в трубку: «Работает, Олег Степанович, работает», Сергей встал и вышел из опенспейса. Никто не заметил, как он ушёл.

***


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

— Алексей, я увольняюсь. Я подвёл команду, подвёл компанию. Из-за меня заказчик потерял деньги, а Андрей Викторович мог нас всех разнести. Мне здесь не место.

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

— Подожди, — тихо сказал Алексей. — Давай сначала разберёмся, что произошло. Не для того, чтобы наказать, а чтобы понять. Ты написал код, который сломал систему. Это факт. Но почему ты его не проверил? Почему не показал Павлу?

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

— То есть причина не в том, что ты дурак, а в том, что система подтолкнула тебя к спешке?

Сергей долго молчал. Его лицо, которое всегда казалось высеченным из камня, дрогнуло.

— Наверное, — произнёс он наконец. — Если бы у меня было больше времени, я бы сделал иначе. Если бы Павел был свободен, я бы показал ему. Если бы…

— Если бы, — перебил его Алексей, но мягко. — Мы все живём в этих «если бы». И именно с ними нужно разбираться.

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

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

— Чего? — переспросил Денис, нахмурившись.

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

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

Постмортем провели по всем правилам, которые Алексей когда-то вычитал в книге по DevOps, но которые здесь, в этой переговорной, наполнились живой, пульсирующей реальностью.

Первый этап: сбор фактов. Алексей встал у флипчарта и начал записывать хронологию. Что произошло в четверг, в какой момент, при каких обстоятельствах. Без оценок, без эмоций, без слов «виноват» и «ошибся». Только последовательность событий, сухая и точная. Павел вспоминал, как заметил первые сбои. Денис добавил, что заказчик за два дня до этого прислал срочное требование, которое сдвинуло сроки. Илья рассказал, как пытался сдержать панику клиента. Каждый факт ложился на доску, и постепенно картина начала проясняться.

Второй этап: поиск причин. Алексей повернулся к команде и спросил: «Почему это произошло?» Первая тишина была оглушительной. Потом заговорил Павел.

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

— А почему код не прошёл ревью? — тихо спросила Лена.

— Потому что я был занят другим проектом и сказал Сергею: «Ты справишься, у тебя всё получится», — ответил Павел, и его голос дрогнул. — Я не проверил. Я доверился. И это моя ответственность тоже.

— А почему мы не договорились с заказчиком о реалистичных сроках? — добавил Денис. — Мы боялись ему отказать. Мы взяли на себя больше, чем могли унести.

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

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

Четвёртый этап: план действий. Команда составила список. Ввести обязательное ревью для всех задач без исключения. Перераспределить нагрузку так, чтобы у каждого был дублёр. Договориться с заказчиком о разумных сроках и зафиксировать процедуру эскалации, если сроки становятся нереалистичными. Ввести еженедельный разбор сложных случаев.

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

— То есть меня не уволят? — спросил он, и его голос прозвучал хрипло, будто он не говорил целую вечность.

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

— Я никогда не работал в таком месте, — медленно, словно пробуя слова на вкус, произнёс Сергей. — Обычно за такие ошибки увольняют. Или разносят в пух и прах на общем собрании, чтобы другим неповадно было. Я готовился к худшему. Я написал заявление, оно до сих пор у меня в кармане. А вы… вы из ошибки сделали урок для всех. Вы меня не судили. Вы разобрались.

Он замолчал. Его руки, лежавшие на столе, мелко дрожали. Лена, сидевшая рядом, тихонько положила свою ладонь на его, и он не отдёрнул руку.

— Знаете, — вдруг заговорила Катя, и её голос звенел, — когда я услышала про аварию, я в первую секунду подумала: «Кто виноват?» Мне стало страшно. Но когда ты, Лёша, сказал про постмортем, я вдруг поняла, что мы никогда такого не делали. Мы всегда искали виноватого. Или прятали ошибки. И этот страх быть наказанным висел над нами, даже когда мы делали вид, что доверяем друг другу. А теперь… теперь я чувствую, что могу ошибиться. И меня не убьют.

— И я, — тихо добавил Максим-младший. — Я всё время боюсь ошибиться. Особенно с тех пор, как стал аналитиком. Мне кажется, что любая моя ошибка докажет, что я не на своём месте. А сейчас я смотрю на Сергея и вижу, что ошибаться можно. Даже ему. И это не делает его плохим.

— Ошибка — это не клеймо, — сказал Алексей. — Это сигнал.
Если мы боимся ошибок, мы боимся расти. Если мы наказываем за ошибки, мы учим людей прятать их. А спрятанные ошибки рано или поздно взрываются.
То, что мы сегодня сделали, называется психологической безопасностью. Это когда ты знаешь, что можешь прийти и сказать: «Я ошибся», и тебя не сожрут.

Сергей поднял голову. Его глаза блестели.

— Спасибо, — сказал он, и это короткое слово прозвучало весомее любой длинной речи.

Вечером, когда все уже начали расходиться, Катя подошла к флипчарту. Она долго стояла перед чистым листом, держа в руке маркер. Потом начала рисовать. Она нарисовала феникса, возрождающегося из пепла. Птица раскинула крылья, и в её оперении угадывались крошечные буквы — имена членов команды. Рядом Катя написала:

ПОСТМОРТЕМ - РОЖДЕНИЕ НОВОГО ОПЫТА, А НЕ ПОХОРОНЫ
ОШИБКА - ПОДАРОК, УПАКОВАННЫЙ В ПРОБЛЕМУ, А НЕ ПРИГОВОР
МЫ РАСПАКОВЫВАЕМ ЕГО ВМЕСТЕ: ИЩЕМ ПРИЧИНЫ, А НЕ ВИНОВАТЫХ; НАХОДИМ СИСТЕМНЫЕ СБОИ, А НЕ КОЗЛОВ ОТПУЩЕНИЯ; СОСТАВЛЯЕМ ПЛАН, А НЕ ПИШЕМ ДОНОСЫ

И в самом низу приписала: «Сергей, ты наш. Навсегда».

Утром следующего дня кто-то оставил рядом с фениксом сложенный листок. Когда Катя развернула его, она увидела написанное от руки заявление об увольнении, подписанное Сергеем. Поперёк текста красным маркером было выведено одно слово: «Передумал». И чуть ниже, мелким, старательным почерком: «Остаюсь. Ради вас».

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

Он взял маркер и дописал в самом низу, под всеми словами и рисунками:

ПСИХОЛОГИЧЕСКАЯ БЕЗОПАСНОСТЬ — ЭТО КОГДА ТЫ ЗНАЕШЬ, ЧТО ТЕБЯ НЕ УБЬЮТ ЗА ОШИБКУ. А ПОМОГУТ ПОНЯТЬ, ПОЧЕМУ ОНА СЛУЧИЛАСЬ, И ВЫРАСТИ.
СПАСИБО, ЧТО ОСТАЛСЯ. МЫ БЫ НЕ СПРАВИЛИСЬ БЕЗ ТЕБЯ