Добавить в корзинуПозвонить
Найти в Дзене
Досказдесь.ру

Я уволил джуна, нанял AI-агента, через месяц нанял джуна обратно

Про оптимизацию, которая выстрелила — но не так, как я думал!
Июнь 2025-го. У нас небольшая команда — 4 бэкендера, 2 фронта, я как тимлид. Джун Антон работал восемь месяцев: пилил CRUD, фиксил мелкие баги, писал тесты. 65к в месяц. Не звезда, но надёжный. Умел читать ревью, не обижался, рос. Потом вышел Claude Code. Я поигрался день — и у меня поехала крыша.За три часа агент написал модуль парсинга, на который Антон потратил бы три дня. Причём с тестами, с документацией, с нормальными именами переменных — лучше, чем Антон писал бы сейчас. Я открыл Cursor, включил агентный режим, и он за ночь отрефакторил 2000 строк легаси, которые мы откладывали полгода. Мозг сделал простую, но слишком самоуверенную математику: 65к в месяц джуну против двух подписок примерно по $20. В голове это превращалось в «ну почти бесплатная замена». Я позвонил Антону и сказал, что мы «оптимизируем команду». Он сказал «окей», и это было хуже, чем если бы он поругался Первые две недели: эйфория
Первые две недели б

Про оптимизацию, которая выстрелила — но не так, как я думал!
Июнь 2025-го. У нас небольшая команда — 4 бэкендера, 2 фронта, я как тимлид. Джун Антон работал восемь месяцев: пилил CRUD, фиксил мелкие баги, писал тесты. 65к в месяц. Не звезда, но надёжный. Умел читать ревью, не обижался, рос.

Потом вышел Claude Code. Я поигрался день — и у меня поехала крыша.За три часа агент написал модуль парсинга, на который Антон потратил бы три дня. Причём с тестами, с документацией, с нормальными именами переменных — лучше, чем Антон писал бы сейчас. Я открыл Cursor, включил агентный режим, и он за ночь отрефакторил 2000 строк легаси, которые мы откладывали полгода.

Мозг сделал простую, но слишком самоуверенную математику: 65к в месяц джуну против двух подписок примерно по $20. В голове это превращалось в «ну почти бесплатная замена».

Я позвонил Антону и сказал, что мы «оптимизируем команду». Он сказал «окей», и это было хуже, чем если бы он поругался

Первые две недели: эйфория
Первые две недели были реально кайфом! Надеюсь, Антон не читает это)

Claude Code стал моим основным инструментом для задач с нуля. Схема была такая: я пишу подробный промпт с контекстом (`/init` на репозиторий, описание задачи, ограничения), агент выдаёт первую версию, я делаю ревью, уточняю — и через 2-3 итерации получаю готовый PR.

Конкретные числа за первые две недели:

- 14 задач закрыто (обычно за такой срок джун закрывал 5-7)

-~3 часа в день на взаимодействие с агентами вместо ~1.5 часа на ревью джуна

- Покрытие тестами выросло с 61% до 74% — агент пишет тесты сам, без напоминаний

Cursor работал для другого сценария: когда задача внутри существующего кода. Включаешь агентный режим, даёшь контекст через `@codebase`, и он видит весь граф зависимостей. Особенно хорошо зашло на рефакторинге — поднял старый Django-модуль с 2019 года, Cursor понял структуру, предложил миграцию без потери апи-совместимости.

Я даже написал внутренний гайд команде. Назвал его Как мы убиваем рутину))

Руководство увидело цифры — и разумно попросило план: что делаем с высвободившимся временем, я составил. Это потом сыграет важную роль.

Третья неделя: первые звоночки
Первый факап был тихим. Агент написал функцию для расчёта скидок — всё по ТЗ, тесты зелёные, ревью прошло. В продакшн ушло в пятницу вечером.

В субботу утром мне написал аналитик: «Лех, у нас скидки применяются дважды для пользователей с промокодом».

Я полез смотреть. Агент реализовал логику буквально по ТЗ — там было написано «применить скидку к итоговой сумме», и он применил. Но у нас есть промокоды, которые тоже считаются скидкой. Это нигде не было написано — это было подразумеваемое знание, которое любой живой человек, проработавший месяц в продукте, понял бы из контекста.

Антон бы точно спросил. А агент? Агент не спросил.

Что ж, я откатил, починил все примерно за час-полтора. Потерял примерно 40к рублей на неправильно выставленных счетах. Неприятно! Но хоть хорошо, что заметили быстро.

