Перейти к содержимому
NEURO NEWS 365
Назад

Разработка с помощью ИИ: три года проб и путь к Spec-Driven

Обложка статьи «Разработка с помощью ИИ: три года проб и путь к Spec-Driven»

Родион, руководитель отдела по анализу данных в Лаборатории данных компании «Синимекс», опубликовал на Хабре ретроспективу: как в компании больше трёх лет пробовали встроить разработку с помощью ИИ в реальные проекты и почему в итоге пришли к Spec-Driven — подходу, где сначала пишется спецификация, а код генерируется последним шагом. Материал заявлен примерно на десять минут чтения и построен по годам: 2023, 2024, 2025, 2026.

Ценность текста не в описании Spec-Driven — о нём написано много. Ценность в том, что показана дорога к нему: пять-шесть внутренних кейсов, из которых половина не взлетела, и причины, по которым они не взлетели, названы прямо. Там есть и история с хорошими ML-метриками, которые пользователи отказались принимать, и пилот, умерший на попытке масштабирования, и опрос сотрудников, показавший, что ассистенты кода у разработчиков почти не прижились.

Ниже — содержание материала по смысловым блокам: что именно пробовали, какие цифры приводит автор, к каким выводам он приходит и в чём, по его версии, состоит переход от «добавим немного ML» к инженерному контуру вокруг модели.

2023: метрики выросли, а работа людей — нет

Первый подход компания сделала в 2023 году, когда LLM только начали набирать популярность. Автор описывает три кейса этого периода.

CDT (Cinimex Development Tool). Гипотеза строилась на том, что у заказчиков лежат горы технических заданий — объёмных, разношёрстных по структуре и стилю, — а аналитики тратят часы на то, чтобы вытащить оттуда требования и сущности. Задачу решали подходом NER (Named Entity Recognition, распознавание именованных сущностей): модель учили выделять требования и находить ключевые сущности в тексте ТЗ. Собрали выборку заданий разного качества, разметили её, провели несколько десятков экспериментов.

Внутренние тесты дали ROC-AUC 0.7 и F1 0.61. Автор оценивает это как «не вау, но кое-что» и описывает реакцию целевой аудитории — аналитиков и архитекторов. Их возражение он приводит цитатой: если система ошибается хотя бы в двадцати процентах случаев, результат всё равно приходится перепроверять целиком вручную, а значит практической ценности почти нет. Пользователи не разбирались в ML-метриках; их критерий был другим — можно ли принять ответ без полной ручной проверки.

Отсюда первый вывод материала: качество AI-функции измеряется не только качеством ответа модели, но и стоимостью проверки этого ответа человеком.

CTT (Cinimex Test Tool). К следующему продукту зашли уже с генеративной стороны и с опорой на разговор с будущими пользователями — тестировщиками. Провели брейнштормы, отобрали сценарии по бизнес-ценности и реалистичности, собрали прототип на открытых моделях и ChatGPT, подготовили документы на согласование. Прототип работал, тесты генерировались, но затраты на развитие перевесили ценность — проект не получил продолжения.

Ассистент по базе знаний. Третий кейс — цифровой ассистент для первой и второй линий поддержки банка из топ-20, которые тонули во внутренних регламентах. Начали с PoC на нормативной документации из открытых источников, затем перешли к MVP на реальных данных: собрали внутренние инструкции и нормативные акты одного подразделения, дообучили модель и отдали сотрудникам. Автор отмечает, что по сути это была классическая RAG-система ещё до того, как такие решения стали массовыми. Подразделение системой пользовалось, инициатор проекта сказал «работает» — но соседние подразделения ответили «нам оно зачем?», и пилот остановился.

Итог года в формулировке автора: хорошие метрики не равны ценности готового решения, а успешный пилот не доказывает масштабируемость сценария.

2024: первый работающий инструмент и расползание практик

В 2024-м направление поиска сместилось к самой разработке.

