Распространение ИИ уже заметно повлияло на сферу заказной разработки ПО. ИИ-ассистенты для программирования помогают разработчикам прорабатывать варианты реализации, генерировать типовой код, выполнять рефакторинг, писать тесты, разбираться в незнакомых модулях и быстрее переходить от требований к рабочему решению.
Однако в крупных программных проектах применение ИИ в разработке требует другого уровня контроля. Промышленная система может включать множество команд, сервисов и интеграций, общие библиотеки, устаревшие компоненты, операции с повышенными требованиями к безопасности и важную бизнес-логику.
В такой среде ИИ-инструмент может сгенерировать технически корректный код, который при этом окажется неподходящим для конкретного проекта. Он может продублировать уже существующую логику, не учесть граничные случаи, сделать неверные предположения о бизнес-процессах или изменить компонент, не учитывая его зависимости.
Поэтому задача заключается не только в выборе подходящего ИИ-решения для разработки. Гораздо важнее выстроить процесс, который позволяет контролировать, как именно ИИ используется на каждом этапе.
Почему ИИ-ассистентам нужна четкая структура работы в крупных проектах
ИИ-ассистенты для программирования в целом эффективны при выполнении небольших и изолированных задач. Разработчик может поручить ИИ создать вспомогательную функцию, написать модульный тест, переработать отдельный метод или создать простой программный интерфейс, а затем самостоятельно проверить полученный результат.
В крупных программных проектах задачи значительно сложнее. Например, изменение существующего процесса оплаты может затрагивать программные интерфейсы, структуру базы данных, правила авторизации, обработку событий, ведение журналов, мониторинг и взаимодействие с внешним платежным провайдером.
При этом программный код составляет только часть задачи. Новая функциональность должна соответствовать существующей архитектуре и сохранять действующие бизнес-правила.