Второй звоночек случился через три дня. Cursor при рефакторинге модуля уведомлений тихонечко изменил поведение retry-логики. Из 3 попыток сделал 5 + изменил интервалы. Формально тоже не баг, он же типа улучшил. Но наш внешний сервис имеет rate-limit, о котором в коде не было ни строчки, потому что это было в Confluence, который агент не читал.

С тех пор я начал больше времени тратить на ревью. Ооочень подробное ревью.

Четвёртая неделя: когда математика сломалась
К концу месяца у меня было ощущение, что я работаю техническим редактором при очень быстром, но слегка безответственном авторе.

Агент генерирует код быстро — это правда. Но я тратил на контроль больше, чем экономил на генерации.

Конкретный пример: задача на интеграцию с новым платёжным провайдером. С Антоном это выглядело бы так: я объясняю задачу 20 минут, он уходит на 2 дня, приходит с вопросами, я отвечаю ещё около 20 минут, итого 3 дня и примерно час моего времени.

С Claude Code: я пишу промпт 40 минут (нужно очень точно описать контекст, иначе агент придумывает), сам перечитываю его по несколько раз, потом агент выдаёт реализацию за 15 минут, я ревьюю 1.5 часа (потому что доверять больше не могу, уже обжёгся), нахожу 3 проблемы, уточняю промпт, ещё итерация, ещё ревью. Итого: 4 часа моего времени на задачу, которая требовала 2. Как так вышло?..

Плюс всплыл организационный кошмар: у агента нет памяти о продукте. Каждый раз ты начинаешь с чистого листа. Антон знал, что у нас легаси-авторизация с кастомными токенами, что наш Celery настроен нестандартно, что есть три места в коде с TODO, которые нельзя трогать до миграции. Агенту это нужно объяснять каждый раз. Либо поддерживать огромный `CONTEXT.md` — что тоже работа, и она тоже НА МНЕ.

Ну я всё-таки завёл этот `CONTEXT.md`, а к концу месяца он уже был на 800 строк.

Самый красивый факап: агент vs. агент
Апофеоз случился на четвертой неделе, когда я решил ускориться и запустить несколько агентов параллельно.
Claude Code работает в терминале, можно открыть несколько сессий. Я дал двум агентам задачи в смежных модулях.

Они оба полезли в общий utils.py.

Первый агент добавил хелпер-функцию `format_price`. Второй агент, не зная об этом, написал свою `format_price` с немного другой сигнатурой. Оба сделали коммиты. А по итогу merge conflict был такой, что Антон, увидев такое, точно заплакал бы. Да я и сам был, мягко говоря, не в восторге.

Но это полбеды! Один агент, работая с модулем заказов, решил «улучшить» импорты и переименовал внутреннюю переменную. Другой агент в это время тестировал тот же модуль и написал тест под старое имя. Тесты упали. Оба агента начали «чинить» — и разошлись в разные стороны. АААААААААА!!!

Я потратил полтора часа на распутывание этого клубка... Проще было бы сразу откатить и написать код САМОМУ.

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

Что произошло дальше — и тут начинается неожиданная часть
Я ожидал, что после месяца без Антона у меня будет ощущение потери. Но нет, было другое.

Команда стала делать больше. Не только я — все. Бэкендеры подхватили агентный workflow, начали закрывать задачи быстрее. Мы впервые закрыли все пункты спринта вовремя. Потом — второй раз. Потом — третий.

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

И тут возник вопрос: кто это будет делать?

Я честно сказал: я не вытяну один с агентами. Особенно онбординг — там нужно человеческое понимание продукта, ивентов, поведения пользователя. Агент не может прийти на встречу с PM и сказать «а давайте сначала починим тот баг на шаге верификации».

Именно тогда мне позвонили из HR и спросили: «у тебя бюджет есть на джуна, берешь?»

Почему я позвонил Антону
Финальным триггером стал не технический факап, а разговор с продактом.

Маша, наш PM, пришла с задачей: «Нам нужно переработать онбординг, есть идеи как можно сделать проще?» Раньше Антон сидел на таких встречах, иногда говорил «о, кстати, у нас уже есть похожая штука в настройках, можно переиспользовать» — и это экономило недели работы.