Нишевые языки. Компания взялась за инструмент генерации кода на RPGLE и COBOL, встроенный прямо в IDE. Логика проблемы: специалистов по этим языкам становится меньше, а системы на них живут и требуют поддержки. От инструмента хотели автокомплит, генерацию кода, помощь с тестами и возможность дообучать модель под конкретный проект. Проанализировали доступные на тот момент LLM, собрали датасет для дообучения — источниками названы репозитории GitHub с RPGLE, датасет The Stack v2 и внутренние репозитории GitLab «Синимекса», — и отработали методику дообучения.

Это первый кейс в тексте, которым автор доволен: получился полноценный Proof of Concept, модель встроилась в IDE и начала помогать разработчикам.

AI-стратегия. Параллельно вскрылась организационная проблема. Компания большая, команд много, каждая использовала ИИ по-своему: кто-то ChatGPT, кто-то GitHub Copilot, кто-то локальные модели, кто-то ничего. Пока это эксперименты — терпимо, но код проектов принадлежит заказчикам, а в репозиториях лежит коммерческая информация, поэтому вести боевую разработку в публичных сервисах нельзя.

Провели внутренний опрос. Автор приводит срез по своему подразделению — Лаборатории данных: 69% сотрудников видели пользу в LLM, 45% использовали их еженедельно. Основные сценарии — копирайт, брейншторм, ресёрч. Неожиданным оказалось другое: ассистенты кода работали плохо, усреднённый опыт сводился к «попробовал несколько раз». Позицию разработчиков автор передаёт их же словами — пишет код на уровне джуна, проще написать самому, чем разбираться, что сгенерировала модель.

Вывод года: adoption уже начался, но без централизованного управления, и набор инструментов, сценарии и правила у команд различались.

2025: постановка задачи оказалась сложнее архитектуры

ИИ-тренер для поддержки продаж. Задача 2025 года была далека от кода: прокачать коммуникативные навыки торговых представителей. Сделали виртуального клиента, который ведёт диалог от приветствия до финальной договорённости, возражает, проверяет аргументы, а после разговора разбирает ошибки.

Продукт дошёл до MVP с измеримыми KPI: частота офферов у консультантов растёт минимум на 15%, конверсия из оффера в пилот — минимум на 20%. Автор подчёркивает, что здесь впервые заговорили не об ощущении пользы, а о бизнес-метриках.

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

1С. Второй кейс года — агентская разработка в экосистеме, кодовой базы которой нет на GitHub. Автор пишет, что был удивлён наличию у 1С современных инструментов: механизм EDT (Enterprise Development Tools), открывающий агенту структуру проекта, исходный код и инженерный контекст, и интеграция через MCP, превращающая агента из чата в участника процесса разработки. Подробности этого кейса он оставляет отдельной публикации коллеги.

Вывод 2025 года: генерация сама по себе перестала быть дефицитом, ценность сместилась в качество постановки задачи, контекст и правила работы агента.

2026: разработка с помощью ИИ глазами самих инженеров

К 2026 году ИИ в компании стал частью повседневной работы, и автор приводит несколько реплик коллег разных ролей и грейдов:

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

Spec-Driven: спецификация вместо одноразового промпта

Три вывода, к которым компания пришла к 2026 году, автор сводит воедино: результат зависит от точности постановки задачи (показал ранжированный список проблем на ИИ-тренере); агенту нужен контекст проекта, а не текстовое поле (подтвердила практика с 1С); массовое использование без общего инженерного контура фрагментарно и плохо масштабируется (показал опрос).

Общая идея: постановка задачи, контекст и правила должны перестать быть одноразовыми промптами и стать артефактами проекта. Код при этом перестаёт быть основным активом разработки — чем дешевле его генерация и переработка, тем выше цена формализованных требований, ограничений и архитектурных решений. Архитектура, спецификация и стратегия реализации остаются за инженером, а генерация кода превращается в последний шаг.

