Почему AI-кодовая задолженность отличается от обычного технического долга
AI-генерируемый код создаёт новую форму технического долга — менее заметную и более трудную для исправления, чем традиционный. Вот что с этим делать.
В аппаратном обеспечении, если вы отправляете бракованный продукт, последствия тяжёлые и часто необратимые. Я много лет работал в этой среде в ролях по верификации в Mellanox, а затем в Alibaba. Высокие ставки заставили отрасль выстроить строгую культуру проверки. Вы доказывали, что проект работает, ещё до того, как он покидал компанию.
В программном обеспечении дисциплины верификации выглядят как пайплайны CI/CD, статический анализ, canary deployments и observability. Но эти системы строились вокруг кода, написанного с человеческой скоростью и с человеческим пониманием внутри процесса. AI-генерация кода ломает это предположение. Сам процесс написания больше нельзя считать надёжным способом переноса институциональных знаний и суждений в codebase. Отрасль вынуждена двигаться к той же строгой культуре проверки, которую инженеры по hardware практикуют десятилетиями.
Корпорации генерируют код быстрее, чем когда-либо. Google недавно сообщил, что 75% нового кода компании теперь создаётся ИИ. Meta установила внутренние цели, по которым большинство инженеров должно к середине 2026 года генерировать основную часть коммитов с помощью AI-инструментов. Выигрыш в скорости существенный. Но растущий массив данных показывает, что отрасль накапливает новую форму technical debt, менее заметную, чем традиционная, и более трудную для разворота. При этом её можно предотвратить, и компании, которые успеют это сделать, получат заметное преимущество.
Поймите, чем этот долг отличается
Обычно это описывают как ситуацию, когда ИИ пишет плохой код. Это не совсем так. Более точная проблема — cognitive debt: потеря понимания того, как и почему software был построен именно так.
Когда код пишет человек, вместе с набором текста происходит ещё один процесс. Он проигрывает крайние случаи, размышляет о зависимостях и принимает решения с учётом организационного контекста, включая бизнес-требования к функции, best practices команды и логику прошлых архитектурных решений. Именно этот когнитивный цикл и создаёт institutional knowledge. Когда код пишет ИИ, на выходе может получиться синтаксически корректный код, который проходит CI, нормально выкатывается в production, но при этом никто не держит в голове его mental model. Код работает, пока что-то не изменится или не сломается, а потом команда начинает разбирать чёрный ящик.
Это отличается от традиционного technical debt, который обычно выглядит как неаккуратный код. Cognitive debt — это невидимый код, который работает, но которым никто по-настоящему не владеет. И он накапливается быстрее, потому что та же скорость, которая делает AI-генерацию привлекательной, мешает остановиться и выстроить понимание, необходимое для maintainability.
Анализ GitClear по 211 миллионам изменённых строк кода в крупных репозиториях показал, что в 2024 году дублирующиеся блоки кода длиной от пяти строк выросли в восемь раз, а доля refactoring упала с 25% до менее чем 10% всех изменений кода. Refactoring — это медленная, неброская работа, которая поддерживает codebase в здоровом состоянии, и разработчики делают её гораздо меньше. Отчёт Google DORA 2024 года показал, что рост AI adoption на 25% коррелирует со снижением delivery stability на 7,2%. Аналитики DORA отмечают, что корень проблемы не в дефектном коде как таковом; ИИ увеличивает batch size, а крупные changesets всегда было рискованнее выпускать.
Эти выводы — не обвинение в адрес AI-assisted development. Это диагностика, которая указывает на конкретный набор исправлений.
Сначала закройте разрыв в контексте
В опросе 609 разработчиков, который мы провели в прошлом году, 65% сказали, что ИИ теряет релевантный контекст во время критически важных задач, таких как refactoring, написание тестов или code review. Контекст — главный фактор качества AI-кода, и именно в него большинство корпоративных компаний инвестирует недостаточно.
Когда AI-инструмент генерирует код без доступа к архитектурным решениям вашей компании, истории pull request, security policies или существующим паттернам модулей, вы получаете решения, которые локально корректны, но глобально несогласованы. Закрытие этого разрыва требует context engineering: нужно обеспечить, чтобы используемые вами tools и agents в нужный момент получали доступ к правильным организационным знаниям и могли определить, что действительно релевантно для конкретной задачи. Retrieval system, которая подаёт слишком много лишнего контекста, может ухудшить результат не хуже той, что подаёт слишком мало. Конкретный tool важен меньше, чем дисциплина. Context infrastructure нужно постоянно поддерживать, а не один раз проиндексировать и забыть.
Постройте эту инфраструктуру до того, как начнёте масштабировать AI-генерацию. Дорабатывать потом намного сложнее. Относитесь к этому так же, как к CI pipeline, — как к обязательному условию безопасного production deployment.
Представьте, что команда хорошо выстроила такую context infrastructure. Их code review tool знает о deprecated internal API, потому что решение о её выводе из эксплуатации живёт в месяцах обсуждений прошлых pull request, которые были проиндексированы и выведены в нужный момент. Когда сгенерированный код ссылается на старый API, review это отмечает. Без этого слоя контекста та же ошибка проходит каждый раз. Именно такие куски institutional knowledge исчезают, когда люди перестают писать каждую строку вручную, и их нужно сознательно сохранять.
Постройте слой верификации, сопоставимый со скоростью генерации
Почти все инвестиции в AI-assisted development идут в генерацию. Очень мало средств направляется на verification. Именно на этом дисбалансе и накапливается technical debt.
Я мыслю об этом как о blue team и red team. Blue team отвечает за code generation, autocomplete и agentic coding. Именно она получает заголовки, бюджеты и релизы продуктов. Red team отвечает за integrity checks, behavior coverage и соответствие организационным стандартам. Во многих компаниях это второстепенная задача. CI pipeline ловит очевидные сбои. Code review может проводиться, но reviewers перегружены объёмом AI-сгенерированного вывода и не могут по-настоящему оценить всё. В результате появляется код с видимостью review, но без реального понимания.
Полезно помнить и о сбое CrowdStrike в 2024 году. ИИ не создавал проблемный код, но инцидент показал, что происходит, когда одна software-ошибка распространяется через production-системы без достаточной проверки. Когда код генерируется быстрее, чем люди успевают его понять, этот риск многократно возрастает.
Настоящий verification layer означает automated analysis, которая проверяет, соответствует ли сгенерированный код best practices компании, архитектурным стандартам и требованиям compliance. Это означает test coverage, отражающее ожидаемое поведение, а не только happy path, для которого ИИ решил сгенерировать тесты. И это означает traceability: связь между требованием и реализацией, чтобы через шесть месяцев кто-то мог понять, что делает код и зачем он существует.
Цифры подтверждают такие инвестиции. В том же опросе разработчиков команды, которые встроили ИИ в рабочий процесс code review, сообщили об улучшении качества в 81% случаев против 55% у сопоставимых команд без этого.
Сделайте владение кодом обязательным
Каждый фрагмент AI-generated code в production должен иметь ответственного человека, который понимает его достаточно хорошо, чтобы поддерживать. Это сложнее, чем кажется, и именно здесь большинство организаций не справляется.
Та же скорость, которая делает AI-генерацию привлекательной, подталкивает пропустить медленную работу по реальному пониманию. Разработчик смотрит на pull request в 500 строк, который ИИ сгенерировал за три минуты, и встаёт перед выбором: потратить два часа на настоящее понимание или одобрить его, потому что он выглядит правильно, проходит тесты и «LGTM» (looks good to me).
Настоящее владение означает замедлить скорость генерации настолько, чтобы оставалось место для осмысленного review, и честно сказать команде, что это правильный компромисс. Если этого не делать, вы уже начинаете строить свою следующую legacy system.
Что сделать в этом квартале
Хорошая новость в том, что для этого не нужна многолетняя трансформация. Структурные проблемы реальны, но у них есть конкретные решения, и engineering leaders могут заметно продвинуться сразу по трём направлениям, не дожидаясь следующего бюджетного цикла.
- Проверьте context infrastructure. Если ваши AI-инструменты генерируют код без доступа к архитектурным решениям, deprecated API и security policies вашей компании, исправьте это до дальнейшего наращивания скорости генерации. Качество контекста определяет качество результата.
- Инвестируйте в red team. Создайте автоматизированный слой code quality и governance, который оценивает сгенерированный код по вашим собственным организационным стандартам, а не только по функциональной корректности. Это отдельная инвестиция от генератора кода, и так к ней и нужно относиться.
- Явно закрепите ownership. У каждой AI-generated features в production должен быть человек-владелец, который действительно её понимает. Сделайте это формальным требованием.
Компании, которые сделают это правильно, увидят, что AI-генерация становится намного надёжнее, когда под ней есть слой verification. Те, кто этого не сделает, будут и дальше выпускать код быстрее, понимая свои системы всё хуже, пока накопившийся долг не заставит расплачиваться. Это решаемая проблема. Вопрос только в том, решите ли вы её сейчас или позже.
Материал — перевод статьи с английского.
Оригинал: Why AI coding debt is different