Многие из этих правил невозможно определить только по тому фрагменту кода, который необходимо изменить: необходимые ограничения и зависимости могут быть распределены между несколькими компонентами системы, документацией и связанными бизнес-процессами.
Кроме того, крупные проекты содержат множество файлов и взаимосвязанных компонентов, поэтому для корректной работы с ними ИИ-модели требуется учитывать значительный объем контекста.
Чем больше информации одновременно поступает в модель, тем сложнее ей выделять действительно важные зависимости. В результате модель может пропустить существенную деталь или сформировать предположение, которое не соответствует действующей логике системы.
ИИ-ассистент не получает все архитектурные, технические и бизнес-ограничения автоматически. Если команда не выстроила четкий процесс разработки с использованием ИИ, она может столкнуться со следующими проблемами:
- Отклонение от принятой архитектуры. Сгенерированный код решает текущую задачу, но не соответствует установленным архитектурным принципам.
- Дублирование логики. Ассистент создает новую реализацию вместо повторного использования уже существующего сервиса или компонента.
- Неучтенные граничные случаи. Основные пользовательские сценарии работают, но исключительные ситуации и ошибки остаются без внимания.
- Непредусмотренное поведение системы. Решения принимаются на основе предположений, а не согласованных требований.
- Пробелы в безопасности. Аутентификация, авторизация, валидация, обработка данных или чувствительные операции могут быть реализованы недостаточно тщательно.
- Непредсказуемые изменения. Разработчикам сложно понять, почему было принято то или иное решение в реализации.
- Сложное ревью. Проверяющим приходится восстанавливать требования по коду вместо того, чтобы сверять реализацию с явной спецификацией.
При использовании ИИ-ассистентов в крупных проектах особенно важно, чтобы вся команда опиралась на единый источник требований. Четкие спецификации, согласованные планы, ревью кода, тестирование и формальные критерии проверки помогают сохранять общий контекст и контролировать качество результата. ИИ ускоряет работу, но не должен самостоятельно принимать ключевые решения по реализации.
Что такое разработка на основе спецификаций (SDD) в проектах с использованием ИИ?
Разработка на основе спецификаций предполагает, что работа над новой функциональностью начинается с формализованного описания требований и только после этого переходит к реализации. Такой подход задает четкие границы задачи и фиксирует ожидаемый результат до начала разработки.
При использовании ИИ спецификация предоставляет ИИ-ассистенту необходимый контекст для работы над конкретной частью системы. Ассистент получает четко определенные требования, ограничения и критерии результата и поэтому меньше зависит от предположений при создании кода.
Для каждого функционального блока команда формирует три основных артефакта: спецификацию, план реализации и набор задач. Спецификация определяет, какую функциональность необходимо реализовать и какую бизнес-задачу она должна решать. План реализации описывает, каким образом новую функциональность следует встроить в существующую систему. Набор задач разбивает план на конкретные этапы разработки.
Эти материалы выполняют две функции: служат рабочими инструкциями для команды и предоставляют ИИ-ассистентам необходимый контекст. При этом специалисты создают и утверждают все три вида материалов до начала реализации.
Как правило, бизнес-аналитик или продуктовый менеджер подготавливает и проверяет спецификацию, а архитектор или технический руководитель разрабатывает план реализации. В некоторых случаях план может подготовить разработчик, после чего технический руководитель или архитектор проводит его проверку.
Команда хранит все спецификации, планы реализации и задачи в системе контроля версий проекта, обычно Git, вместе с исходным кодом. Такой подход связывает требования, технические решения и историю изменений в единой среде. В результате разработчики и ИИ-ассистенты получают доступ к единому источнику актуальной информации.
Для каждого функционального блока команда использует единый процесс: анализ требований, планирование, проектирование, реализация, тестирование и проверка кода. Если проверка выявляет необходимость изменений, команда сначала корректирует спецификацию и план реализации. После этого разработчики вносят соответствующие изменения в код. Такой порядок не позволяет коду становиться фактическим источником требований.
Тот же принцип команда применяет при обнаружении проблем после реализации. Сначала специалисты возвращаются к спецификации и уточняют требования к конкретной функциональности или системе в целом. Затем команда корректирует реализацию и повторно проверяет ее соответствие обновленным требованиям.
Цель спецификации заключается не в создании дополнительного объема документации. Качественная спецификация должна упрощать инженерные решения и снижать неопределенность перед началом разработки. Поэтому она должна фиксировать именно те требования, ограничения и условия, которые инженеру необходимо понимать до внесения изменений в рабочий код.
При использовании ИИ такой подход приобретает особое значение. Вместо неоднозначного запроса команда предоставляет ИИ-ассистенту согласованную спецификацию, план реализации и четко определенные задачи. Ассистент получает необходимый контекст и работает в установленных командой границах.
Такой подход меняет роль ИИ в процессе разработки. ИИ-ассистент помогает реализовать уже принятое инженерное решение, тогда как ключевые требования, архитектурные решения и правила работы системы определяют специалисты.
Как СКЭНД использует разработку на основе спецификаций с ИИ-ассистентами
СКЭНД использует разработку на основе спецификаций как практический механизм контроля при работе с ИИ-ассистентами. Такой подход дает разработчикам и ИИ достаточно контекста для реализации функциональности, при этом технические и бизнес-решения остаются под контролем специалистов.

