TL;DR: ИИ не заменяет инженерный контроль, но меняет базовую планку разработки. С ним проще удерживать скоуп, тесты, техническое качество и в режиме дедлайна. Главный риск - потерять ownership, поэтому уровень автономности должен зависеть от проекта, стадии и зрелости инженерного процесса.
У меня есть один личный проект, где я полностью автоматизировал разработку и перестал читать код. Всё идёт практически без моего участия: я просто описываю в телеграмме своему боту что нужно сделать, что я хочу получить, а он выполняет, проверяет в цикле, коммитит, деплоит и сам проверяет логи. Единственное, заниматься своим проектом времени мало, потому движение всё равно медленное и хоть бот может сам брать тикеты из гитхаба и выполнять их, я всё же не разрешаю ему пушить код - хочу всё же в конце понимать что он сделал. Но проект я изначально писал сам, и только потом начал изучать как сделать работу автономной.
Всё работает настолько хорошо, что я даже задумался: а не запустить ли новый проект вообще без моего участия? Описать только PRD, проверить сгенерированную документацию и список задач, а на выходе просто принимать готовые фичи. Я даже пробовал запускать так несколько личных проектов (один из них - простенькая игра): формировал всю документацию через ИИ, но на определенных этапах допускал ошибки в планировании и в итоге терял контроль.
Многим это не понравится, но на определённых проектах это работает. ИИ действительно хорошо справляется даже со спрайтами: как заглушки на старте они вполне подходят, а потом их можно перерисовать. Конечно, подготовительная работа требует времени, но на этапе реализации это окупается.
Создание MVP стало реально быстрым. Но любой современный AI-девелопер знает: иногда ИИ заходит в тупик, и без вмешательства продвинуться не выйдет. Часто приходится вообще всё удалять и начинать фичу с нуля, или тратить неделю, чтобы понять, где именно ИИ ошибся в архитектуре проекта.
Что ощущается, когда возвращаешься к коду руками
В своей прошлой статье я сравнивал вайбкодинг с гемблингом и тем самым азартным чувством ожидания. А что я чувствую, когда мне нужно писать код руками? Я чувствую себя лудитом, который внезапно отказался от технологий, интернета и поисковиков. Это похоже на возвращение в начало карьеры: я сижу в банке без внешнего интернета, гуглю ошибки на телефоне и читаю Stack Overflow. Ведь с появлением ИИ потребность исправлять глупые ошибки вроде опечаток в конфигах полностью отпала. Если забыл название класса в какой-то библиотеке, ты больше не идешь в документацию или Google. Без ИИ снова приходится вчитываться в логи самому...
Так вот, выделим основные проблемы НЕ использования ИИ:
Первая проблема - сокращение скоупа задач
Без ИИ приходится резать функционал до минимально полезного для бизнеса. Если с ИИ можно сразу развернуть «взрослый» проект, используя best practices, то руками в жесткие дедлайны для MVP попадаешь, только урезая нефункциональные требования.
Вторая серьёзная проблема - деградация test coverage
Разработчики и без того неохотно пишут тесты, а в условиях дедлайнов на них первым делом не хватает времени. В итоге код становится «дырявым», если только в компании изначально не TDD.
Третья проблема - грязный код и технический долг (Technical Debt)
С ИИ я могу позволить себе быть перфекционистом: на старте выстроить архитектуру, задать строгий кодстайл, разные триггеры, прописать линтинг, arch unit тесты и покрытие обычными unit тестами, превратив это в стандарт, который моя «команда ИИ» будет соблюдать автоматически. Но когда приходится писать руками в жесткие сроки, на это точно нет времени - бизнесу не интересна техническая сторона и maintenance, для бизнеса важна «доставка ценности» любой ценой.
Для личного проекта это может и не критично, но для бизнеса это системная проблема. В команде с живыми людьми я считаю, что чистый код важен, я верю в теорию разбитых окон. В коде она проявляется так: разработчики начинают «класть болт» на читаемость, потому что никому нету дела до этого кода. А мне, как человеку, который большую часть времени читает код, хотелось бы мучить себя поменьше. Конечно, с ИИ есть риск нагенерировать «нейрослопа», что превращает ревью в отдельный вид боли, но без ИИ поддерживать высокую планку в спешке почти невозможно.
У меня есть показательный пример: проект, написанный с упором на Job Security и доставку фич любыми средствами. Каждый новый разработчик, приходя в этот проект, тратил недели две только на локальный сетап. Потом, в лучшем случае, ещё два дня уходило на ресерч бага, после чего единственным безопасным решением казался очередной if - ведь unit-тестов не было, а чтобы проверить результат, нужно было дождаться прогона nightly-тестов, которые шли по 5-7 часов. Был только один вариант: отправить фикс на QA и надеяться, что они выловят регрессию на тестовой среде.
Бизнесу это было не важно: менеджеры менялись, демонстрируя быстрый результат, но в итоге доставка фичи в прод стала занимать полгода, так как деплоя все боялись как огня. Когда я попал на проект, его переписывали уже лет 5, и впереди было еще 2 года работы - и это только благодаря тому, что менеджмент параллельно внедрял LeSS.
Четвёртая проблема - рутина
Мне приходится писать маппинги и подготавливать JSON-данные руками. Это первое, что я делегировал ИИ еще на ранних моделях вроде GPT-3.5, чтобы избавиться от скучной работы. В целом я наловчился делать это быстро в IDEA, но всё равно неприятно.
Но есть и плюсы
Первый плюс - при использовании ИИ велика вероятность потери ownership над решением, а без ИИ работа становится более методичной, в каком-то смысле приятной. Я не веду сразу 3-4 проекта, я просто пишу код. Мне сразу вспомнилось ощущение из школы, когда ты впервые пишешь простую задачу на Паскале. Наверное, так же себя чувствовали люди, переходившие с ассемблера или Си на языки высокого уровня: они говорили, что не контролируют процесс и что новые языки неэффективны. Я сталкивался с таким скепсисом еще в универе, когда старшие коллеги ворчали, что мы слишком полагаемся на эти модные языки высокого уровня, то ли дело они писали программы на всего 640 КБ памяти. Кажется, сейчас с ИИ происходит ровно то же самое.
Второй плюс - меньше «нейрослопа» в кодовой базе, особенно если у вас нет нормальной практики код-ревью. Самый рабочий вариант на данный момент, как уменьшить отчуждение разработчиков от кода при использовании ИИ, - это кросс-ревью, где автор устно рассказывает, что и зачем изменено, своими словами.
Третье - если честно, даже с ИИ все остальные варианты - это производные от первых двух.
Итог
Итог: не использовать ИИ сегодня просто неэффективно. Нужно лишь правильно выбирать режим работы в зависимости от типа проекта и его стадии.

Для личных проектов и MVP отлично подходит обычный вайбкодинг. Для большинства рабочих задач ИИ - это такой же инструмент, как IDEA: код пишешь и ревьювишь ты, но с постоянной помощью модели. Во многих случаях сильные модели справятся не хуже среднего разработчика, но в коммерческой разработке критически важны harness-тесты и выстроенный SDLC. Мне удалось достичь Agentic Engineering (как мне кажется), но это всё еще хрупкий подход. Когда я читаю посты о почти автономных агентных системах, я вижу в этом маркетинг и эксперименты, а не рабочее решение. Так что пока ИИ пузырь не лопнул, ИИ это отличный инструмент за такую цену подписки.

















