За последние восемнадцать месяцев в инженерных командах что-то изменилось, и я всё это время пытался подобрать для этого правильные слова.
Senior инженеры стали тише, чем раньше.
Не в каждой компании. Не в каждой команде. Но это происходило достаточно часто, в достаточно большом количестве разговоров с разными людьми, чтобы перестать казаться совпадением и начать выглядеть как закономерность, которой стоит дать название.
Речь не о том, что у этих инженеров закончились мнения. Мнений у них по-прежнему хватает. Изменилось другое — куда эти мнения теперь направляются. Стало меньше замечаний на дизайн-ревью. Меньше возражений в архитектурных обсуждениях. Меньше тех моментов, когда человек с десятью годами производственного опыта говорит: подождите, я уже видел нечто подобное, и вот чем всё закончилось.
Встречи по-прежнему проходят. Решения по-прежнему принимаются. Но один конкретный вид трения стал почти незаметным. А это трение выполняло важную функцию.
Что senior инженеры на самом деле делают
Видимая часть работы senior инженера — это технические задачи. Архитектурные решения, сложная отладка, код, на который другие инженеры смотрят, когда хотят понять, как что-то должно быть реализовано.
Менее заметная часть — это сопротивление.
Хорошие старшие инженеры — это люди, которые умеют замедлить команду именно в нужный момент. Они спрашивают, что произойдёт, если ключевое предположение окажется неверным. Они видели достаточно систем, ломавшихся достаточно разными способами, чтобы узнавать знакомую форму проблемы в новом предложении. Они говорят: мы уже пробовали нечто похожее три года назад, и вот чему это нас научило. Говорят это, даже если в комнате совсем никто не хочет этого слышать.
Это сопротивление — не саботаж. Это институциональная память, приведённая в действие. Именно она отличает команду, которая совершает новые ошибки, от команды, которая снова и снова повторяет старые.
Когда такое сопротивление исчезает, решения принимаются быстрее. Метрики скорости выглядят лучше. Но ошибки, которые раньше были бы отлавливались заранее, начинают просачиваться дальше.
Почему они перестали возражать
Честный ответ здесь немного неприятен.
Последние два года создали для senior инженеров особое давление, которого раньше в такой форме не было. Инструменты с искусственным интеллектом позволили менее опытным инженерам выдавать результат, внешне похожий на работу старшего специалиста. Скорость разработки заметно выросла. Количество решений, принимаемых в любой момент времени, тоже увеличилось.
В такой среде инженер, который тормозит процесс ради сложных вопросов, начинает выглядеть как проблема. Не потому, что кто-то говорит это напрямую. Просто система стимулов и без слов даёт это понять.
Когда скорость становится предметом восхищения, а трение — предметом внимания, люди, создающие больше всего этого трения, начинают проводить тихий внутренний расчёт. Стоит ли оно того? Изменит ли этот разговор хоть что-нибудь? Стоит ли цена возражения именно на этой встрече и именно по этому решению тех сил, которые на него придётся потратить?
А старшие инженеры зачастую лучше всех в комнате понимают внутреннюю политику команды. И они начинают делать другой выбор. Тщательнее выбирать битвы. Отпускать мелкие решения. Сохранять энергию только для того, что кажется действительно критичным.
Проблема в том, что каждое отдельное решение промолчать выглядит вполне разумным. Но вместе они складываются в ситуацию, где команда теряет значительную часть способности самостоятельно исправлять собственные ошибки.
Что происходит с системами
Хочу говорить здесь конкретно, потому что абстрактную версию проблемы слишком легко отмахнуть.
Когда старшие инженеры перестают регулярно возражать, определённые категории ошибок становятся вероятнее. Не очевидные ошибки. Очевидные всё равно обычно ловят. Проблема — в тонких. Архитектурных решениях, которые сегодня выглядят вполне нормально, но через восемнадцать месяцев становятся чрезвычайно дорогими для изменения. Техническом долге, который незаметно накапливается там, куда никто внимательно не смотрит. Предположениях, встроенных в дизайн системы, которые никто не произносит вслух и поэтому никто не проверяет на истинность.
Это не те ошибки, которые проявятся в следующем спринте. Они появляются позже, когда системе нужно измениться так, как никто не предполагал в момент её создания. Когда приходит новое требование и команда обнаруживает, что решение, принятое четырнадцать месяцев назад, теперь стало стеной. Когда происходит инцидент и на разборе выясняется риск, который более опытный инженер мог бы заметить ещё до выхода системы в продакшен.
Активно вовлечённые старшие инженеры ловят значительную часть подобных вещей заранее. Не потому, что они умнее всех остальных. А потому, что они видели достаточно конкретных провалов, чтобы распознать категорию проблемы ещё до того, как она полностью материализовалась.
Когда они молчат, ошибки всё равно случаются. Просто позже. И стоят дороже.
Почему эту проблему так трудно заметить
Команды, потерявшие такую способность к самокоррекции, обычно вовсе не чувствуют, что что-то потеряли.
Скорость выросла. Результат легко измерить, и он выглядит хорошо. Задачи из очереди закрываются быстрее, чем когда-либо. Инструменты искусственного интеллекта действительно помогают. Есть настоящее ощущение движения вперёд, и оно не является полностью ложным.
Просто выгода и цена проявляются в разных временных масштабах. Выгода видна уже в следующем спринте. Цена проявится при следующем крупном изменении, следующем серьёзном инциденте или в следующий раз, когда команде потребуется сделать что-то, на что система изначально не была рассчитана.
К этому моменту связь между текущей проблемой и тем, что месяцы назад senior инженеры перестали высказывать свои сомнения, уже совершенно неочевидна. Команда смотрит на проблему перед собой и начинает её решать. Никто не вспоминает о дизайн-ревью, где кто-то почти поднял руку, чтобы высказать опасение, а потом решил промолчать.
Именно это делает закономерность по-настоящему опасной. Цикл обратной связи между причиной и следствием настолько длинный, что настоящая причина почти никогда не распознаётся.
Что, как мне кажется, нужно сказать прямо
Старшие инженеры, которые стали тише, не ленивы и не потеряли интерес к работе. Большинство из них просто рационально реагируют на среду, в которой находятся.
Но сама среда неверно настроила систему вознаграждений. Скорость и объём результата видимы и измеримы. Отсутствие проблем, которые были предотвращены, по определению невидимо. Поэтому люди, занимающиеся предотвращением проблем, оказываются недооценены, а те, кто производит большой объём результата, получают признание. И постепенно баланс смещается в сторону, которая выглядит продуктивной, но на самом деле делает систему более хрупкой.
Команды, которые хорошо справятся с ближайшими двумя годами, — это не обязательно те, кто быстрее всех двигался последние восемнадцать месяцев. Это те, кто сумел сохранить старших инженеров вовлечёнными, спорящими и готовыми замедлить процесс в правильный момент.
Тихие инженеры по-прежнему знают то, что знают. Вопрос лишь в том, создали ли окружающие их команды условия, в которых произнести это вслух стоит затраченных усилий.
Большинство таких команд — нет, не создали. И рано или поздно системы, которые они строят прямо сейчас, это покажут.
Замечали ли вы, что старшие инженеры в вашей команде стали тише? И если да, понимаете ли вы, о чём именно они перестали говорить и почему?

