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

Содержание статьи9×
Три часа ночи. Телефон. Клиент. Платежи не проходят. Сорок минут уже. Открываю ноутбук. Логи чистые. Тесты зелёные — я сам прогонял их вечером. Сорок семь тестов, покрытие 92%. Модуль биллинга писал агент, я проверял, всё сходилось.
А платежи не проходят.
Двадцать минут ушло на то, чтобы найти причину. Вебхук от платёжного провайдера пришёл дважды. Первый раз мы его обработали. Второй — попытались обработать снова, а идемпотентности в коде не было. Деньги у клиента списались, подписка не активировалась.
Ни один из сорока семи тестов этого не проверял. Потому что ни агент, ни я не подумали, что один и тот же вебхук может прийти дважды.
Вот с той ночи я и начал разбираться всерьёз: где AI-кодинг действительно помогает, а где создаёт ощущение, что работа сделана, хотя она не сделана.
Где помощник вывозит по-настоящему
Начну с хорошего. Врать не буду — ускоряет.
Исследование. Раньше, чтобы разобраться в незнакомой библиотеке, я читал документацию, потом issues на GitHub, потом писал пробные скрипты. Полдня. Сейчас агент вытаскивает нужное за десять минут. Иногда ошибается, иногда путает версии, но старт стал в разы быстрее.
Рутина. Миграции. Рефакторинг однотипных мест. Обвязка API. Конфиги. То, что раньше съедало день, сейчас занимает час. Чтоб я так жил, если преувеличиваю.
Документация. Вот здесь я перестал мучиться совсем. Раньше она писалась в конце, на остатках сил, и получалась соответствующей. Сейчас пишется по ходу. И, что важнее, пишется скучно и подробно — а не красиво и бесполезно.
Тесты. Не все, но покрытие на очевидные сценарии, это да. Крайние случаи, которые я бы забыл, агент часто вспоминает сам.
Список приличный. За эти четыре пункта я готов простить AI-кодингу многое.
Но дальше начинается то, о чём на демо не рассказывают.
Ловушка скорости
Прежде чем перейти к ограничениям, скажу про опасность, которую замечаю у всех, кто недавно сел на агентный кодинг.
Скорость опьяняет.
За один вечер ты собираешь то, на что раньше уходила неделя. За два дня — то, на что уходил месяц. И в какой-то момент возникает ощущение, что теперь можно всё. Что границ нет. Что старый мир с его архитектурой, тестами и ревью — это пережиток для тех, кто не умеет пользоваться инструментами.
Это опасное чувство. Оно приходит к каждому. И оно же потом дороже всего обходится.
Потому что скорость — это не то же самое, что качество. Быстро написать код и быстро построить продукт — две разные вещи. Первое AI умеет. Второе — нет.
Где заканчивается ускорение
Слушайте внимательно. Это главное.
AI не отвечает за решения. Он предлагает. Иногда блестяще, иногда мимо. Решение — ваше. И если оно окажется неверным, отвечать будете вы, а не он.
Пример из практики. Агент предложил архитектуру: монолит, фоновые задачи в том же процессе. Логично? Вполне. Быстро? Ещё бы. Мы выпустили бы MVP за неделю.
Я отказался.
Потому что знал: через три месяца появится второй клиент с изоляцией данных, потом третий, потом захочется фоновые задачи масштабировать отдельно. И монолит придётся разрезать — а это уже не рефакторинг, это переписывание с нуля. С переносом данных, с простоем, с объяснениями клиентам.
Мы потеряли неделю на старте. Сэкономили два месяца потом.
Это не история про «AI плохой, человек хороший». Это разница между оптимизацией сегодня и архитектурой на годы. Агент не видит горизонт. Он видит задачу, которую вы перед ним поставили. Поставили неверно — он не виноват. Виноват тот, кто поставил.
Тесты, которые всегда зелёные
Отдельный разговор про тесты. Здесь у AI-кодинга есть коварное свойство.
Он пишет тесты, которые проходят. Звучит как комплимент. На самом деле — диагноз.
Тест, который всегда зелёный, часто проверяет не то, что нужно. Он проверяет, что код делает то, что код делает. А не то, что он должен делать по замыслу.
История из той самой ночи. Сорок семь тестов. Покрытие 92%. Все зелёные. Красиво.
А потом клиент не смог оплатить подписку. Потому что тесты проверяли «правильный» путь, но ни один не проверял, что будет, если вебхук придёт дважды. Агент не знал, что так бывает. Я тоже не подумал — и вот здесь вина уже моя, не его.
С тех пор правило простое. AI пишет тесты — я пишу сценарии для тестов. Каждый тест на крайний случай — это не про покрытие. Это про вопрос: что произойдёт, когда всё пойдёт не так? Агент этот вопрос за вас не задаст. У него нет опыта, из которого такой вопрос берётся.
Опыт — это единственное, что не делегируется.
Production: где делегирование заканчивается
Здесь спорить не о чем.
Production — территория, где AI-кодинг замолкает. Не потому что не умеет. А потому что за последствия отвечает человек.
Когда в три часа ночи падает сервис, звонят вам, а не модели. Когда клиент теряет данные, судятся с вами, а не с агентом. Когда счёт за инфраструктуру внезапно вырос в десять раз, объясняться будете вы, а не промпт.
Тут важно понять одну вещь. AI не отменяет ответственность. Он её концентрирует.
Раньше можно было спрятаться за командой. Разработчик недоглядел, архитектор решил неверно, тестировщик пропустил. Теперь, когда один человек с агентами делает то, что раньше делала команда, спрятаться некуда.
Местами получается так: ты становишься и архитектором, и разработчиком, и тестировщиком, и дежурным в одну ночь. Это не плохо. Это просто новая реальность. И вместе с ней приходит вся полнота ответственности.
Кто же всё-таки отвечает
Вернёмся к вопросу, который мне задали год назад: зачем я нужен, если AI пишет код быстрее?
Ответ простой. AI пишет код. Инженер отвечает за то, чтобы этот код решал правильную задачу, был проверен на то, что может сломаться, и работал тогда, когда всё идёт не по плану.
Это не громкие слова про ценность человека. Это разделение труда. Агент — исполнитель. Инженер — тот, кто ставит задачу, выбирает из вариантов, проверяет, отвечает и, если надо, переделывает.
Разница видна не на демо. Она видна через полгода — когда система живёт, растёт и не разваливается.
Развязка
AI-кодинг никуда не денется. Он будет становиться лучше, быстрее, умнее. И это отлично.
Но чем мощнее инструмент, тем дороже ошибка того, кто им управляет.
Раньше инженер стоил дорого, потому что умел писать код. Теперь — потому что умеет отвечать за результат. Разница тонкая, но именно она отличает человека, который «пользуется AI», от того, кто строит продукты.
Если вы ищете того, кто нажимает кнопку и получает код, — AI справится и без вас. Если вы ищете того, кто отвечает за архитектуру, тесты и production, — с превеликим удовольствием, это моя работа.
Глоссарий терминов
- AI-кодинг — практика разработки с активным использованием AI-инструментов генерации кода.
- Вайб-кодинг (vibe coding) — подход, при котором человек задаёт направление, а модель пишет значительную часть кода.
- AI-агент — система на основе модели, способная выполнять задачи автономно: писать код, вызывать инструменты, принимать решения в заданных рамках.
- Инженер — специалист, отвечающий за архитектуру, качество, тесты и эксплуатацию системы, независимо от того, кто написал код.
- Архитектура — структура системы: компоненты, их связи, распределение ответственности и границы.
- Production (прод) — рабочая среда, где система используется реальными пользователями.
- Тестирование — процесс проверки системы на соответствие требованиям и устойчивость к ошибкам.
- Покрытие тестами (test coverage) — доля кода, проверяемая автоматическими тестами. Не гарантирует качества само по себе.
- Юнит-тест — тест отдельного модуля или функции в изоляции.
- Интеграционный тест — тест взаимодействия нескольких компонентов системы.
- Регрессионный тест — тест, проверяющий, что новые изменения не сломали ранее работавшее поведение.
- Идемпотентность — свойство операции давать один и тот же результат при повторном выполнении.
- Вебхук — уведомление, которое внешняя система отправляет на ваш сервис при наступлении события.
- Крайний случай (edge case) — редкая, но возможная ситуация, которую легко пропустить при проектировании и тестировании.
- Код-ревью — проверка кода другим специалистом до попадания в основную ветку.
- Отладка (debugging) — процесс поиска и устранения причин ошибок в системе.
- Инцидент — событие, приведшее к сбою или деградации системы в production.
- Ответственность за production — обязанность инженера отвечать за работу системы у реальных пользователей.
- Автоматизация — замена ручных действий программными процессами: сборка, тесты, деплой, мониторинг.
- Технический долг — накопленные компромиссы, замедляющие развитие и требующие переделок.
- LLM (Large Language Model) — большая языковая модель, основа современных генеративных AI-систем.
С уважением,
Юрий Елисеев
Архитектор AI-систем · Full-Stack Product Engineer
Нужен проект любой сложности?
Обсудим идею, продукт, AI-систему или сложную техническую задачу и определим реалистичный первый шаг.