Я попробовал спросить у Claude. Он дал мне список из 12 лучших практик онбординга из интернета. Полезно. Но Антон бы сказал: «Маш, у нас 60% дропа на шаге с верификацией почты, может сначала это починим?» — потому что он видел баг-репорты и сам проходил онбординг при найме.

Контекстное знание о конкретном продукте не заменяется промптом!

В итоге я написал Антону. Не потому что без него все плохо — с агентами мы справлялись. А потому что появился новый бюджет, новые задачи, и для них нужен человек, который будет с агентами работать — а не я вместо агентов. Я объяснил это честно.

Он нашел к тому времени другое место — через неделю вышел бы уже на новую работу, но все равно согласился вернуться к нам. Я чувствовал, что он немного обижен, но вздохнул с облегчением, когда он согласился. Поднял зарплату до 85к — и за моральный ущерб, и за то, что теперь он еще и промпт-инженер по совместительству)

Итого по цифрам за два месяца
В месяц без Антона команда закрывала 28 задач. В месяц с Антоном и AI, уже 41.

Факапов в продакшене было 3, потом стало 0.

На ревью у меня раньше уходило примерно по 2 часа в день. Сейчас, обычный рабочий объём.

Покрытие тестами выросло с 74% до 81%.

Потери от инцидентов были около 40 000 ₽, потом, 0.

Это довольно грубая прикидка, но порядок цифр правильный. Месяц без Антона я ушёл в минус. Месяц с Антоном + AI — команда выдала рекорд.

Что реально работает (и как мы теперь живём)
Сейчас у нас другая схема, и она нормально работает уже два месяца.

Антон + агенты — это не конкуренция, это стек.

Антон пишет промпты лучше меня — он знает кодовую базу и точнее ставит задачу агенту. Claude Code он использует для буста: написать шаблонный код, сгенерировать тесты, отрефакторить по паттерну. Скорость у него выросла примерно вдвое. То, что раньше занимало 3 дня, теперь занимает полдня.

Я использую Cursor для своих задач — архитектурные решения, код-ревью с AI-ассистом, исследовательские задачи, где надо быстро проверить гипотезу.

И это реально не уникальная история — судя по исследованиям Harvard Business School (2025) и Accenture, такой паттерн встречается часто: AI-инструменты не сокращают команды, а расширяют возможности — и компании начинают брать больше задач, под которые нанимают людей. Спрос на позиции, где AI помогает (а не заменяет), вырос после 2022 года на 20%. Но только там, где людей научили работать с инструментами, а не просто выдали подписку.

Правила, которые мы ввели после всех факапов:
1. Весь AI-генерированный код проходит ревью от живого человека — без исключений

2.`CONTEXT.md` пишет и поддерживает Антон — ему это не в тягость, ему полезно

3. Параллельные агентные сессии — только в разных модулях, с явным разделением зон ответственности

4. Бизнес-логика с неявными правилами — только через живого человека, агент не трогает

5. Любой AI-код, который трогает платёжные сценарии или rate-limit логику — отдельный ревью-чеклист.

Факапы были. Двойные скидки, агент-vs-агент хаос, потеря 40к — всё это реально. Но мы не отказались от агентов. Потому что без них было хуже по производительности. Мы просто добавили правила.

Выводы, которые я вынес
AI-агенты отлично справляются с задачами с чётким ТЗ и изолированным контекстом. Написать утилиту, сгенерировать CRUD, покрыть тестами существующую функцию — здесь они быстрее и дешевле.

AI-агенты плохо справляются с задачей быть частью команды. Задавать уточняющие вопросы, накапливать контекст о продукте, участвовать в планировании, замечать несоответствия между ТЗ и реальностью.

Самая дорогая иллюзия — что сэкономленное на зп не нужно будет компенсировать своим временем. Еще как нужно! Просто в другом месте)

Но есть и другая иллюзия, с которой я столкнулся в обратную сторону: что если производительность выросла — значит, людей нужно меньше. Вовсе нет. Если производительность выросла — значит, можно делать больше. А больше задач требует больше людей. Просто теперь каждый человек умножен на агента.

Тезисы для дискуссии
Правильная формула не «AI вместо джуна», а «джун × AI = мидл». Инструмент умножает, не заменяет.

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

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

Рост производительности ≠ сокращение людей. Иногда это расширение возможностей и рост команды. Особенно в продуктовых компаниях, где всегда есть бэклог на год вперёд.

Хочется услышать у кого как: у кого команда выросла после внедрения AI-инструментов? Или везде только сокращения и "оптимизация"?