Skip to content

Как написать FRD: руководство по функциональным требованиям и примеры

FRD, или Functional Requirements Document, отвечает на вопрос, который следует за определением продукта: как должна вести себя система. Он переводит продуктовые требования в конкретные, тестируемые описания поведения системы — входы, выходы, бизнес-правила, обработку ошибок и потоки данных.

Там, где PRD говорит «пользователи должны иметь возможность сбросить пароль», FRD описывает точный сценарий: пользователь нажимает «Забыли пароль», вводит email, получает токен, действительный 30 минут, задаёт новый пароль, соответствующий правилам сложности, и видит экран подтверждения. FRD также описывает, что происходит, когда email не найден, когда токен истёк и когда новый пароль не проходит валидацию.

Key insight

FRD — это контракт между продуктом и инженерами. Продукт определяет, что строить (PRD), а FRD определяет, как система должна себя вести, чтобы инженеры могли её реализовать, а QA — проверить.

Кто пишет и для кого

Владелец FRD — обычно бизнес-аналитик, технический продакт-менеджер или системный аналитик — специалист, способный перевести бизнес-потребности в точные описания поведения системы.

ЧитательЧто ищет в документе
РазработчикиТочное поведение, потоки данных, бизнес-правила, граничные случаи
QA / тест-инженерыКритерии приёмки, ошибочные состояния, тестируемые условия
АрхитекторыТочки интеграции, модели данных, границы системы
UX-дизайнерыСценарии взаимодействия, правила валидации, сообщения об ошибках
Проектные менеджерыГраницы скоупа, маппинг зависимостей

Key insight

В отличие от BRD (его читают руководители) или PRD (его читает продуктовая команда), FRD — технический документ. Его основные читатели — те, кто будет строить и тестировать систему.

Когда FRD нужен — а когда нет

FRD нужен, когда:

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

FRD не нужен, когда:

  • Небольшая agile-команда владеет всем продуктом и работает по user stories с критериями приёмки
  • PRD достаточно детализирован, чтобы инженеры могли вывести функциональное поведение напрямую
  • Используется AI-Optimized PRD с фазами и тестируемыми результатами — PRD уже выполняет роль облегчённого FRD
  • Проект — прототип или proof of concept, где формальные спецификации замедлят обучение

На практике решение зависит от размера команды и организационной сложности. Стартап из пяти человек редко пишет FRD. Банк, строящий систему обработки платежей, пишет его всегда.

Что содержит FRD

Основные секции

Хорошо структурированный FRD обычно включает семь секций:

  1. Введение — цель документа, скоуп системы, определения терминов и ссылки на связанные документы (PRD, BRD, архитектурные документы). Введение устанавливает границы: что этот FRD покрывает и что явно исключает.

  2. Функциональные требования — ядро документа. Каждое требование описывает конкретное поведение системы с уникальным идентификатором, описанием, входами, выходами, бизнес-правилами и приоритетом.

    Хорошее функциональное требование соответствует пяти критериям:

    • Конкретное — нет пространства для интерпретации
    • Измеримое — можно проверить, выполнено ли оно
    • Атомарное — одно поведение на требование
    • Прослеживаемое — связано с бизнес-требованием или user story через идентификатор
    • Приоритизированное — must-have, should-have или nice-to-have

    Конвенция: «shall» для обязательных требований, «should» для опциональных. «The system shall validate the email format before sending the reset link» — однозначно. «The system should support SSO» — оставляет пространство для обсуждения скоупа.

  3. Нефункциональные требования — целевые показатели производительности, стандарты безопасности, SLA доступности, ожидания по масштабируемости и требования доступности. Эта секция описывает, насколько хорошо система должна работать, а не что она делает.

  4. Требования к данным — модели данных, связи между сущностями, словарь данных (имена полей, типы, ограничения, правила валидации) и политики хранения данных. Эта секция предотвращает ситуацию, когда разработчики обнаруживают в середине спринта, что критическое поле не было определено.

  5. Требования к интерфейсам — как система взаимодействует с пользователями (UI-спецификации), с другими внутренними системами (API, очереди сообщений) и с внешними сервисами (интеграции с третьими сторонами, потоки данных). Для проектов с большим количеством API эта секция может вырасти до отдельного API FRD.

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

  7. Приложения — вайрфреймы, мокапы UI, блок-схемы, диаграммы состояний, глоссарий и журнал изменений. Визуальные материалы размещаются здесь, а не инлайн — они поддерживают требования, но не должны заменять точные текстовые описания.

Key insight