Спецификация функциональности создается до начала разработки
До начала реализации команда определяет цель функциональности, бизнес-контекст, ожидаемый пользовательский сценарий, функциональные требования, технические ограничения, зависимости, риски, критерии приемки и проверки.
Этот этап особенно важен, поскольку многие проблемы в разработке связаны не с самим написанием кода. Например, задача «добавить уведомления для клиентов» на первый взгляд кажется простой. Но при реализации в рабочей системе возникает целый ряд вопросов:
- Какие события должны запускать уведомления?
- Какие пользователи должны их получать?
- Что должно происходить при ошибке доставки?
- Уведомления должны отправляться синхронно или асинхронно?
- Могут ли клиенты изменять настройки уведомлений?
- Какие данные должны содержаться в уведомлении?
- Есть ли требования или ограничения, связанные с безопасностью?
- Существует ли в системе готовый сервис уведомлений?
- Как обрабатывать повторяющиеся события?
Спецификация позволяет выявить и проработать эти вопросы еще до генерации кода. Кроме того, она становится единым ориентиром для последующей реализации и ревью.
Спецификации хранятся в Git-репозитории проекта
В СКЭНД команда хранит спецификации функциональности непосредственно в Git-репозитории проекта, а не в отдельных диалогах с ИИ, запросах к моделям или разрозненных документах.
Такой подход создает единый источник актуальных требований для разработчиков, специалистов по проверке качества, тестировщиков и ИИ-ассистентов. Команда отслеживает изменения в спецификациях вместе с изменениями в исходном коде, сохраняет контекст принятых решений и на всех этапах разработки использует согласованный набор требований.
Хранение спецификаций в Git также делает их частью истории проекта. При проверке изменений или последующем анализе реализации команда может сопоставить конкретные изменения в коде с требованиями и техническими решениями, на основании которых эти изменения были выполнены.
При разработке с использованием ИИ единый контекст приобретает особое значение. ИИ-ассистент получает доступ к актуальным спецификациям и содержимому репозитория и работает в контексте всего проекта, а не опирается на изолированные инструкции из отдельных диалогов. Такой подход снижает зависимость результата от контекста конкретного сеанса работы и помогает сохранять согласованность реализации с требованиями проекта.
Планы реализации проходят ревью и согласование
Спецификация определяет, что нужно реализовать, а план реализации — как именно это будет сделано и как новая функциональность впишется в архитектуру проекта. К разработке с использованием ИИ стоит переходить только после того, как такой план прошел ревью и был согласован.
В плане можно зафиксировать затрагиваемые модули и сервисы, изменения API и базы данных, точки интеграции, стратегию тестирования, требования к миграции и другие технические решения.
Этот этап становится важной точкой контроля. Без согласованного плана ИИ-ассистент может выбрать технически удобный вариант реализации, который при этом будет противоречить существующей архитектуре. Если же ключевые архитектурные решения приняты заранее, генерация кода начинается уже в рамках понятного и утвержденного подхода.
В результате ИИ-ассистент помогает разработчикам реализовать согласованное решение, а не самостоятельно определяет, как следует изменять архитектуру системы.
Такой подход также упрощает ревью кода. Инженеры могут сопоставить сгенерированные ИИ изменения с утвержденным планом и быстро проверить, соответствует ли реализация выбранному техническому подходу.
Критерии приемки и проверки помогают контролировать качество
Для каждой функциональности команда должна заранее определить, какие результаты будут считаться успешной реализацией.
Критерии приемки описывают ожидаемый результат с точки зрения бизнес-задачи и функциональных требований. Критерии проверки определяют способы, с помощью которых команда подтверждает соответствие реализации спецификации, архитектурным ограничениям и другим требованиям проекта.
При разработке с использованием ИИ такое разграничение приобретает особое значение. Сгенерированный код может выглядеть корректным, но при этом не соответствовать одному или нескольким критически важным требованиям.
Например, реализация может успешно проходить модульные тесты, но нарушать требования к взаимодействию с другими компонентами системы. Основной пользовательский сценарий может работать корректно, тогда как повторная попытка после возникновения ошибки будет обрабатываться неправильно. Интерфейс может соответствовать ожидаемому виду, но при этом система может предоставить пользователю доступ к данным, на просмотр которых у него нет соответствующих прав.
Четко определенные критерии проверки позволяют системно выявлять такие проблемы. Команда использует их как основу для проверки кода, автоматизированного и ручного тестирования, а также итоговой оценки реализации перед включением новой функциональности в рабочую кодовую базу.
Наш процесс разработки ПО с использованием ИИ
СКЭНД использует структурированный подход к разработке ПО с помощью ИИ, который связывает бизнес-требования, технические решения и итоговую проверку результата. На каждом этапе предусмотрена контрольная точка, после которой команда принимает решение о переходе к следующему шагу.
- Анализ задачи. Команда изучает бизнес-задачу, существующее поведение системы, зависимости, ограничения и потенциальные риски. На этом этапе формируется необходимый контекст для дальнейшей работы.
- Спецификация функциональности. Команда фиксирует ожидаемое поведение, функциональные требования, технические ограничения, критерии приемки и проверки. Спецификация становится основным ориентиром для реализации и последующего ревью.
- Проектирование архитектуры и планирование реализации. Разработчики определяют, как новая функциональность должна вписаться в существующую архитектуру. В плане реализации фиксируются затрагиваемые компоненты и сервисы, интеграции, изменения данных и ключевые технические решения.
- Ревью и согласование плана. До начала разработки команда проверяет план реализации, уточняет оставшиеся вопросы и согласовывает выбранный подход.
- Реализация с помощью ИИ. Разработчики используют ИИ-ассистентов для генерации, изменения и рефакторинга кода в соответствии с утвержденной спецификацией и планом реализации. ИИ ускоряет работу, но не принимает архитектурные или бизнес-решения самостоятельно.
- Ревью кода специалистами. Разработчики проводят ревью кода с использованием ИИ и проверяют корректность, поддерживаемость, безопасность, соответствие архитектуре и стандартам проекта. Отдельно оценивается, соответствует ли реализация утвержденному плану.
- Автоматизированное и ручное тестирование. Команда выполняет необходимые тесты и ручные проверки. Они охватывают ожидаемое поведение, граничные случаи, интеграции и другие риски, характерные для конкретного проекта.
- Проверка по критериям приемки. Готовая реализация сверяется с критериями, определенными в спецификации. Это позволяет убедиться, что результат соответствует как бизнес-требованиям, так и установленным техническим условиям.
- Актуализация спецификации и плана. Если в ходе реализации или проверки были внесены изменения, спецификацию и план реализации необходимо обновить. Если изменения выходят за рамки текущего функционального блока, может потребоваться корректировка общей спецификации проекта, пересмотр ранее реализованных компонентов или добавление новых требований.
- Обновление документации и истории Git. Команда актуализирует связанную документацию и фиксирует завершенную работу в Git. Благодаря этому сохраняется связь между спецификацией, реализацией, ревью и итоговым результатом.
ИИ-инструкции для планирования, разработки и проверки
СКЭНД дополняет ИИ-ассистентов собственными ИИ-инструкциями, которые адаптированы к процессам разработки конкретного проекта. Каждая такая инструкция содержит структурированный набор правил для выполнения определенной инженерной задачи и задает единый порядок работы с ИИ.

