PunchTigers, Maliya Boys share points in stalemateCNN TürkMossad'dan CIA'ye kritik İran istihbaratı! Trump'a İHA saldırısı iddiasıInquirerUpgraded Tacloban airport eyes soft opening by March next yearThe Jerusalem PostUS Democrat who defeated embattled Republican Max Miller faces harassment probe - report한겨레스페이스엑스, 스타십 상단부 사상 첫 ‘젓가락 회수’ 성공ZDF heuteAktuelle Pressemitteilungen des ZDFThe Hollywood ReporterRichard Sterban, Oak Ridge Boys’ Bass Singer, Dies at 83الشرقبيانات: أقراص ويجوفي تساعد على فقدان 6% من الوزن خلال 3 أشهرInfobaePapa León XIV en Perú: homilía completa durante la coronación de la Virgen Inmaculada en ChiclayoOnetDwa tankowce wpadły na miny w cieśninie OrmuzDaily MailNow that George is settled at Eton, Kate is joining William in India on first foreign tour for four years조선일보李, 檢 비판한 친명 의원 격려하며 “사법살인·정치탄압 건너는 동안 제 곁에서 고생”
The Daily Newsstand · Free, Always
Sunday, November 15, 2026

Почему с ИИ мы всё ещё пишем плохой софт

Translate

На стриме я услышал вопрос: «Насколько важно качество кода в эпоху ИИ?» Дальше ещё спросили, не потеряла ли вся эта борьба за качество смысл.

Спикер с этим категорически не согласился. Он рассказывал, как агент присылает зелёные пул‑реквесты, проходит все проверки, а в коде всё равно остаётся фигня. Например, разнобой в именах классов. И надо придумывать, чем ещё ограничить болванчика, чтобы он сам замечал такие проблемы и понимал, что пора делать рефакторинг.

Я это слушал и словил когнитивный диссонанс. У меня с агентами таких проблем нет. Я как раз прошу ИИ искать баги, разбирать сомнительные решения, улучшать тесты и делать рефакторинг. Получается достаточно хорошо. Почему у нас настолько разный опыт?

Похожие претензии я часто вижу на Хабре и других платформах. К вайбкодингу относятся довольно резко. Иногда достаточно написать, что пользовался агентом, чтобы дальше обсуждали твою профессиональную непригодность.

Плохой софт мы успешно писали и без ИИ. Временные решения годами оставались в проде, а код в некоторых проектах боялись лишний раз трогать. Ещё и повторяли: «Работает — не трогай». Я с таким подходом в корне не согласен. Теперь есть болванчик, который может помочь со всем этим разобраться. Почему же при таких возможностях мы продолжаем получать плохой софт?

Мне захотелось разобраться, что вообще происходит и кто виноват. Правда, как говорится в старом анекдоте, в расследовании главное не выйти на самого себя.

Болванчик ведь умеет искать ошибки

Болванчик может помочь с багом, который воспроизводится по большим праздникам. С ним можно разобрать, каких случаев не хватает в тестах, и дополнить старые проверки.

В Meta сделали TestGen‑LLM, который дополняет уже написанные тесты. Новые тесты собирали и запускали, затем проверяли, добавилось ли покрытие. Предложения, прошедшие автоматический отбор, смотрели инженеры. По данным авторов, они приняли в прод 73% таких рекомендаций.

При рефакторинге можно сначала обсудить, почему в одной функции собралось столько разной логики и как её разделить. А однотипные правки в куче файлов отдать правильно настроенному агенту.

В опросе Stack Overflow за 2026 год около 58% ответивших на вопрос о применении ИИ использовали его для тестов, а 64% — для отладки и рефакторинга. Для генерации кода в знакомой области получилось около 69%.

Заработало, можно брать следующую задачу

Вот добавляешь фичу с болванчиком. Он написал код, ты посмотрел, попробовал обычный сценарий. Работает.

Можно задержаться и посмотреть, что будет, если запрос отправят дважды. Или если соседний сервис не ответит. Агент поможет разобраться и с этим. Заодно посмотреть на сам код: понятно ли, что он делает, и насколько легко будет его менять.

Но есть соблазн закрыть задачу. Новую кнопку уже можно показать пользователю и сообщить, что всё готово. Пользу от рефакторинга заметим, когда снова полезем в этот код. Проверишь редкий сценарий, убедишься, что всё нормально, а на демо покажешь ту же самую кнопку.

Если после каждого такого результата сразу брать следующую фичу, от агента и будем получать в основном следующие фичи. Проверку и рефакторинг опять оставим на тот прекрасный день, когда разгребём остальное. А вот в прекрасном проект_name будущего багов не будет и код будет идеальным.

Бизнесу к пятнице нужна фича

Руководитель может искренне переживать за качество. Когда пользователи жалуются, поддержка не справляется, а разработчики исправляют последний релиз вместо следующего, качество сразу становится очень важным. Хотелось бы, чтобы это было заметно и при составлении планов, а то будет как в той фразе с забытыми оврагами.

С новой фичей понятно, что покажем заказчику в пятницу. С рефакторингом старого модуля разговор сложнее. Ты объясняешь, что потом следующие фичи будет легче добавлять. В ответ могут спросить, почему нельзя сначала доделать текущую. Старый модуль ведь пока работает.

