На разработку первой версии сложного алгоритмического механизма и передачу её бизнес-разработчикам оставалось около двух недель. Механизм зависел от множества параметров, а после передачи почти наверняка должен был меняться.
Поэтому задача состояла не только в том, чтобы успеть реализовать рабочую версию. Нужно было заранее проработать положительные и негативные сценарии и создать набор автоматических проверок, чтобы не перепроверять всё вручную после каждого изменения.
Сначала сценарии, потом код
Работа начиналась не с генерации кода. Сначала мы с агентом прорабатывали тест-кейсы: входные данные, настройки и ожидаемое поведение. Затем агент реализовывал соответствующие тесты, опираясь на существующие в проекте примеры.
Получившийся набор сочетал unit-тесты с интеграционными. Интеграционные тесты работали с реальной структурой данных в PostgreSQL, запущенной через Testcontainers.
Мне пришлось досконально разобраться в алгоритме: я определял ожидаемое поведение и проверял корректность сценариев. Агент ускорял проработку вариантов и превращал согласованные тест-кейсы в код. Получался короткий цикл: сформулировать сценарий, превратить его в проверку, уточнить реализацию и перейти к следующему сочетанию условий. Тесты помогали находить ошибки в логике, а не только фиксировали уже готовое поведение.
К концу двух недель появилась первая версия механизма с широким набором unit- и интеграционных тестов. Её уже можно было передать разработчикам бизнес-функционала. Изначально я не надеялся успеть в срок, опираясь на опыт ручной разработки с менее интенсивным использованием агента.
Тесты стали основой дальнейшей разработки
После появления первой версии механизм продолжал меняться: его оптимизировали, а API дорабатывали. Быстрая обратная связь от тестов позволяла менять внутреннюю реализацию и внешний контракт, снижая риск нарушить уже проверенные сценарии.
Широкое покрытие также позволило активнее использовать агента в дальнейших доработках и спокойнее менять механизм, с меньшим риском заблокировать работу команды, которая разрабатывала и проверяла использующую его бизнес-логику.
Масштаб задачи стал особенно заметен на тестовом полигоне. После подключения механизма систему ещё не менее месяца настраивали и дополняли необходимыми данными, чтобы через UI проверить основанную на алгоритме бизнес-логику. При этом первая версия алгоритма и набор автотестов были готовы за две недели, а автотесты охватывали все варианты настроек на полигоне.
После этой работы мне захотелось отдельно разобраться: как максимально ускорять разработку с помощью агента, не теряя качества?