Такой подход позволяет отказаться от разрозненных запросов и использовать единые правила при планировании, разработке и проверке изменений. ИИ-ассистент получает четкие инструкции и действует в соответствии с установленным процессом разработки, требованиями проекта и критериями проверки.
Навыки для анализа и планирования
Навыки для планирования помогают ИИ-ассистенту анализировать существующий код, находить связанные компоненты и зависимости, а также готовить план реализации на основе спецификации проекта.
Команда может заранее определить, какую информацию ИИ-ассистент должен изучить, какие вопросы проанализировать и в каком формате представить результаты. Такой подход помогает разработчикам получать более последовательные и структурированные планы реализации, а также выявлять потенциальные проблемы до начала разработки.
Для стандартизации работы ИИ-ассистентов команда разработки СКЭНД использует:
- Superpowers
- Grill-me, grill-with-docs, Wayfinder
- Spec-kit
- OpenSpec
Навыки для реализации
Навыки для реализации помогают ИИ-ассистенту при написании, изменении и переработке программного кода. Такие навыки могут содержать стандарты разработки конкретного проекта, архитектурные правила, соглашения по работе с репозиторием и требования к структуре и качеству кода.
Разработчики команды СКЭНД используют такие навыки совместно с утвержденной спецификацией функциональности и планом реализации. Такой подход задает четкие границы работы ИИ-ассистента и снижает вероятность появления кода, который не соответствует архитектуре проекта или установленным правилам разработки.
Для реализации функциональности команда разработки СКЭНД использует, в частности, следующие навыки и технологии:
- Superpowers;
- Implement, TDD, Code-review;
- Parallel subagents.
Навыки для проверки
Навыки для проверки помогают ИИ-ассистенту оценивать готовую реализацию на соответствие спецификации функциональности и установленным критериям проверки. В зависимости от задач проекта ИИ-ассистент может анализировать измененный код, выявлять неучтенные требования, предлагать дополнительные сценарии тестирования и обнаруживать потенциальные граничные случаи.
Такие навыки не заменяют проверку кода специалистами и автоматизированное тестирование. Они создают дополнительный уровень контроля и помогают разработчикам выявлять недочеты до включения изменений в рабочую среду.
Команда разработки СКЭНД переносит повторяющиеся инженерные практики в формат переиспользуемых ИИ-навыков. Такой подход помогает сделать процесс разработки с использованием ИИ более единообразным в разных командах и проектах. ИИ-ассистент следует заранее определенным процедурам и критериям, а результат меньше зависит от индивидуального подхода разработчика к формулированию запросов.
При этом ответственность за технические решения, проверку результата и окончательное согласование изменений остается за разработчиками.
Безопасность и контроль при разработке ПО с использованием ИИ
Безопасная разработка ПО с использованием ИИ должна регулироваться так же, как и любой другой инженерный процесс, способный влиять на рабочие системы. Важно избегать неконтролируемой генерации кода и предусматривать четкие контрольные точки до принятия изменений. Подход СКЭНД включает:

