Какова стоимость кода от ИИ за 12 месяцев?
Рассчитайте стоимость кода от ИИ с учетом доработок, проверки, ответственности и поддержки, чтобы защитить бюджет на 12 месяцев.

Содержание
Первая версия кода, созданного ИИ, стоит дешево. На двенадцатом месяце приходит настоящий счет. Команды, которые закладывают в бюджет только оплату моделей и минуты на составление запросов, путают выпуск кода с владением программным продуктом. Расходы скрываются в проверке, доработках, инцидентах, обновлении зависимостей, миграциях и времени, которое будущий инженер потратит на понимание нигде не записанного решения.
Я уже видел эту ошибку в проектах с подрядчиками, low-code и внутренними инструментами, которые делали в спешке. ИИ ускоряет выпуск, но не меняет экономику поддержки непрозрачной системы. Нормальный бюджет на 12 месяцев учитывает код агента как актив, который должен пройти приемку, получить владельца и выдержать изменения. Если код не проходит эти проверки, низкая цена его создания ничего не значит.
У сгенерированного кода четыре ценника
Стоимость кода от ИИ состоит из четырех частей: генерация, приемка, исправление и содержание. Большинство бюджетов учитывает первую часть, потому что поставщик присылает заметный счет. Остальные три забирают зарплатный фонд действующих команд и растворяются в общей строке инженерных расходов, пока выпуск продукта не замедлится.
Генерация включает подписки на модели или обращения к API, инфраструктуру агентов, вычисления в песочнице и время инженера на подготовку контекста и запросов. Для промышленного кода это обычно самая маленькая категория. Функция может потратить на токены 40 долларов, а затем потребовать несколько дней работы старшего инженера, если агент выбрал неверную границу компонента или продублировал внутреннюю возможность системы.
Приемка охватывает всю работу до слияния: чтение изменений, сверку с требованием, запуск тестов, проверку участков, связанных с безопасностью, анализ зависимостей и подтверждение поведения в эксплуатации. Проверка входит в создание продукта. Если называть ее накладными расходами, из бюджета исчезает человеческий труд, который превращает правдоподобное изменение в актив компании. Учитывайте это время в расходах на сгенерированное изменение, даже если один инженер и направлял агента, и проверял результат.
Исправление охватывает дефекты, найденные до и после выпуска. До выпуска сюда входят отклоненные попытки, повторные запросы, переписанные тесты и ручная замена кода, который формально работает, но не подходит системе. После выпуска сюда попадают разбор инцидента, откат, срочные исправления, поддержка клиентов и последующая работа по устранению условий, которые вызвали сбой.
Расходы на содержание начинаются после того, как изменение заработало. Кто-то должен обновить его при изменении API, исправлять зависимости, объяснять решение на проверке, переносить данные, наблюдать за работой в промышленной среде и в итоге удалить код. Код, которого не понимает ни один инженер, дороже содержать даже при отсутствии открытых ошибок. Он замедляет любые соседние изменения, потому что людям приходится заново выяснять его предположения.
Не распределяйте эти расходы по числу сгенерированных строк. Одна строка в миграции данных может нести больше риска, чем сто строк форматирования. Заведите запись об изменении с инженерными часами, классом риска, владельцем и последующими работами. Строки показывают объем, но не оценивают ответственность.
Постройте базу по коду, написанному людьми, прежде чем объявлять агента дорогим или дешевым. Возьмите сопоставимые изменения из тех же репозиториев и по одинаковым правилам запишите часы приемки, исправления и содержания. Старый код никогда не был бесплатным в поддержке, он просто был знакомым. Честное сравнение показывает, снижает ли агент полные часы на принятый результат, не перенося риск в следующий квартал.
В каждом отчете разделяйте сгенерированный и принятый результат. Агент может выдать пять отклоненных попыток, прежде чем одно изменение попадет в промышленную среду. Метрики генерации должны показывать эти потери, а прогноз поддержки должен учитывать только принятые изменения. Если смешать показатели, отклонение будет выглядеть как установленное обязательство, а команда не увидит, улучшают ли инженеры контекст для агентов.
Для доли доработок нужны период и причина
Обоснованная доля доработок показывает, какая часть принятого кода агента потребовала существенного исправления за установленный период. Без периода и причины команда либо радуется низкому показателю, из которого выпали промышленные дефекты, либо винит ИИ в обычном изменении требований.
Используйте три периода, потому что каждый ловит свой тип сбоя. Измеряйте отклонения до слияния, исправления в первые 30 дней после него и исправления с 31-го дня до конца двенадцатого месяца. Первый период показывает, получает ли агент пригодный контекст и отклоняют ли проверяющие слабую работу. Второй ловит поверхностную корректность: пропущенные крайние случаи, ошибочные предположения и код, который проходит узкий тест. Длинный период вскрывает проблемы с поддержкой, обновлениями и ответственностью.
До сбора данных определите, что считать существенным исправлением. Я учитываю изменение, когда инженер вынужден менять поведение, архитектуру, средства защиты, обработку данных или тесты, потому что принятый результат оказался неверным или неудобным для поддержки. Форматирование, комментарии и несвязанные изменения функции сюда не входят. Для смены требований нужен отдельный код причины. Иначе основатель, который поменял направление продукта, несправедливо ухудшит показатели агента.
В небольшом репозитории можно начать с метки в запросе на слияние и выгрузки CSV. В крупном стоит объединить данные запросов на слияние, инцидентов и задач. Такой запрос дает финансам и инженерной команде одинаковый месячный знаменатель:
SELECT
date_trunc('month', merged_at) AS cohort,
COUNT(*) AS accepted_agent_changes,
SUM(CASE WHEN material_rework_hours > 0 THEN 1 ELSE 0 END) AS reworked_changes,
SUM(material_rework_hours) AS rework_hours,
ROUND(100.0 * SUM(CASE WHEN material_rework_hours > 0 THEN 1 ELSE 0 END) / COUNT(*), 1) AS rework_rate_pct
FROM change_records
WHERE agent_assisted = TRUE
GROUP BY 1
ORDER BY 1;
Результат должен содержать по одной строке на когорту слияний: принятые изменения, доработанные изменения, часы и процент. Храните часы рядом с процентом. Десять мелких исправлений и одна неудачная миграция могут дать похожую долю при совершенно разных расходах.
Размечайте причины коротким закрытым набором: нехватка контекста, неверная реализация, слабый тест, несовпадение с архитектурой, проблема безопасности или конфиденциальности, выбор зависимости и изменение требования. Указывайте одну основную и при необходимости одну вторичную причину. Свободные пояснения тоже полезны, но их крайне неудобно агрегировать.
Рядом с причиной нужна тяжесть последствий. Запишите, осталось ли исправление в рамках обычной разработки, задержало ли выпуск, вызвало ли откат или инцидент. Затем посчитайте фактические часы инженеров, поддержки, специалистов по безопасности и эксплуатации. Одна метка тяжести не заменяет часы, но помогает руководству понять, почему для редкой категории нужен более крупный резерв.
Сверяйте пропущенную ошибку с исходными доказательствами приемки. Если тесты прошли, потому что сгенерированный тест повторил то же ошибочное предположение, что и реализация, отнесите исправление к слабому тесту, а не к двум несвязанным ошибкам. Тогда команда исправит критерии независимой приемки, а не станет писать более длинный запрос.
Не сравнивайте команду, которая активно пользуется ИИ, с командой без ИИ, если риск и размер их задач различаются. В одном месяце агентам достается рутина, а в следующем целые функции. Сравнивайте когорты по классу изменения, репозиторию и риску. Тенденция внутри стабильного класса говорит больше, чем красивый общий показатель по компании.
Ответственность начинается при слиянии, а не при генерации
За поведение каждого принятого изменения должен отвечать один человек, а за весь срок его жизни одна команда. Агент может предложить, проверить и переделать код, но он не возьмет телефон дежурного, не объяснит компромисс клиенту и не выберет, чем пожертвовать во время инцидента.
Работают три модели ответственности. В модели «автор-владелец» инженер, который направлял агента, после слияния отвечает за изменение. Эта простая схема подходит небольшим командам, но ломается, когда продуктивные инженеры разносят результат агента по областям, которые сами не обслуживают. В модели «владелец сервиса» за любой слитый код отвечает команда, которая эксплуатирует сервис, независимо от того, кто или что его создало. Такая схема лучше масштабируется, если границы репозиториев совпадают с эксплуатационной ответственностью.
Третья модель назначает куратора сгенерированной подсистемы на определенный срок. Она подходит для миграций, внутренних инструментов и созданных агентом сервисов, которые пересекают границы команд. Куратор ведет журнал решений, одобряет смену зависимостей, наблюдает за первым периодом работы в промышленной среде и организует передачу. Если в плане нет времени куратора, его имя на странице не создает ответственность.
Ответственности также нужны права на решения. Укажите, кто может одобрить выпуск, принять известное ограничение, остановить агента, откатить изменение и вывести подсистему из эксплуатации. Во время инцидента список ответственных без таких прав создает совещание вместо решения. Для высокорискового кода свяжите владельца с маршрутом дежурной команды и до выпуска запишите точку эскалации.
Не ограничивайтесь общей меткой коллективной ответственности. Фраза «этим владеет платформенная команда» мало что значит, если пять человек уверены, что изменения прочитал кто-то другой. Запишите имя инженера, который принял работу, и постоянную команду-владельца. Человек может уйти из компании, но команда останется маршрутом для эскалации.
В запросе на слияние должно остаться достаточно доказательств, чтобы следующий владелец восстановил замысел. Краткую запись можно поместить в описание или в версионируемый манифест изменения:
agent_assisted: true
accepting_engineer: sam.lee
owning_team: payments
risk_class: high
requirements:
- reject duplicate settlement events
- preserve ledger ordering
validation:
- integration:test_settlement_idempotency
- load:replay_10k_events
known_limits:
- manual recovery required after partial provider outage
review_after: 2026-11-15
В эту запись не нужно переносить стенограмму каждого запроса. Длинные стенограммы содержат шум и могут раскрыть секреты или данные клиентов. Сохраните требование, существенные ограничения, принятые тесты, известные пределы, идентификаторы инструмента и модели, если этого требует политика, а также решение человека. Именно эти сведения нужны тем, кто будет поддерживать систему.
Юридические права и обязанность поддерживать код требуют разных ответов
Компания может обязать сотрудника поддерживать код, даже если статус авторских прав на часть сгенерированного выражения остается неясным. Команды часто смешивают юридические права, договорные права, происхождение и эксплуатационную ответственность. Для каждого вопроса нужен отдельный контроль.
В США отчет Бюро авторского права «Авторское право и искусственный интеллект, часть 2» говорит, что сгенерированный результат получает охрану лишь тогда, когда человек определил достаточно выразительных элементов. Одни запросы автоматически не создают авторства. Основанием для защиты могут стать человеческий отбор, компоновка или правка в зависимости от конкретной работы. Этот принцип полезен, но он не решает каждую ситуацию с исходным кодом и не описывает право другой страны. Обсудите с юристом страны и договоры, которые относятся к вашему продукту.
Договорные права следуют из трудовых договоров, передачи прав подрядчиками, условий поставщика модели и договоров с клиентами. Проверьте эти документы до того, как агент войдет в обычный процесс разработки. Простое операционное правило звучит так: условия каждого участника, человека или компании, должны допускать запланированное компанией использование и распространение. Не считайте, что платная подписка на модель передает все нужные права.
Происхождение отвечает на вопрос, откуда взялось принятое выражение или зависимость. Документация GitHub Copilot объясняет, что функция ссылок на код может определить некоторые предложения, совпадающие с открытым кодом, и приложить сведения о репозитории и лицензии. Та же документация перечисляет ограничения: измененные предложения проверяются не всегда, частный код не входит в открытый индекс, а индекс может обновляться с задержкой. Фильтр совпадений дает доказательство, но не полную цепочку прав.
SPDX проводит полезное различие. Его спецификация умеет описать фрагмент, связать его с файлом и записать сведения о лицензии или атрибуции. Для каждого цикла, написанного агентом, запись SPDX не нужна. Но когда инструмент сообщает о совпадении, нужен повторяемый способ сохранить найденный источник, решение о применимой лицензии и итог проверки.
Эксплуатационная ответственность остается у команды-владельца независимо от анализа авторского права. Если сгенерированный обработчик платежа даст сбой, клиент не примет объяснение «его написал ИИ». Заложите юридическую проверку политики и необычных совпадений, а инженерную ответственность предусмотрите для каждого принятого изменения. Если смешать эти задачи, вы получите либо лишние юридические обращения, либо промышленный код без владельца.
Бюджет на 12 месяцев строится по когортам
Самый практичный бюджет отслеживает месячные когорты принятых изменений агента и относит трудозатраты к тем месяцам, когда работа, вероятно, вернется. Такой подход показывает задержку между быстрым слиянием и дорогой поддержкой. Он также позволяет финансовому директору менять предположения, не притворяясь, будто ему заранее известны точные дефекты агента.
Начните с пяти исходных показателей для каждого класса изменений: ожидаемое число принятых изменений, средние часы приемки, вероятность существенной доработки, средние часы на одно доработанное изменение и ежемесячные часы содержания после выпуска. Добавляйте ущерб от инцидента и проверку специалиста только там, где этого требует класс риска. Показывайте стоимость токенов и инструментов отдельно, но не позволяйте точной оценке API отвлекать от неопределенных трудозатрат.
Представим, что команда ожидает 20 изменений среднего риска от агента в месяц. Каждое требует 2 часов приемки. По вашей оценке, 25 процентам понадобится существенное исправление за 12 месяцев, в среднем по 6 часов. Каждое принятое изменение также создает 0,25 часа ежемесячной работы по содержанию после выпуска. При полной внутренней стоимости инженерного часа 120 долларов приемка первой когорты стоит 4800 долларов, ожидаемая доработка 3600 долларов, а содержание в течение 12 месяцев 7200 долларов. Прибавьте фактические расходы на модель, инфраструктуру, проверку безопасности и предполагаемые инциденты. Это пример исходных данных, а не общий ориентир.
Повторите расчет для каждой месячной когорты. Январское изменение содержится все 12 месяцев бюджета, декабрьское один месяц. Если команда выпускает 20 изменений ежемесячно, расходы времени на содержание в первый год растут ступенями, а не лежат на ровной линии. Бюджет второго года начинается с полной установленной базы, поэтому поддержка может дорожать даже при неизменном объеме генерации.
Вместо одного ложного прогноза используйте три сценария. Ожидаемый сценарий опирается на наблюдаемые медианы после созревания достаточного числа когорт. Управляемый сценарий предполагает, что лучший контекст, тесты и проверка сократят часы исправлений. В стрессовом сценарии для работ с высоким риском растут вероятность исправления и ущерб от инцидента. Финансы могут держать резерв по стрессовому сценарию, пока инженеры приближают показатели к управляемому.
Разделяйте денежные расходы и расходы мощности команды. Подписки на модели, внешние юристы и подрядчики по инцидентам требуют денег. Проверка и поддержка съедают часы, в которые команда могла бы выпускать продукт. Если бюджет учитывает только деньги, он покажет экономию, а план выпуска незаметно поглотит недостающую мощность.
Отдельной строкой учитывайте работу, которой удалось избежать. Если агент позволяет отказаться от поставщика, не привлекать подрядчика или выпустить тот же принятый объем за меньшее число часов, запишите экономию относительно названной базы. Не вычитайте из расходов абстрактный процент продуктивности. Экономии нужен проверяемый финансами альтернативный сценарий, например три прошлые миграции или оценка ручной работы, утвержденная до начала задачи.
Общие основы считайте инвестициями, а не бесплатными преимуществами. Инструкции репозитория, тестовые стенды, наборы проверок, песочницы и повторно используемые процессы агентов могут снижать расходы многих когорт. Распределяйте стоимость их создания и поддержки между изменениями, которые ими пользуются. Иначе первый эксперимент выглядит дорогим, а каждая последующая функция искусственно дешевеет.
Прогнозируйте списание вместе с накоплением. Некоторые изменения заменяют старый код и убирают расходы на его содержание. Засчитывайте снижение только после фактического удаления старого пути, зависимости, задания обработки данных и оповещений. Команды часто сливают замену, но месяцами эксплуатируют обе версии, из-за чего поверхность поддержки на переходном этапе удваивается.
Пересматривайте прогноз раз в квартал, но не переписывайте старые когорты ради красивых результатов. Обновляйте будущие предположения по наблюдаемым часам приемки, доработки и содержания. Зрелые когорты показывают, сработали ли ранние проверки качества, а молодые помогают понять, соответствует ли текущий объем выпуска доступной ответственности.
Назначьте каждому классу изменений стоимость единицы результата, которую руководство сможет использовать при планировании. Разделите полные расходы на генерацию, приемку, ожидаемое исправление и содержание на число принятых результатов, а рядом покажите резерв риска. Единицей может быть принятая миграция, конечная точка API, рабочий процесс или исправление дефекта, если она описывает выпущенное поведение. Тогда команда не сможет искусственно улучшить показатели, разбив одну функцию на множество мелких запросов на слияние.
Не превращайте стоимость единицы в оценку работы отдельного сотрудника. Инженеры со сложными высокорисковыми задачами будут выглядеть дороже, а проверяющие получат стимул скрывать исправления. Используйте показатель для выбора классов работ, средств контроля и состава команды. Людей оценивайте по инженерным решениям и результатам, включая слабые сгенерированные изменения, которые они правильно отклонили.
Класс риска определяет стоимость проверки
Объем проверки должен зависеть от последствий сбоя, а не от того, человек или агент набрал код. Происхождение от агента может повысить неопределенность, но класс риска определяют затронутые данные и выполняемое действие. Сгенерированная смена цвета и сгенерированное правило авторизации не должны проходить одинаковое согласование.
Удобная классификация содержит четыре уровня. Низкорисковые изменения затрагивают внешний вид или обратимые внутренние процессы. Изменения среднего риска меняют обычное поведение продукта с ограниченным ущербом. Высокорисковые изменения касаются аутентификации, авторизации, денег, персональных данных, разрушающих операций или основной доступности. Ограниченные изменения влияют на регулируемые решения, безопасность людей, криптографию или системы, для которых у команды нет квалифицированной проверки. В вашей компании названия могут отличаться, важнее разница в согласовании.
Для низкого риска может хватить одного проверяющего и автоматических проверок. Для среднего риска нужны тесты по требованиям и проверяющий, знакомый с сервисом. Для высокого риска требуются владелец предметной области, тесты с попытками нарушить систему, доказанный откат и часто проверка безопасности или данных. Ограниченные работы можно оставить под управлением людей, пока компания не докажет достаточность контроля контекста, набора оценок и квалификации проверяющих. Отказ от части автоматизации бывает разумным экономическим решением.
Secure Software Development Framework от NIST дает полезный стандарт вне шума вокруг ИИ. Практика PW.4.4 рекомендует организациям проверять приобретенные и сторонние компоненты на соответствие требованиям в течение всего срока жизни, включая статус поддержки и известные уязвимости. Результат агента не всегда относится к сторонним компонентам, но принцип срока жизни применим: приемка не выдает бессрочное разрешение. Зависимости и предположения продолжают меняться.
Я возражаю против обязательного построчного чтения человеком каждого сгенерированного изменения. Такая политика кажется безопасной, ее легко объявить, но люди бегло просматривают крупные изменения, повторяют машинную работу и пропускают поведение системы. Покупайте более сильные доказательства: маленькие изменения, явные требования, тесты, которые падают по ожидаемой причине, статические проверки и анализ зависимостей, изолированный запуск и наблюдение в промышленной среде. Глубокую ручную проверку оставьте для высокого риска и неясных решений.
Класс риска также задает резерв. Когортам низкого риска может хватить малого резерва на доработку. Для высокого риска явно планируйте часы на инциденты, проверку специалиста, отработку отката и при необходимости юридический анализ. Когда руководство спросит, почему единица результата агента стоит по-разному, укажите на последствия сбоя, а не спорьте об интеллекте модели.
Мощность на поддержку резервируют до выпуска
Команда должна резервировать мощность на поддержку при одобрении сгенерированной работы, а не после того, как очередь задач станет болезненной. Каждое слияние добавляет обязательство, а высокая скорость выпуска может создавать обязательства быстрее, чем маленькая команда успеет их принять.
Установите предел мощности для каждой команды-владельца. Используйте наблюдаемое время на проверку, доработку, инциденты, обновления и удаление. Если следующая когорта поднимает ожидаемую поддержку выше предела, сократите объем генерации, сузьте класс изменений или добавьте владельца. Еще одно место для агента не исправит нехватку ответственности.
Для предела нужна видимая очередь. Показывайте уже выделенные часы поддержки, незапланированные исправления, стареющие обновления и резерв, который еще доступен для нового результата. Когда очередь пересекает предел, у команды должно быть право приостановить прием новых функций от агентов. Без этого права предел останется украшением панели, а те же инженеры будут отвечать за невыполнимый план.
Требуйте решения о сроке жизни сгенерированных экспериментов и внутренних инструментов. В назначенную дату владелец переводит код в поддерживаемый сервис, заменяет или удаляет его. Временный код без даты становится постоянным кодом со слабыми тестами. Заложите бюджет на удаление, потому что для безопасного вывода нужны проверка использования, решения о хранении данных и общение с пользователями.
Планируйте работу с зависимостями отдельно. Агенты часто выбирают знакомые библиотеки, которые решают текущий запрос, но каждая новая зависимость добавляет уведомления об обновлениях, тестирование совместимости, проверку лицензии и возможную замену. Политика репозитория может ограничивать новые пакеты, требовать обоснование и отдавать предпочтение возможностям, которые команда уже эксплуатирует. Это снижает расходы на поддержку без запрета агентов.
Поручайте агентам поддержку лишь после того, как в репозитории появятся надежные тесты и эксплуатационный контекст. Агент быстро обновит зависимость или исправит дефект, если может запустить нужные проверки и видит контракт сервиса. Без контекста он может убрать симптом, изменить недокументированное поведение или расширить изменение так, что проверка обойдется дороже ручного исправления.
Следите и за риском концентрации знаний. Если один инженер поставляет весь контекст, принимает каждое изменение и понимает все сгенерированные подсистемы, у компании по-прежнему остается единственная точка отказа, только теперь за более быстрым интерфейсом. Меняйте проверяющих, требуйте записи о передаче высокорискового кода и проверяйте, сможет ли другой инженер найти специально внесенную неисправность. Такое упражнение лучше показывает ответственность, чем зеленая отметка тестов.
Проверяйте наблюдаемость при приемке. Сгенерированный код, который добавляет фоновое задание, повторные попытки, кеш или внешний вызов, нуждается в сигналах успеха, сбоя, задержки и очереди. Без этих сигналов первое обслуживание начнется с добавления наблюдаемости под давлением. Несколько часов, сэкономленных при слиянии, превратятся в самые дорогие часы инцидента.
Резервируйте время на передачу знаний после того, как первый владелец закончит текущую задачу. Второй инженер должен уметь сформулировать контракт, найти тесты, объяснить откат и назвать опасные предположения. Если передача не удалась, запланируйте уборку, пока контекст еще свеж. Через шесть месяцев короткое объяснение превратится в археологию исходного кода.
Резерв на поддержку принимается на уровне всего портфеля. Новый результат агента конкурирует со старым результатом агента, написанным людьми кодом, обязательствами перед клиентами и инфраструктурными работами за одних и тех же специалистов. Защищайте резерв при планировании. Если руководство продукта каждый месяц забирает его на новые функции, записывайте это как отложенную поддержку, а не как выдуманный рост продуктивности.
Результат агента окупается при дешевой обратной связи
Код от ИИ оправдывает себя там, где команда может сформулировать требование, быстро получить обратную связь, ограничить ущерб и назначить владельца. Экономически он хорошо работает для повторяющихся преобразований, тестовых заготовок под проверкой человека, адаптеров к стабильным контрактам, ограниченных внутренних инструментов, миграций с документацией и небольших изменений в репозиториях с хорошими тестами.
У слабых кандидатов общий признак: организация не может описать успех или заметить сбой. Новая модель предметной области с нерешенными правилами продукта, граница безопасности, которую никто в команде не понимает, или старый сервис без тестов дают агенту возможность выдавать убедительные догадки. Чем быстрее появляются догадки, тем дороже их проверять.
Экономика прототипа отличается от экономики промышленного продукта. Одноразовый прототип может обойтись слабым учетом происхождения, легкими тестами и без плана обновлений, если команда действительно его удалит. Промышленному коду с первого слияния нужны владелец и бюджет содержания. Команды обжигаются, когда прототип для продаж становится клиентской системой без отдельной приемки.
Проведите 90 дней измерений, прежде чем обещать годовую экономию. Классифицируйте работу, фиксируйте время приемки, отмечайте изменения с участием агента и записывайте причины доработок. Сохраните сопоставимую выборку обычных изменений в тех же классах риска. В конце сравните полные инженерные часы на один принятый результат, а не число фиксаций или строк.
Team & AI Audit от oleg.is может построить такую базу, найти области, где результат агента снижает полные инженерные расходы, и выявить экономию не менее 50 000 долларов в год за пять рабочих дней, иначе аудит стоимостью 5000 долларов будет бесплатным. Полезный результат этой работы дает операционную модель: где работают агенты, какие проверки применяются, кто отвечает за результат и какую мощность резервирует бюджет на 12 месяцев.
Не ждите идеальной системы атрибуции. Добавьте в следующий запрос на слияние четыре поля: участие агента, принявший инженер, команда-владелец и класс риска. С ними уже следующий месяц станет измеримым. Через двенадцать месяцев у сохранившегося кода будут названные владельцы, доказательства и бюджет поддержки, поэтому его содержание останется достаточно дешевым.
Часто задаваемые вопросы
Сколько стоит код от ИИ через год?
Единой честной ставки нет. Для каждой когорты изменений сложите цену генерации и инструментов, часы приемки, ожидаемые доработки, риск инцидентов и 12 месяцев мощности на поддержку.
Какую долю доработок ИИ-кода считать нормальной?
Общий целевой показатель введет в заблуждение, потому что риск и размер изменений различаются. Постройте базу по классам изменений, затем снижайте часы существенных доработок и дефекты после выпуска, не ослабляя приемку.
Нужно ли включать ИИ-инструменты для программирования в бюджет поддержки?
Да, но учитывайте их отдельно от труда и резерва на инциденты. Счет легко измерить, и часто он мал по сравнению с проверкой, исправлением и мощностью на содержание.
Кто отвечает за код, написанный ИИ-агентом?
При слиянии назначьте принявшего инженера и постоянную команду-владельца. Авторские и договорные права требуют отдельного юридического анализа, а промышленная ответственность ждать его не может.
Может ли компания получить авторское право на исходный код от ИИ?
Это зависит от страны и вклада человека в работу. В США Бюро авторского права считает, что одни запросы автоматически не создают авторства, а человеческий отбор, компоновка или правка могут дать основания для защиты.
Как отслеживать запросы на слияние с участием ИИ?
Записывайте участие агента, принявшего инженера, команду-владельца, класс риска, время приемки и часы последующей существенной доработки. Изменения требований учитывайте отдельно от исправлений по вине агента.
Нужно ли построчно проверять каждое изменение от ИИ?
Нет. Глубина проверки должна зависеть от последствий сбоя и неопределенности, а повторяемые проверки стоит поручить автоматике. Для высокорисковых изменений все равно нужен квалифицированный владелец области и точечная ручная проверка.
Когда сгенерированный код слишком рискован для промышленной среды?
Не выпускайте его, если команда не может определить корректное поведение, проверить важные сбои, ограничить ущерб или назначить квалифицированного владельца. В ограниченных областях управление может оставаться у людей, пока эти условия не изменятся.
Какую мощность резервировать на поддержку?
Опирайтесь на данные когорт, а не на фиксированный процент. Зарезервируйте ожидаемые часы проверки, доработки, обновлений, инцидентов и удаления, затем задайте предел, который не позволит новому результату перегрузить команду-владельца.
Помогает ли число строк оценить бюджет на результат агента?
Оно плохо описывает объем и совсем не описывает ответственность. Считайте принятые изменения, класс риска, инженерные часы, ущерб от инцидента и месяцы содержания в промышленной среде.


