Проект ЦИТадель
Тексты об ИИ-ассистентах обычно относятся к одному из двух жанров: восторженному («программисты больше не нужны») или предостерегающему («не доверяйте, проверяйте»). Оба чаще обращены к отдельному разработчику, хотя результат внедрения определяется на уровне команды. Одна и та же модель в одном коллективе даёт измеримое ускорение, а в другом увеличивает число дефектов и очередь на ревью. Разница заключается не только в модели, но и в организации работы. Поэтому руководителю полезно рассматривать ИИ-ассистента не как инструмент, который достаточно выдать сотрудникам, а как изменение производственной системы. Конкретные продукты здесь не рассматриваются: они быстро сменяют друг друга, тогда как принципы организации команд гораздо устойчивее. Основной тезис статьи: раздать лицензии и ничего не перестроить — всё равно что купить станки и оставить цех без изменений. Далее разберём, что именно требуется перестроить и почему.
Руководителю не обязательно подробно знать устройство языковых моделей, но важно понимать три следствия такого устройства: на них основаны все дальнейшие организационные решения.
Есть и четвёртое, положительное свойство: ассистенты хорошо справляются с регулярными задачами — обвязкой, преобразованиями, типовым кодом, тестами по образцу и объяснением чужого кода. Это преимущество важно учитывать наравне с перечисленными ограничениями.
Главная управленческая ошибка возникает ещё на этапе ожиданий. Ассистент ускоряет написание кода, но сначала нужно выяснить, является ли оно узким местом команды. Обычно задача дольше ждёт уточнения требований, ревью, стенда, приёмки или согласования, а набор кода занимает лишь часть календарного времени. Ускорение этапа, который не ограничивает общую производительность, не ускоряет всю систему, а увеличивает очередь перед её узким местом. Например, код пишется вдвое быстрее, число диффов растёт, ревью не справляется с потоком, время прохождения задач увеличивается, а объём незавершённой работы накапливается. Причина ухудшения — не сам ИИ, а ускорение одного этапа без перестройки остальных.
Поэтому первый практический шаг (задание 1 практикума) — составить карту потока и измерить время до внедрения. Определите, где задачи ждут и сколько проходит от создания диффа до первого просмотра. Если ожидание измеряется днями, начните с организации ревью: ассистент только увеличит существующую очередь.
Долгое время написать код было дороже, чем прочитать его. На этом соотношении основывались привычные нормы: беглое ревью, доверие к аккуратно выглядящему коду и предположение, что разработчик понимает каждое принятое решение. Ассистенты изменили это соотношение: порождать правдоподобный код стало дёшево, а проверять его по-прежнему дорого. Если процесс не перестроен, диффы растут, ревью становится поверхностным, а доля изменений, возвращённых с приёмки, увеличивается. Изменения нужны с обеих сторон процесса:
В основе всего сказанного лежит правило, которое стоит письменно закрепить в соглашениях команды: написание кода можно поручить, ответственность — нельзя. В коммите указано имя разработчика, поэтому фраза «это написал ассистент» не объясняет инцидент; не является таким объяснением и ссылка на скопированный пример. При этом руководителю важно не наказывать за ошибки в сгенерированном коде строже, чем за остальные: иначе команда начнёт скрывать использование ассистента, а генерация продолжится без общей дисциплины и статистики. Поэтому второе правило формулируется так: проблема заключается не в использовании ассистента, а в отсутствии проверки. Открытое описание того, что было сгенерировано и как это проверили, должно быть нормой. Разборы инцидентов проводите без поиска виноватых: их цель — улучшить контроль, пропустивший дефект, а не наказать конкретного человека.
Из принципа «чего нет в контексте, того не существует» следует полезный независимо от ИИ управленческий вывод: неявное знание команды необходимо сделать явным и записать. Соглашения по коду, ключевые инварианты предметной области, принятые запреты и их причины, образцовые примеры — всё, что объясняют новому сотруднику в первый месяц, должно храниться в репозитории в текстовом виде. Теперь у этих документов две группы читателей: сотрудники и ассистенты, поскольку современные инструменты умеют учитывать файлы с правилами проекта. Команды с хорошо описанными правилами извлекают из ассистентов больше пользы, потому что качество генерации прямо зависит от качества контекста. Внедрение ИИ также даёт руководителю основание выделить ресурсы на документирование, которое раньше постоянно откладывалось.
Отдельно определите информационный периметр. Письменная политика, а не личное решение сотрудника, должна устанавливать, могут ли код, данные и секреты в запросах покидать контур организации. Для чувствительных материалов нужны сервисы с подходящими гарантиями или локальные модели. Здесь действует тот же принцип, что и в статье «Облака на практике»: ответственность за данные нельзя передать поставщику.
Самое серьёзное последствие внедрения связано не с техникой, а с подготовкой специалистов. Традиционно начинающий сотрудник осваивал профессию на типовых задачах и постепенно переходил к более сложным. Ассистент берёт значительную часть такой работы на себя и тем самым убирает первую ступень обучения. При этом надёжно проверить сгенерированное решение способен прежде всего тот, кто умеет выполнить задачу самостоятельно. Если не управлять этим процессом, со временем в команде может исчезнуть среднее звено между опытными инженерами и сотрудниками, умеющими только формулировать запросы. Новую систему обучения можно построить следующим образом:
Руководителю важно замечать две крайности: скрытый отказ, когда использование ассистента считается признаком недостаточной квалификации, и скрытое злоупотребление, когда генерация применяется без проверки и обсуждения. Обе проблемы решает правило из раздела 4: использование инструмента открыто, а проверка обязательна. Оценивайте качество проверки, а не сам факт применения ассистента.
Результат внедрения нужно измерять, помня о законе Гудхарта: показатель, превращённый в цель, перестаёт надёжно отражать результат. Число строк кода, доля кода, созданного ИИ, и процент принятых подсказок растут уже от самого факта использования инструмента и не показывают его пользу. Например, доля принятых подсказок увеличится и в том случае, если команда перестанет внимательно их читать. Полезно измерять весь поток поставки: время от постановки задачи до продакшена, частоту поставки, долю неудачных изменений и время восстановления. Эти же четыре показателя используются в статье «Инженерный конвейер», поскольку ассистент ускоряет лишь один из его этапов. Дополнительно стоит отслеживать время от создания диффа до слияния и долю изменений, возвращённых с ревью или приёмки. Сравнивайте одну команду до и после внедрения за сопоставимые периоды. Чужие контрольные показатели и рекламные проценты напрямую не переносятся: результат зависит от сочетания конкретной команды и её задач.
Сведём рекомендации в последовательность, которая станет основой практикума:
Задание 1. Секундомер. Возьмите пять последних завершённых задач и восстановите по трекеру и репозиторию их календарный путь: сколько времени они ждали ревью, стенда и приёмки, какую долю заняло написание кода. Письменно назовите узкое место и направьте основные усилия именно на него.
Задание 2. Политика на страницу. По рекомендациям раздела 8 опишите ответственность, информационный периметр, области применения и нормы ревью. Новый сотрудник после чтения документа должен понимать, что разрешено, что запрещено и как действовать в спорных случаях.
Задание 3. Пилот с журналом. В течение месяца всей командой ведите простой учёт по классам задач. По итогам составьте карту: где результат принимается без изменений, где требует переработки, а где использование ассистента запрещено. Храните её рядом с соглашениями по коду.
Задание 4. Стресс-тест ревью. Подготовьте самостоятельно или с помощью ассистента дифф с двумя правдоподобными дефектами: одним в предметной логике, другим в конкурентности. Проведите его через обычное ревью команды. Если обнаружены не все дефекты, результат даст конкретные основания для изменения процесса проверки.
Задание 5. Учебная программа. Спроектируйте для одного начинающего разработчика месячную программу: определите, какие задачи он выполняет самостоятельно и зачем, какие — с ассистентом; добавьте три упражнения на поиск дефекта в сгенерированном коде и ревью вместе с наставником. Это прототип новой системы обучения.
Задание 6*. Разбор инцидента. Если произойдёт инцидент, связанный со сгенерированным кодом, проведите разбор без поиска виноватых по правилам раздела 4 и улучшите контроль, пропустивший дефект. Запишите выводы в карту оценки ассистента.