В требованиях к 1С‑проектам постоянно мелькают аббревиатуры UR, FR, NFR. Для новичка это выглядит как «магия для галочки», хотя на деле это очень удобный способ навести порядок в хотелках, функциях и ограничениях системы.
Разберём по‑простому:
·
UR — чего хочет пользователь/бизнес.
·
FR — что конкретно должна делать система.
·
NFR — насколько хорошо всё это должно работать (скорость, надёжность и т.п.).
UR: User Requirements — пользовательские требованияЭто
желания и потребности пользователя, сформулированные его языком, без техподробностей.
Отвечают на вопрос:
«Что пользователь хочет уметь делать/получать?» Примеры:
· «Закупщик должен видеть статус договора без звонков коллегам».
· «Менеджер по продажам должен видеть просроченные счета в одном списке».
Для UR важно:
· речь идёт о
боли и потребности, а не о форме и кнопках;
· нет слов типа «таблица 1С», «регистр», «HTTP‑запрос» — только бизнес‑язык;
· обычно собираются через интервью, анкеты, воркшопы.
Проверяет UR бизнес:«Это реально решает боль пользователя или просто красиво звучит?»
FR: Functional Requirements — функциональные требованияЭто уже
описание поведения системы: что конкретно будет делать 1С, какие функции выполнять.
Отвечают на вопрос:
«Как система будет реализовывать это желание?»Формат:
«Система должна…» + действие + условие.
Примеры для 1С:ERP:
· «Система должна автоматически менять статус договора на “Согласован” при получении утверждения от директора и отправлять уведомление закупщику по email».
· «Система должна формировать отчёт “Просроченные поставки” за выбранный период с фильтром по поставщикам и статусам».
Особенности FR:
· описывают
HOW — как именно будет реализовано пользовательское требование;
· лежат в основе ТЗ, use cases, прототипов экранов;
· по ним пишут задачи разработчикам и тестировщикам.
Проверяет FR разработчик:«Функция работает так, как описано? Все условия учтены?»
NFR: Non‑Functional Requirements — нефункциональные требованияЭто требования к
качеству работы системы, а не к её логике.
Отвечают на вопрос:
«Насколько быстро, надёжно, безопасно это должно работать?»Примеры:
· «Уведомление должно отправляться за ≤2 секунд при нагрузке до 50 одновременных пользователей».
· «Отчёт “Просроченные поставки” формируется не дольше 5 секунд при объёме данных до 1 млн строк».
· «Доступ к разделу “Закупки” только у ролей “Закупщик” и “Директор”, все действия логируются».
Особенности NFR:
· описывают
HOW WELL — насколько хорошо система выполняет функции;
· часто относятся к производительности, безопасности, масштабируемости, удобству интерфейса;
· базируются на техспеках, SLA, результатах нагрузочных тестов.
Проверяет NFR QA/архитектор:«Укладываемся ли мы в нужные секунды/пользователей/ограничения?»
Сводная таблица: UR vs FR vs NFR на примере 1С:ERPТип | Полное название | Что описывает | Пример в 1С:ERP | Откуда берём |
UR | User Requirements | Потребности пользователя (WHAT) | «Контроль просрочек поставок» | Интервью, анкеты |
FR | Functional Requirements | Поведение системы (HOW) | «Автоуведомление по email при просрочке >3 дней» | Use cases, прототипы |
NFR | Non‑Functional Requirements | Качества системы (HOW WELL) | «Уведомление за <1 сек при 100 пользователях» | Техспеки, нагрузочные тесты |
Как это связано с бизнес‑целями: небольшая иерархияПример:
Бизнес‑цель:«Сократить время цикла закупки на 30%».
Дальше:
·
UR‑001: «Закупщик видит статус договора без звонков коллегам».
o
FR‑Закупки‑001: «Система автоматически меняет статус договора и отправляет email ответственному при согласовании».
o
NFR‑Perf‑001: «Уведомление отправляется за ≤2 секунд при 50 одновременных пользователях».
·
UR‑002: «Закупщик может быстро сравнивать цены разных поставщиков».
o
FR‑Закупки‑002: «Система строит таблицу сравнения цен по номенклатуре и поставщикам».
o
NFR‑Usability‑001: «Таблица корректно отображается на ноутбуке и планшете (responsive‑верстка)».
Так появляется цепочка:
·
бизнес‑цель → UR → FR → NFR → задачи в 1С.Как использовать UR/FR/NFR в реестре требованийРеестр требований — это таблица, где каждый пункт имеет:
· ID;
· тип (UR / FR / NFR);
· статус;
· критерий приёмки.
Пример:
ID | Тип | Статус | Критерий приёмки |
UR‑001 | User | Уточнено | Demo с закупщиком |
FR‑Закупки‑001 | Func | Реализовано | Unit‑тест + интеграционное тестирование |
NFR‑Perf‑001 | NonFunc | На тестах | Нагрузочный тест на 50 пользователей |
Зачем это аналитику:
· видно, какая хотелка уже разобрана и во что она превратилась в системе;
· можно отследить, нет ли FR/NFR, за которыми не стоит реальная пользовательская потребность (UR);
· удобно строить traceability от идеи до кода и тестов.
Зачем вообще заморачиваться с UR/FR/NFRЕсли всё писать «в одну кучу», возникают типичные проблемы:
· бизнес не понимает ТЗ, потому что всё написано техническим языком;
· разработчики получают размытые формулировки «должно работать быстро»;
· QA не знает, как проверять: «быстро — это сколько?».
Разделение на UR / FR / NFR даёт:
· бизнесу — язык потребностей;
· разработчикам — язык функционала;
· тестировщикам и архитекторам — язык качества и ограничений.
Для аналитика это удобный «скелет»:
· сначала фиксируем
UR (что болит и чего хотят люди);
· потом делаем из них
FR (что должна делать 1С);
· и дополняем
NFR (как хорошо это должно работать).
В итоге требования перестают быть «списком хотелок» и превращаются в управляемый набор: от бизнес‑идеи до кода и метрик.