- Согласование плана реализации до начала значительных изменений;
- Обязательное ревью изменений, сгенерированных с помощью ИИ;
- Дополнительную проверку функциональности, связанной с безопасностью;
- Автоматизированное и ручное тестирование ПО;
- Четко заданные критерии приемки и проверки;
- Прозрачную историю изменений в Git;
- Воспроизводимые процессы проверки;
- Соблюдение единых архитектурных ограничений.
Особого внимания требует программная логика, связанная с безопасностью. Аутентификация и авторизация, обработка платежей и персональных данных, шифрование, управление правами доступа, настройка инфраструктуры, взаимодействие с внешними системами и соблюдение требований EU AI Act требуют дополнительной проверки независимо от того, разработал код специалист или его создал ИИ-ассистент.
Цель такого подхода заключается не в том, чтобы считать код, созданный с помощью ИИ, изначально небезопасным. Основная задача заключается в том, чтобы не считать такой код автоматически корректным только потому, что он успешно компилируется, проходит ограниченный набор тестов или выглядит правильным при поверхностной проверке.
Четко выстроенный процесс контроля формирует систему правил и проверок, которая позволяет своевременно выявлять потенциальные проблемы и оценивать риски. Такой подход создает необходимые условия для безопасного использования ИИ при разработке программного обеспечения и его применения в рабочих средах.
Где разработка на основе спецификаций с ИИ наиболее эффективна
Разработка на основе спецификаций с использованием ИИ особенно эффективна в проектах, где компании важно обеспечить прозрачность процесса, предсказуемость результата и контроль качества.
В первую очередь такой подход подходит для крупных кодовых баз, над которыми одновременно работают несколько разработчиков и которые включают общие компоненты, взаимосвязанные сервисы и многочисленные интеграции.
В сложных системах даже небольшое изменение, созданное с помощью ИИ, может повлиять на работу других компонентов. Поэтому четкие требования, аудит исходного кода, согласованный план реализации и заранее определенные границы изменений помогают снизить риск непредвиденных последствий.
Во-вторых, особое значение этот процесс имеет при разработке программного обеспечения, критичного для бизнеса, поскольку ошибки в таких системах могут привести к существенным финансовым и операционным последствиям.
Разработка на основе спецификаций также подходит компаниям, которые планируют внедрить ИИ-ассистентов сразу в нескольких направлениях или подразделениях. Единый процесс планирования, реализации и тестирования позволяет снизить зависимость результата от индивидуального подхода отдельных разработчиков и установить общие правила использования ИИ.
Также стоит отметить, что для небольших прототипов и простых скриптов такой уровень формализации может быть избыточным. Однако по мере роста кодовой базы и усложнения архитектуры структурированный процесс разработки с использованием ИИ помогает командам повышать производительность без потери контроля над требованиями, архитектурой и качеством программного обеспечения.
Наши ИИ-ассистенты для разработки
СКЭНД использует различные ИИ-ассистенты для программирования и ИИ-модели, включая GitHub Copilot, Cursor, Claude Code, OpenCode и OpenAI Codex. Выбор инструмента зависит от проекта, среды разработки и характера задач — мы не ограничиваемся одной платформой.