Разницу между подходами автор показывает на примере сервиса загрузки документов. В prompt-driven разработчик пишет агенту задачу текстом. В Spec-Driven сначала фиксируются роли, ограничения, NFR (нефункциональные требования), интерфейсы и acceptance criteria, и уже внутри этого набора артефактов работает агент.

Цепочка, которую применяют в компании, состоит из шести шагов:

ШагЧто делаютАртефакты
1. Определить миссиюПревращают запрос в ТЗ (PRD): цели, пользователи, ограничения, рискиТЗ в Markdown, диаграмма целей в PlantUML, spec/mission.md
2. Сформулировать правилаПаспорт проекта: принципы, NFR, бизнес-правилаspec/spec.yaml, таблица требований, список must-have
3. Допущения и ограниченияИсследуют инструменты и архитектуры, собирают контекстТаблица сравнения, список рисков
4. Пересмотр планаАрхитектурный review: стресс-тест допущений, поиск дыр в дизайнеДиаграмма архитектуры, чек-лист
5. КритикаИщут недостающие требования, уточняют метрики валидацииRed-team-отчёт, список доработок
6. Генерация кодаПередают собранный контекст агенту или LLMКод, Docker-образ, .gitlab-ci.yml

К каждому шагу в оригинале привязаны контрольные вопросы: кто потребляет результат и какие бизнес-риски критичны; какие условия должны выполняться при любом способе реализации; какие технологии укладываются в ограничения вроде on-prem, NDA или 1С; какие сценарии нарушают спецификацию; какие требования скрыты в бизнес-процессе; как убедиться, что код соответствует спецификации.

Автор оговаривает, что цепочка не единственно возможная и зависит от инструмента. В качестве примера он называет открытый фреймворк Spec Kit, где та же логика упакована в команды: /speckit-constitution — определить миссию, /speckit-specify — собрать структурированную спецификацию из словесного описания, /speckit-plan — построить план и провести исследования, /speckit-tasks — разбить план на задачи, /speckit-clarify — проверить документы на непротиворечивость, целостность и недоопределённость. Принцип один: сначала спецификация, потом код.

Финальная рифма материала — к истории 2023 года. Вайб-кодинг без инженерного контура, по мысли автора, превращает каждого разработчика в того самого аналитика, который отказался проверять чужие ошибки: вместо написания кода он делает ревью сгенерированного, и отладка съедает больше времени, чем экономит генерация.

Коротко

Что из этого следует

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

Ограничение у текста естественное: это опыт одной сервисной компании на энтерпрайз-проектах, где код принадлежит заказчику, данные закрыты, а часть стека приходится на 1С и легаси-языки. Цифры по KPI ИИ-тренера приведены как показатели MVP, и условий их измерения в материале нет — переносить «+15% офферов» на свою задачу нельзя. Опрос — срез по одному подразделению, а не отраслевая статистика.

Spec-Driven в изложении автора — не новая технология, а способ зафиксировать то, что раньше жило в одноразовых промптах и головах. Проверять стоит именно это: существуют ли у вас требования и ограничения в виде файлов, которые можно отдать агенту вместе с задачей, или контекст каждый раз собирается заново в чате. Если второе — описанный путь объясняет, почему результат нестабилен.

Для команды, которая хочет попробовать подход без перестройки процесса, есть недорогой вход: взять одну ближайшую фичу, написать для неё спецификацию с ролями, нефункциональными требованиями и критериями приёмки, и только после этого пустить агента. Сравнение с обычным prompt-driven заходом на соседней фиче покажет, стоит ли разворачивать цепочку целиком.


Источник: Как мы 3+ года пытались подружить AI с разработкой: от провалов к Spec-Driven


Поделиться статьёй:

Предыдущая статья
Нейросети для домашки: исследование 27 тысяч школьников из Китая и что стало с экзаменами
Следующая статья
Безопасность искусственного интеллекта на уровне железа: что такое NVIDIA Open Agent Safety Platform