Связать весь цикл
Агент-программист создаёт изменение в коде. Фабрика ещё сортирует задачи, готовит спецификации, проводит ревью, проверяет продукт и возвращает проблемы в очередь.
Агенты выполняют этапы разработки. Команда настраивает процесс, проверяет результат и улучшает систему, которая выпускает продукт.
Смотреть на YouTube ↗Software Engineering Is Becoming Factory Engineering
Доклад основателя Warp и бывшего руководителя разработки Google Docs.
Ллойд ожидает, что у крупных проектов появятся «фабрики ПО»: связанные автоматизации от входящей задачи до наблюдения за выпущенным изменением. По его прогнозу, они станут привычной частью разработки, как CI/CD.
Агент-программист создаёт изменение в коде. Фабрика ещё сортирует задачи, готовит спецификации, проводит ревью, проверяет продукт и возвращает проблемы в очередь.
Люди проверяют спецификации, код и поведение продукта. Их участие в ревью зависит от риска; в процессе должно быть место для уточнений и остановок.
Сохранять результаты запусков и замечания инженеров. Агент-наблюдатель использует их, чтобы улучшить инструкции для следующего запуска.
Задачи приходят от команды, пользователей и мониторинга: через трекер, Slack или Teams, терминал и IDE. Сначала triage-агент сортирует задачи и выбирает для каждой маршрут.
Простую и однозначную задачу можно сразу отправить на реализацию. Сложной нужна спецификация. На подробной схеме есть отдельные пути для уточнения у человека и откладывания задачи.
В Warp агент готовит два документа. Product spec задаёт продуктовые инварианты: условия, которые продукт должен соблюдать. Tech spec описывает архитектуру и структуру кода.
Агент в облаке создаёт diff, то есть набор изменений кода. Ллойд советует первым запускать агента для ревью, а затем подключать человека с учётом риска изменения.
Для интерфейсов агент использует приложение и сохраняет видео и скриншоты. После CI/CD агенты следят за сбоями и использованием продукта; наблюдения становятся новыми задачами.
На обзорной схеме люди включаются при проверке спецификации, кода и продукта. Это разные решения: верно ли описана задача, приемлемо ли изменение и работает ли нужное поведение.
Ллойд отдельно подчёркивает, что для проверки интерфейса полезно дать агенту воспользоваться приложением. Видеозапись и скриншоты показывают результат выполнения, дополняя ревью кода.
11:27 · Проверка поведения ↗Warp пять лет разрабатывался с закрытым кодом. Одной из причин перехода к open source стало желание построить публичную фабрику: на build.warp.dev видно, как задачи проходят этапы и кто над ними работает.
Аргумент Ллойда начинается с удешевления разработки и копирования ПО. Качественный продукт остаётся необходимым, но бизнесу нужны дополнительные преимущества: распространение, бренд, данные, капитал или сообщество вокруг продукта. Для стартапа открытая разработка может помочь создать такое сообщество.
При этом открытый проект получает много шумных задач и неаккуратных PR. Сортировка, ревью и проверка требуют времени. По словам Ллойда, именно автоматизация этих работ помогла Warp решиться на открытие кода.
В начале доклада Ллойд сообщает о более чем 60 тысячах GitHub stars и 800 тысячах активных разработчиков Warp. Это заявленные спикером показатели, а не измеренный эффект фабрики.
За графом процесса нужна инфраструктура: принять задачу, выбрать исполнителя, запустить его в рабочей среде и сохранить результат. Ллойд раскладывает её на четыре уровня.
Терминал, веб-интерфейс, интеграции и API дают несколько способов отправить работу в одну систему.
Распределяет работу и задаёт правила. На слайде сюда входят навыки, модели, инструменты, окружения, разрешения, маршрутизация и контроль расходов.
Облачные песочницы или собственная инфраструктура запускают агентов. Здесь выбирают модель и harness — программную среду, которая управляет работой агента и его инструментами.
Артефакты, память, навыки, правила и базы знаний сохраняют опыт запусков. Этот слой должен позволять агентам учитывать прошлую работу и улучшаться.
Ллойд предлагает измерять, сколько ПО команда выпустила и во что это обошлось: в человеческом времени и затратах на токены. Эти измерения нужны для последовательного улучшения процесса.
Отдельный цикл улучшает сами навыки агентов. Навык здесь означает инструкции для конкретной работы, например сортировки задач или ревью. Агент-наблюдатель смотрит, как инструкции выполняются, где возникают ошибки и какие исправления вносит человек.
На слайде тот же принцип показан для сортировки задач: внешний цикл предлагает изменения SKILL.md через PR. В устном примере Ллойд разбирает исправление комментариев при ревью кода.
По прогнозу Ллойда, инженеры будут писать меньше кода и больше заниматься системой, которая выпускает продукт. Сюда входят выбор этапов, настройка навыков, проверка результатов и улучшение работы агентов.
Начинающим он советует развивать адаптивность, критическое мышление и способность быстро учиться. Понимание систем и архитектуры сохраняет ценность: нужно уметь разбирать код и спецификации, которые создают агенты.
Говоря о найме, Ллойд ссылается на опыт своей компании: Warp нанимает больше людей, чем раньше, и ищет гибких инженеров, которые умеют решать продуктовые задачи. Он не приводит данных о рынке труда в целом.
Смысл фабрики зависит от того, создаёт ли она что-то полезное людям. Человеческий вкус и понимание продукта остаются необходимыми.
Зак Ллойд · пересказ ответа о продуктовом мышлении 19:24 ↗
Время открывает нужный момент на YouTube. Миниатюры открываются крупно; время самого кадра указано рядом с ним.
Зак Ллойд представляет себя и Warp. Говорит, что продолжает выпускать изменения, хотя последние полгода не писал код вручную.
Автодополнение сменилось агентами, которыми управляют из терминала. Следующий шаг, по мнению спикера, — автоматизация связанного процесса.
Идея → triage → спецификация → реализация → ревью → проверка → выпуск → мониторинг. Человек участвует в ключевых проверках.
Интерфейс build.warp.dev показывает состояния задач и работу участников. Спикер описывает систему как работающий прототип.
Ллойд обсуждает стоимость копирования, преимущества за пределами продукта и пользу сообщества. Совет патентовать код в этом фрагменте — шутка.
Автоматизация помогает обрабатывать шумные задачи, PR и проверку изменений. Компоненты фабрики: автоматизации, контекст и навыки, участие людей, улучшение процесса.
Процесс включает разные маршруты после triage и возвраты на доработку. Источники задач: трекер, коммуникации, IDE и мониторинг.
Однозначные простые задачи идут в реализацию. Для сложных агент описывает требования к продукту и техническое решение.
Облачный агент создаёт diff; другие агенты и люди проверяют код и поведение. Выпущенное изменение остаётся под наблюдением.
Каналы входа, управление, исполнение и данные. Нижний слой хранит опыт, необходимый для улучшения агентов.
Оценивать объём выпущенного ПО, человеческое время и затраты на токены.
Наблюдатель анализирует ошибки и исправления, затем помогает обновить инструкции. На слайде показана пара внутренних и внешних циклов.
Работа смещается к проектированию и настройке системы агентов. Спикер ожидает меньше ручного кода и больше выпусков.
Ллойд показывает QR-код с примером агентов для triage и написания спецификаций. Пример использует платформу Warp, но сам подход ею не ограничен.
Навыки и процесс нужно адаптировать под продукт даже на готовой инфраструктуре.
Адаптивности, критическому мышлению, устройству систем и умению читать код и спецификации агентов.
Автоматизация имеет смысл, если результат нужен людям. Человек определяет, что ценно пользователям.
Практический порядок по рекомендациям доклада. Можно начать с сортировки простых задач и постепенно соединять этапы.
Выберите источник задач. Пусть агент выделяет простые однозначные изменения, а сложные отправляет на подготовку спецификации.
Опишите требования к продукту отдельно от технического решения. Предусмотрите проверку спецификации человеком, ревью кода и проверку поведения приложения.
Наблюдайте за сбоями и использованием после выпуска. Возвращайте найденные проблемы в очередь задач.
Учитывайте время людей и затраты на токены. Используйте исправления инженеров как материал для агента, который предлагает улучшения инструкций.