На рефакторинг время нужно сейчас. А сколько он сэкономит на будущих задачах, ещё попробуй оцени, когда этих задач пока даже нет в плане. Новую фичу заказчик уже ждёт.

Заказчик платит за то, чтобы решить свою задачу. Если ему нужна новая возможность, ответ «у нас фичефриз, сначала разберёмся с техдолгом» его может не устроить. Он может уйти к конкуренту, у которого эта возможность уже есть, пока мы приводим код в порядок.

Авторы исследования о работе с техдолгом сравнили, как её оценивают менеджеры и разработчики. Менеджеры считали, что поддерживают эту работу чаще, чем это ощущали разработчики. Мелкие исправления поощряли, а крупные переделки часто откладывали: не хватало понятного объяснения пользы и подходящего способа всё переделать. Времени на это у разработчиков в итоге не было.

Это исследование вышло ещё до массового использования агентов. Теперь заняться старым модулем вместе с ИИ проще. Но если в плане к пятнице стоит новая фича, то и болванчика займут ею.

ИИ можно сравнить с суперкаром. Профи быстрее доедет до финиша, а новичок разложится на первом повороте. Причём до этого поворота он ещё и доберётся гораздо быстрее, чем рассчитывал.

Под новичком я тут понимаю и тех, кто принимает решения. Можно годами руководить разработкой и принять первую работающую версию от агента за готовый продукт.

Сделай как у нас принято

В старом проекте одно и то же решение скопировано в несколько мест. Приносишь агента: «Посмотри, как у нас сделано, и добавь ещё». Он может повторить и ошибку, которая была в образце. А потом показываем результат со словами «Вот что написал ваш ИИ».

В эксперименте о разбитых окнах и техдолге 29 разработчиков расширяли системы с разным количеством старых проблем. В более запущенном коде участники чаще добавляли новые: дублировали функциональность, выбирали непонятные имена.

В ноябрьском препринте 2026 года проверяли, повторяют ли агенты уязвимости, которые уже есть в проекте. Им показывали безопасные и уязвимые варианты существующего кода. Во втором случае похожие уязвимости чаще появлялись и в новых изменениях. Просьба следовать существующему стилю усиливала эффект.

С тем же агентом можно было бы разобрать старое решение и исправить ошибку во всех его копиях. Но такая задача у нас даже не стояла: мы просили ещё одну фичу, и мы её получили.

Миллион строк продать проще

Сравните два выдуманных заголовка:

Я с ИИ‑агентами переписал миллион строк с одного языка на другой за 10 дней.

И второй:

ИИ помог мне порефакторить кодовую базу.

Первый я бы открыл хотя бы из любопытства. Зачем переписывали, как успели, что сломали, на кого это потом оставили. Миллион строк уже в заголовке, а подробностей пока никаких.

Со вторым надо ещё разобраться. Может, переменные переименовали. А может, убрали такую проблему, из‑за которой каждую новую фичу приходилось делать неделю. Пока не расскажешь, что изменилось, не очень понятно, зачем читать.

И тут я, пока об этом думал, сам же вспомнил возражение. Про баги ведь тоже можно написать так:

ИИ нашёл уязвимость, которая скрывалась в коде сто десять лет.

Вот такое я бы тоже почитал. А если через эту уязвимость ещё и root на сервере получить можно, добавляем в начало заголовка «ШОК!». Про баги тоже можно рассказать громко, когда есть такая история.

Но такие баги не находятся каждый день, по крайней мере пока что. В обычной работе скорее разбираешься, почему страница падает при пустом списке, или чинишь фильтр, который не учитывал одно из условий. Пользователям эти исправления нужны, а заголовок «ИИ помог починить фильтр», мягко говоря, не цепляет.

При этом кто‑то может спокойно разбирать старые баги с болванчиком, приводить проект в порядок и ничего об этом не публиковать. Мы про него просто не узнаем. Потом посмотрим на громкие истории и решим, что все только генерируют очередные сервисы.

А если сам всё время читаешь про «переписал за выходные», тоже хочется попробовать. Видно, что можно показать и чем похвастаться. Про обычный рефакторинг ещё придумай, как рассказать. И чтобы дочитали дальше заголовка.

И где в этом расследовании я

В чужом PR можно быстро заметить проблему и объяснить, почему так делать нельзя. А если мне самому нужно будет выпустить то же изменение к пятнице? Насколько подробно я в него полезу и что сочту достаточной проверкой?

Бизнес в первую очередь платит нам за функциональность, которую ждёт заказчик. На проверку и рефакторинг времени часто не хватает. Мы и поручаем болванчику следующую фичу, а старые проблемы оставляем на потом.

Мне кажется, возможности ИИ для повышения качества мы используем слабее, чем его возможности для ускорения разработки. В расследовании мы всё‑таки вышли на самих себя, с чем я нас всех и поздравляю.

P. S. ШОК! В конце статьи обнаружена ссылка на мой канал с IT‑мемами. Для эксплуатации достаточно нажать «Подписаться». Спасибо, что дочитали.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.