При этом выбор ИИ-ассистента не определяет безопасность и качество разработки сам по себе. Независимо от того, создает ли ассистент новый код, анализирует существующую кодовую базу, разрабатывает тесты или помогает переработать отдельные компоненты, команда применяет единый структурированный процесс.
ИИ-ассистент работает на основе спецификации функциональности, согласованного плана реализации и необходимого контекста проекта. После получения результата разработчики проверяют внесенные изменения, запускают необходимые тесты и оценивают реализацию по заранее определенным критериям.
Почему разработка на основе спецификаций важнее качества промптов
Хорошо сформулированный запрос к ИИ помогает ассистенту быстро создать программный код, но сам по себе не заменяет полноценный инженерный процесс. В крупном программном проекте одной инструкции о том, какую функциональность необходимо реализовать, недостаточно. ИИ-ассистенту необходимы четкие требования, контекст проекта, архитектурные ограничения и заранее определенные критерии проверки результата.
Разработка на основе спецификаций обеспечивает необходимую структуру. До начала реализации команда определяет, какую задачу должна решать функциональность, каким образом она должна взаимодействовать с существующей системой и по каким критериям команда будет оценивать результат.
Такой подход меняет роль ИИ в разработке программного обеспечения. Вместо того чтобы поручать ИИ-ассистенту самостоятельно интерпретировать неоднозначный запрос и принимать значимые инженерные решения, команда предоставляет ему согласованную спецификацию и необходимые ограничения. После этого ИИ-ассистент помогает воплотить уже принятые технические решения в программном коде.
Таким образом, хорошо сформулированный запрос помогает получить программный код, тогда как разработка на основе спецификаций позволяет создавать код в заданном контексте и проверять его соответствие установленным требованиям.
Почему СКЭНД
СКЭНД помогает компаниям внедрять ИИ-ассистентов в процессы разработки, сохраняя при этом контроль над качеством кода, архитектурой и безопасностью. В рамках такой работы специалисты компании выстраивают структурированный процесс с учетом требований конкретного проекта и уже используемых практик разработки.

В частности, команда разрабатывает спецификации функциональности, определяет процессы реализации и проверки, настраивает работу с Git и создает собственные ИИ-навыки для планирования, разработки кода, тестирования и проверки результатов.
При этом компания работает не только с новыми проектами, но и с уже существующими системами. Благодаря большому опыту модернизации систем наши специалисты помогают внедрять практики разработки с использованием ИИ и подход разработки на основе спецификаций в масштабные корпоративные проекты с учетом существующей архитектуры и инженерных практик.
Часто задаваемые вопросы
Что такое разработка на основе спецификаций?
Разработка на основе спецификаций — это подход, при котором работа над функциональностью начинается с четко сформулированной спецификации еще до написания кода. Для ИИ-ассистентов такая спецификация определяет бизнес-цель, ожидаемое поведение, ограничения, зависимости, риски, критерии приемки и порядок проверки результата.
Как ИИ-ассистенты используются в крупных программных проектах?
ИИ-ассистенты могут помогать на этапах анализа, планирования, реализации, тестирования, подготовки документации и проверки. Однако в крупных проектах они должны работать в рамках утвержденных спецификаций и согласованных планов реализации, а сгенерированные изменения — проходить ревью специалистами перед включением в основную кодовую базу. Те же принципы применяются и при работе с крупными корпоративными legacy-системами.
Как безопасно использовать ИИ-ассистентов в крупных программных проектах?
Безопасное использование ИИ-ассистентов требует четко выстроенного процесса контроля. Он должен включать согласованные планы реализации, ревью кода специалистами, тестирование, проверки безопасности, контроль доступа и явно определенные критерии проверки. Использование ИИ не должно обходить существующие в проекте процессы и требования безопасности.
Как вы проверяете код, сгенерированный ИИ?
Код, сгенерированный ИИ, проверяется по критериям приемки и заранее определенным критериям проверки, проходит ревью, автоматизированное и ручное тестирование, проверки безопасности и оценку готовности к использованию в рабочей среде. При этом оценивается не только то, компилируется ли код или проходит ли он ограниченный набор тестов, а прежде всего его соответствие требованиям, для выполнения которых он был создан.
Помогает ли разработка на основе спецификаций безопасно использовать ИИ-ассистентов?
Да. Разработка на основе спецификаций дает разработчикам, ревьюерам, QA-инженерам, представителям продукта и ИИ-ассистентам единый источник актуальной информации. Связывая в Git спецификации, планы реализации, изменения кода и результаты проверки, команда может сократить количество неконтролируемых изменений, сгенерированных ИИ, и сделать процесс разработки более предсказуемым. Использование проверенных open-source и собственных ИИ-навыков также помогает обеспечить соблюдение лучших практик безопасности при работе с кодом.