Разница между хорошим и посредственным FRD — в секции 2: самих функциональных требованиях. Расплывчатые требования («система должна корректно обрабатывать ошибки») приводят к расплывчатым реализациям. Конкретные требования («система должна отобразить код ошибки E-401 с сообщением “Сессия истекла” и перенаправить на страницу входа в течение 3 секунд») приводят к тестируемому коду.

Написание функциональных требований: конвенция идентификаторов

Каждое требование в FRD получает уникальный идентификатор. Это обеспечивает прослеживаемость — от бизнес-требования к функциональному требованию и далее к тест-кейсу.

Распространённый формат:

IDТребованиеПриоритетИсточник
FR-001Система должна позволять пользователям регистрироваться с email и паролемMustPRD §3.1
FR-002Система должна отправлять письмо для подтверждения в течение 60 секунд после регистрацииMustPRD §3.1
FR-003Система должна блокировать аккаунт после 5 последовательных неудачных попыток входаMustSEC-01
FR-004Система может поддерживать вход через Google OAuth 2.0ShouldPRD §3.2

Колонка «Источник» связывает каждое требование с PRD, BRD или политикой безопасности. Эта прослеживаемость важна в регулируемых отраслях, где аудиторы должны убедиться, что каждая бизнес-потребность покрыта функциональным требованием, а каждое функциональное требование — тест-кейсом.

Варианты FRD

ВариантКогда использоватьКлючевая характеристика
Стандартный FRDКорпоративные системы, сложная бизнес-логикаПолная структура из семи секций
API FRDAPI-продукты, микросервисыФокус на эндпоинтах, схемах, кодах ошибок
Облегчённый FRDAgile-команды, меньший скоупТолько таблица требований + критерии приёмки

API FRD — вариант для систем, где основной интерфейс — API, а не пользовательский интерфейс.

FRD и другие документы требований

FRD занимает техническую сторону в цепочке документов требований:

MRD → BRD → PRD → FRD → SRD
ДокументВопросУровень
MRD«Что нужно рынку?»Стратегический
BRD«Зачем бизнесу инвестировать?»Стратегический
PRD«Что мы строим?»Тактический
FRD«Как должна вести себя система?»Технический
SRD/SRS«Каковы полные технические спецификации?»Технический

FRD принимает входные данные от PRD (или напрямую от BRD в сценариях аутсорсинга) и формирует выходные данные, которые разработчики используют для написания кода, а QA — для написания тестов. В некоторых организациях FRD и SRS объединяются в один документ.

  • PRD → FRD: PRD говорит «пользователи могут сбросить пароль». FRD определяет каждый шаг, валидацию, ошибочное состояние и граничный случай этого сценария.
  • BRD → FRD (аутсорсинг): Когда внешний подрядчик строит систему, заказчик предоставляет BRD + FRD. FRD заменяет PRD, потому что подрядчику не нужна продуктовая стратегия — ему нужны точные спецификации поведения.

Типичные ошибки

1. Смешение требований с дизайном. «Кнопка сброса должна быть синей, высотой 44px, расположена в правом верхнем углу» — это дизайн-спецификация, а не функциональное требование. FRD описывает поведение, дизайн-система описывает внешний вид.

2. Нетестируемые требования. «Система должна быть удобной для пользователя» невозможно проверить. «Система должна позволять новому пользователю завершить регистрацию менее чем за 3 минуты» — проверяемое утверждение.

3. Пропущенные ошибочные состояния. Основной сценарий (happy path) легко описать. Ценность FRD — в покрытии того, что происходит, когда что-то идёт не так: невалидный ввод, истёкшие сессии, сетевые сбои, параллельные изменения и лимиты запросов.

4. Отсутствие идентификаторов требований. Без идентификаторов требования невозможно связать с тест-кейсами, запросы на изменения не могут ссылаться на конкретные пункты, а анализ влияния изменений становится гаданием.

5. FRD написан слишком рано. FRD, написанный до утверждения PRD, рискует специфицировать поведение для функций, которые будут вырезаны. FRD следует за PRD, а не наоборот.

Тренд 2026: FRD как входные данные для AI-агентов разработки

В 2026 году FRD служит двойной цели. Инженеры по-прежнему читают его, но AI-агенты разработки (Cursor, Claude Code, GitHub Copilot Workspace) также используют его как структурированные инструкции.

Это меняет способ написания FRD:

  • Требования хранятся в markdown-файлах в репозитории, а не в Confluence или Google Docs, чтобы AI-агенты могли читать их вместе с кодом.
  • Каждое требование включает критерии приёмки как тестируемые условия, которые AI-агенты могут напрямую преобразовать в тест-кейсы.
  • FRD и техническая спецификация всё больше сливаются в один документ на фичу, снижая переключение контекста как для людей, так и для AI-агентов.

Тренд не меняет содержание FRD — он меняет место хранения и формат.

Ресурсы