Дежурные оттягивали звонок как можно дольше. Сервис частично не работает, дежурный это видит, понимает, что сам может не справиться, и всё равно не звонит. Пробует ещё одно действие, потом ещё одно, ждёт.
Сначала кажется, что дело в знаниях: человек не понимает, насколько всё серьёзно, или не знает, кого звать. Но чаще дежурный тянул со звонком не потому, что не знал, что делать. Основная причина была другой. Разбудить коллегу — это конфликт, а решить самому — это ответственность. К такому выводу я пришёл из приватных разговоров с инженерами, которые дежурили во время инцидентов. Я спрашивал, почему они не позвонили сразу, на что получал ответ, что выдёргивать человека психологически тяжело. Справедливости ради, причины бывают и другие.
Два избегания
Первое связано с конфликтом. Позвонить коллеге ночью или в выходной значит выдернуть его из жизни. Если потом окажется, что можно было не будить, будет неловко. Дежурный от такого уклоняется и максимально оттягивает момент звонка.
Второе связано с ответственностью. Решить, что инцидент серьёзный, и поднять людей значит взять это решение на себя. Решить, что несерьёзный, тоже значит взять на себя. Менее опытные дежурные таких решений чаще избегают. Отсюда ошибки в оценке важности, а за ними и не те действия.
Пока решение звонить или нет остаётся личным выбором дежурного в моменте, он будет его откладывать. Сколько бы ему ни говорили, что звонить можно в любое время.
Предопределённое решение
Я сделал так, чтобы это решение дежурному не нужно было принимать самому. Для этого описал классификацию инцидентов вместе с парой коллег, согласовал её с руководством и представил всем заинтересованным командам.
Уровней было пять. Уровень определялся двумя вопросами: насколько важен продукт (основной или нет) и насколько глубоко он недоступен (полностью, не работают основные сценарии или только второстепенные). Для каждого уровня регламент отвечал на то, что раньше дежурный решал сам: в какой срок нужно устранить, что делать, когда и на кого эскалировать.
Регламент описывал и то, что происходит после инцидента. Что исправляем сразу на скорую руку, а что требует системного исправления. Что нельзя откладывать, а что ждёт рабочего времени или ближайшей итерации. Для типовых случаев были ранбуки.
Самое важное в этой работе — когда принимается решение. Решение будить или нет было принято заранее, в спокойной обстановке, и записано в регламент. Ночью дежурный мог сослаться на него. Чувство вины, когда выдёргиваешь кого-то ночью или в выходной, заметно снизилось. Дежурным стало сильно легче.
Что не сработало сразу
Регламент был живой, и мы постоянно его правили. Дорабатывали критерии эскалации, время перехода между её этапами, саму классификацию. По первости меня будили часто, и часто без необходимости. Пришлось пересматривать правила эскалации.
Самыми трудными оказались пограничные случаи. Инцидент, который не ложится ни в один уровень или ложится сразу в два, классифицировать сложно. В такие моменты решение снова было на усмотрение дежурного, и ответственность возвращалась к нему. После разбора мы вносили изменения в регламент, но описать все случаи заранее невозможно. Даже на совместных разборах команда не всегда сходилась в том, какого уровня был инцидент.
Поэтому регламент не снимает решение с дежурного полностью. Он сужает зону, где дежурный решает в одиночку: типовое закрыто правилом, а пограничного с каждым разбором становится меньше.
Что изменилось
Время восстановления по значимым инцидентам сократилось вдвое. Значимыми мы считали инциденты с первого по третий уровень, то есть те, которые нужно устранять сразу. Сравнивали по кварталам.
Новички стали быстрее входить в дежурства: им не нужно было на собственном опыте учиться понимать, когда звонить. Качество реакции перестало зависеть от того, кто сегодня дежурит.
Классификация работала ещё и как договор между клиентскими отделами и техническими командами. Все знали заранее, при каком уровне чиним немедленно, а что ждёт рабочего времени.
Пример из медицины
Похожий механизм описан в медицине. В 2009 году группа Алекса Хейнса опубликовала в New England Journal of Medicine результаты внедрения хирургического чек-листа ВОЗ из 19 пунктов в операционных восьми больниц в восьми странах (https://www.nejm.org/doi/full/10.1056/NEJMsa0810119). В исследовании участвовали 7688 пациентов. После внедрения чек-листа частота осложнений в больнице снизилась с 11 до 7%, смертность — с 1,5 до 0,8%. Чек-лист не учил хирургов оперировать. Перед ключевыми этапами операции команда сверяла по нему важные пункты: тот ли пациент и то ли место операции, готово ли оборудование, какой может быть кровопотеря. Всё это в напряжённый момент легко упустить.
Это другая отрасль, к тому же исследование сравнивало «до» и «после», поэтому переносить его цифры на дежурства нельзя. Но механизм тот же: решение, которое приняли заранее и спокойно, человек в стрессе исполняет лучше, чем принимает сам.
Что проверить у себя
Если ваши дежурные избегают эскалирования, стоит честно ответить на пять вопросов.
Есть ли у инцидентов уровни, и может ли дежурный по двум-трём признакам понять, какой уровень перед ним.
Записано ли для каждого уровня, в какой срок устранять, что делать и кого звать.
Кто решает, кого будить: дежурный в моменте или правило, которое написали заранее.
Что происходит с пограничными случаями после инцидента: их разбирают и дописывают правила или забывают.
Описано ли, что делать после инцидента: что чинится сразу, а что ждёт итерации.
Если на третий вопрос ответ «дежурный», начинать стоит с него: заранее договориться, при каком уровне кого будить, и записать это.

