
Чем лучше Claude Code, тем хуже разработчик
Статья была полезной?
Boeing ведёт статистику авиационных происшествий с 1950-х годов. Одна цифра остаётся неизменной на протяжении десятилетий: примерно 80% катастроф вызваны исключительно человеческим фактором. В то время как сами самолёты за эти годы стали гораздо надёжнее, а автопилоты значительно умнее. Интересно, что эти два факта взаимосвязаны.

У авиаторов существует термин: automation-induced complacency — ситуация, когда система настолько надёжна, что оператор перестаёт её контролировать. Мозг не способен поддерживать устойчивое внимание без обратной связи: если ничего не происходит длительное время, концентрация автоматически снижается. Этот процесс происходит физиологически, и здесь не имеет значения лень.
В авиационных отчётах это может быть проиллюстрировано следующим образом:
1 июня 2009 года над Атлантикой ночью вызвало обледенение трубок Пито на рейсе Air France 447. Приборы скорости предоставили неправильные данные, и автопилот отключился. Два пилота, которые находились в кабине, не имели нужной подготовки для управления самолётом в ручном режиме на больших высотах — что было очевидно по их действиям: они наклонили нос вверх вместо того, чтобы опустить его. Самолёт вошёл в сваливание. Экипаж не осознал, что находится в режиме сваливания и не предпринял никаких манёвров, чтобы из него выйти.
Это точная цитата из итогового отчёта BEA. Некорректные показания скорости длились не более одной минуты из четырёх минут снижения. Самолёт можно было спасти, но, увы, 228 человек погибли.
Система, которая практически никогда не даёт сбоев, формирует операторов, которые редко когда готовы к сбоям.
Для разработчиков ситуация представляется аналогичной. Codex, Cursor, Claude Code уже сейчас выступает в роли автопилота для большинства программистов (раз, два). Эти инструменты берут на себя рутинные задачи: генерируют функции, пишут тесты, разъясняют незнакомые фрагменты кода и подбирают SQL-запросы под задачи. Это позволяет освободить ум для более важных задач (теоретически).

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

В авиации у проблемы есть смягчающее обстоятельство: когда система отказывает, это часто становится очевидным — по приборам или по поведению самолета. У разработчиков же с AI-агентом таких очевидных указателей значительно меньше.
Да, синтаксическую ошибку компилятор отлавливает сам. Однако логическую ошибку в сгенерированном коде обнаружить сложно. Искусственный интеллект производит код с уверенностью вне зависимости от его корректности. Весь код, сгенерированный AI, выглядит корректно ровно до тех пор, пока не перестанет работать.
Проблема не в частых ошибках AI, а в том, что разработчик, который полностью передал написание кода автоматизации, со временем теряет способность распознавать даже редкие ошибки. Если модель ошибается в 1% случаев, а вы генерируете 200 фрагментов в день, то ошибки в коде становятся ежедневной реальностью.
У пилотов существует нормативное требование: минимальный налёт в ручном управлении. Я не знаю организаций с эквивалентным требованием для разработчиков.
Джуниор-разработчик, начиная с первого дня использовать технологии агентства, сразу не проходит путь от изучения синтаксиса к пониманию архитектуры. Он сразу получает рабочий результат, минуя этап осознания, почему всё именно так. Рабочий результат — это, безусловно, хорошо. Но отсутствие понимания структуры системы в целом — это проблема, которая проявится позже, когда агент сгенерирует неработающее решение и будет необходимо разобраться, в чём причина.

Эта статья ни в коем случае не является манифестом против AI. Я не предвзятый. Автопилоты в авиации спасают жизни, и никто не предлагает отказываться от них. Но пилоты регулярно летают вручную не потому, что автопилот ненадёжен, а потому что надёжность автопилота не заменяет надежность пилота.
Разработчикам также необходимо время от времени практиковаться без "автопилота". Это важно для отладки возникших проблем самостоятельно. Необходимо проводить code review перед тем, как просить агента объяснить чужой код. Периодически стоит писать небольшие задачи с нуля.
Интервал между такими упражнениями должен быть коротким. Исследования в области предвзятости к автоматизации (Parasuraman & Manzey, Human Factors, 2010) показывают, что деградация ручных навыков при высокой надежности автоматизации начинается быстрее, чем кажется интуитивно, и только усугубляется со временем.
Комментарии (0)
Войдите или зарегистрируйтесь, чтобы оставить комментарий
Загрузка комментариев…