Кладовочка

О разном, чтобы было под рукой онлайн

Справочник аналитика: требования к ПО

Handbook / Cheatsheet

Полное руководство по работе с требованиями к программному обеспечению: от классификации и сбора до управления изменениями и шаблонов документов.

Основано на: Handbook of Requirements and Business Analysis (Bertrand Meyer, Springer, 2022), Software Requirements (Wiegers & Beatty, 2013), BABOK v3 (IIBA, 2015), SWEBOK v4 (IEEE, 2024), ISO/IEC/IEEE 29148:2018, ГОСТ 34.601-90, FURPS+ (Grady, 1992), и практическом опыте.


Определения — базовый глоссарий

Термин Определение
Требование (Requirement) Релевантное утверждение о Project, Environment, Goals или System — которое должно быть выполнено системой (ISO/IEC/IEEE 29148:2018).
PEGS-модель Фреймворк классификации требований по 4 измерениям: Project, Environment, Goals, System (Meyer, 2022).
FURPS+ Модель классификации нефункциональных требований: Functionality, Usability, Reliability, Performance, Supportability + (Grady, 1992).
Функциональное требование «Система должна делать X» — поведение, реакция на вход, бизнес-правило.
Нефункциональное требование «Система должна делать X со свойством Y» — производительность, безопасность, надёжность.
Ограничение (Constraint) Фиксированное условие, которое нельзя изменить (бюджет, стек, регуляторика).
Трассируемость (Traceability) Возможность проследить связь требования → источник → цель → тест-кейс в обоих направлениях.
Атрибут требования Метаданные требования: ID, приоритет, статус, версия, источник, сложность.
Валидация «Правильное ли мы строим?» — проверка требований со стейкхолдерами.
Верификация «Правильно ли мы строим?» — проверка соответствия реализации требованиям.
Acceptance Criteria (AC) Условия, при которых требование считается выполненным. Формат: Given-When-Then.
MVP (Minimum Viable Product) Минимальная версия продукта с достаточными функциями для ценности и обратной связи.
User Story «Как [роль], я хочу [действие], чтобы [цель]» — стандарт Agile-требований.
Use Case Формализованный сценарий взаимодействия пользователя с системой с потоками событий.
User Persona Архетипический портрет пользователя: цели, боли, поведение, контекст.
ADR (Architecture Decision Record) Документ, фиксирующий архитектурное решение и его обоснование.
Definition of Done (DoD) Критерии готовности задачи/требования для всей команды.
SRS (Software Requirements Specification) Спецификация требований к программному обеспечению.
Change Request (CR) Формальный запрос на изменение утверждённых требований.

Ключевые источники и стандарты

Стандарт / Книга Полное название Применение
ISO/IEC/IEEE 29148:2018 Systems and Software Engineering — Life Cycle Processes — Requirements Engineering Основной международный стандарт по процессам требований. Определяет структуру, атрибуты, критерии качества.
SWEBOK v4 Software Engineering Body of Knowledge (IEEE, 2024) Глава «Requirements Engineering» — полный референс знаний.
BABOK v3 Business Analysis Body of Knowledge (IIBA, 2015) Бизнес-анализ: 30+ техник, 6 зон знаний.
PMBoK Guide 7th ed. Project Management Body of Knowledge (PMI, 2021) Управление требованиями в контексте проекта.
ГОСТ 34.601-90 Информационная технология. Стадии создания АС Российский стандарт: стадии ТЗ, ЭП, ТП, РД.
ГОСТ Р 57193-2016 Системная инженерия. Процессы ЖЦ систем Процессы системной инженерии для крупных проектов.
FURPS+ Functionality, Usability, Reliability, Performance, Supportability+ (Grady, 1992) Модель классификации атрибутов качества ПО.
Bertrand Meyer, 2022 Handbook of Requirements and Business Analysis (Springer) PEGS-модель, Standard Plan, 14 критериев качества.
Wiegers & Beatty, 2013 Software Requirements (3rd ed., Microsoft Press) Классика: 10 техник сбора, чеклисты, шаблоны SRS.
Cockburn, 2001 Writing Effective Use Cases Use Case-стандарт: полный формат, шаблоны.
Patton, 2014 User Story Mapping Agile-требования, карты историй.
Adzic, 2012 Specification by Example Требования через примеры и приёмочные тесты.

Часть 1: Виды требований. Модели классификации

1.1 PEGS-модель (Meyer, 2022)

Фреймворк для первичной классификации любого требования. Каждое требование относится ровно к одному из четырёх измерений.

Компонент Что описывает Пример требования Код
Project Задачи, ресурсы, сроки, персонал, бюджет «Первая версия — к 31.10.2026, команда — 5 разработчиков» P.01
Environment Ограничения, допущения, законы, внешние системы, стандарты «GDPR применим; пропускная способность сети ≥ 1 Гбит/с» E.01
Goals Бизнес-цели, выгоды, KPI «Сократить среднее время обработки заявки на 20%» G.01
System Поведение, функции, интерфейсы, данные «После 5 неудачных попыток входа — блокировка на 15 минут» S.01

Принцип: каждое требование — ровно один PEGS-компонент. Никаких пересечений. Это основа трассируемости.

1.2 FURPS+ — модель атрибутов качества

Модель Grady (HP, 1992) для классификации нефункциональных требований.

Категория Атрибуты Пример
Functionality Функции, безопасность, точность, совместимость «Система поддерживает ролевой доступ: администратор, менеджер, пользователь»
Usability Удобство, обучаемость, эстетика, доступность «Новый пользователь выполняет задачу за ≤ 3 минут после 15 мин обучения»
Reliability Доступность, отказоустойчивость, восстанавливаемость «Доступность ≥ 99.9%, RTO ≤ 1 час, RPO ≤ 15 минут»
Performance Скорость, пропускная способность, время отклика «Время отклика ≤ 200 мс для 95% запросов, 1000 TPS»
Supportability Тестируемость, расширяемость, документированность «Система логирует все ошибки в stdout в формате JSON»
+ (дополнительно) Ограничения дизайна, интерфейсов, физические, юридические «Соответствие 152-ФЗ, AES-256, UI — по макету Figma v3»

1.3 Традиционная классификация (по уровню абстракции)

Уровень Описание Пример PEGS-маппинг FURPS+
Бизнес-требования Цели организации: «зачем?» «Увеличить долю рынка на 5%» G —
Пользовательские требования Что нужно пользователю «Пользователь может отменить заказ в течение 1 часа» S, G F
Функциональные требования Что система делает «Система отправляет email-уведомление при смене статуса» S F
Нефункциональные требования Как система это делает «Время загрузки страницы ≤ 2 с для 90% запросов» S P, U, R
Системные требования Технические характеристики «СУБД — PostgreSQL 16, сервер — Linux Ubuntu 24.04» E S, +
Ограничения Неизменяемые границы «Бюджет — 5 млн ₽, стек — только Python» P, E +

Часть 2: 14 критериев качества требований

Модель Bertrand Meyer (2022). Каждый критерий имеет код для быстрой ссылки в чек-листах.

Группа A: Содержательные критерии

# Критерий Определение Как проверить Типичная ошибка
A1 Correct (Корректность) Требование отражает реальную потребность стейкхолдера Cross-review со SME, workshops «Говорят, что нужно одно, а хотят другое»
A2 Justified (Обоснованность) Каждое требование трассируется к цели (G) или ограничению (E) Удалите orphan-requirements «Было бы неплохо» без трассировки
A3 Complete (Полнота) Покрыты все сценарии: normal, alternative, exceptional 6 видов полноты (см. ниже) Описан только happy path
A4 Consistent (Непротиворечивость) Нет противоречий между элементами Единый глоссарий, автоматическая проверка «Макс. время = 2 с» и «Мин. время = 3 с»

6 видов полноты (Meyer, 2022)

  1. Сценарная полнота — описаны normal, alternative, exceptional flows
  2. Интерфейсная полнота — описаны все внешние интерфейсы (user, API, hardware)
  3. Командно-запросная полнота — все операции: create, read, update, delete (CRUD) + query
  4. Исключительные ситуации — ошибки сети, некорректные данные, пиковая нагрузка
  5. Данные — описаны форматы, структуры, ограничения всех входов/выходов
  6. Атрибуты качества — производительность, безопасность, надёжность, масштабируемость

Группа B: Коммуникативные критерии

# Критерий Определение Как обеспечить
B1 Unambiguous (Однозначность) Ровно одна интерпретация Формальные спецификации, запрет стоп-слов
B2 Readable (Читаемость) Понятно целевой аудитории Два документа: объяснение + спецификация
B3 Delimited (Ограниченность) Чёткие границы — что входит, что нет Явно опишите exclusions (scope out)

Группа C: Инженерные критерии

# Критерий Определение Как обеспечить
C1 Feasible (Выполнимость) Реализуемо в рамках бюджета, сроков, технологий Feasibility prototype, review с разработчиками
C2 Abstract (Абстрактность) Описывает ЧТО, а не КАК Дисциплина «Specification over Implementation»
C3 Traceable (Трассируемость) Двунаправленная связь с источником и результатом Используйте ID требований, матрицу трассировки

Группа D: Поддерживаемость

# Критерий Определение Как обеспечить
D1 Modifiable (Модифицируемость) Легко вносить изменения Автонумерация, хранение в трекере, а не в Word
D2 Verifiable (Проверяемость) Реализацию можно проверить тестом «Быстро» → заменить на «≤ 200 мс для 95%»

Группа E: Дополнительные

# Критерий Определение Метод
E1 Prioritized (Приоритизация) Есть приоритет по MoSCoW MoSCoW-матрица, Kano, RICE
E2 Atomic (Атомарность) Одно требование = один факт Не пишите «и/или» внутри требования

Часть 3: Техники сбора требований

3.1 Процесс выявления требований (итеративная модель)

flowchart LR subgraph S1["Шаг 1: Подготовка к сбору"] A1["Что выяснить?"] A2["У кого?"] A3["Каким методом?"] end subgraph S2["Шаг 2: Выявление требований"] B1["Интервью"] B2["Анкетирование"] B3["Мозговой штурм"] B4["Другие методы"] end subgraph S3["Шаг 3: Утверждение результатов"] C1["Протокол"] C2["Валидация"] C3["Утверждение"] end S1 --> S2 --> S3

Шаг 1. Подготовка к сбору:

  • Что необходимо выяснить? — анализ текущего описания требований, текущей реализации системы, выявление недостающих и недостаточно описанных требований.
  • У кого? Где? — список доступных источников (документация, артефакты) и стейкхолдеров.
  • Каким образом? — выбор оптимального метода выявления.

3.2 10 техник сбора требований

Интервью со стейкхолдерами

Когда: начало проекта, уточнение неясных зон, сбор контекста.

Правила проведения:

  1. Всегда ведите запись встречи (с согласия собеседника).
  2. Small talk для разрядки (2–3 вопроса, не затягивать).
  3. Начинайте с объявления проблематики.
  4. Следуйте плану, задавайте вопросы последовательно.
  5. Указывайте тайм-коды для каждого вопроса.
  6. Раскрывайте вопросы дополнительными вопросами — беседа должна быть живой.
  7. В конце подтвердите позицию собеседника закрытым вопросом: «Я правильно вас понял, что {тезис}?»

Шаблон протокола интервью:

ПРОТОКОЛ ИНТЕРВЬЮ
─────────────────────────────────────────────────────
Проект:          {Название проекта}
Дата проведения: {ДД.ММ.ГГГГ}
Интервьюер:      {Кто проводит}
Интервьюируемый: {Кому задаём вопросы}
Проблематика:    {Тема интервью}
─────────────────────────────────────────────────────
Вопрос № 1:
  Тайминг:       00:00–00:05
  Текст вопроса: {Формулировка вопроса}
  Ответы:        {Запись ответа}
─────────────────────────────────────────────────────
Вопрос № 2: ...
─────────────────────────────────────────────────────
Заключение:
  Я правильно вас понял, что {тезис}?

Плюсы: наиболее эффективный метод; меньше недопонимания; выявляет скрытые требования. Минусы: сложность согласования разных стейкхолдеров; высокие временные затраты; качество зависит от интервьюера.

Воркшопы (Requirements Workshop)

Когда: нужно быстро согласовать требования с группой. JAD-сессия (Joint Application Development) — 1–3 дня. Эффективность: в 3–5 раз быстрее серии интервью.

Шаблон повестки:

[Дата] | [Проект] | Workshop по требованиям
────────────────────────────────────────────
1. Бизнес-цели и контекст (30 мин)
2. Сценарии использования (90 мин)
3. Приоритизация MoSCoW (30 мин)
4. Анализ рисков (30 мин)
5. Следующие шаги (15 мин)

Наблюдение (Job Shadowing)

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

Анализ документов

Когда: есть legacy-документация, регламенты, стандарты. Как: изучите существующие ТЗ, контракты, инструкции, баги-трекер. Ищете: ограничения (E), скрытые требования, описание ошибок.

5️⃣ Прототипирование

Когда: неясны UI/UX, высокая неопределённость. Как: low-fidelity (бумага, wireframes) → high-fidelity (Figma, Axure, интерактивные). Лучшая валидация — дать прототип пользователю и наблюдать за его действиями.

Анкетирование

Когда: большая (100+) аудитория респондентов. Как: опросники с открытыми/закрытыми вопросами. Риски: низкий response rate, поверхностные ответы. Плюсы: большой охват; небольшие временные затраты; возможность повторного использования. Минусы: не подходит для неявных требований; невозможно заранее учесть все вопросы.

Мозговой штурм

Когда: генерация идей, креативные требования, нет готового решения. Правила: на этапе генерации — без критики. Плюсы: выявляет WOW-требования; глубокая проработка (разные эксперты). Минусы: ограниченный круг стейкхолдеров; нужна жёсткая модерация; требуется высокая вовлечённость.

Анализ конкурентов

Когда: есть аналоги на рынке. Как: сравните по функциям (feature matrix), оцените UX, прочитайте отзывы.

Шаблон feature-матрицы:

Функция Наш продукт Конкурент А Конкурент Б
Авторизация по email ✅ ✅ ✅
2FA ❌ ✅ ✅
Экспорт в PDF 🟡 (в планах) ✅ ❌

User Stories + Use Cases

Когда: Agile / гибкая разработка.

User Story шаблон:

Как [роль / user persona]
Я хочу [действие / функция]
Чтобы [цель / бизнес-ценность]

Принцип INVEST:

  • Independent — независимые
  • Negotiable — обсуждаемые
  • Valuable — ценные
  • Estimable — оцениваемые
  • Small — маленькие
  • Testable — тестируемые

Reverse Engineering

Когда: система уже существует, документация утеряна. Как: анализируйте код, UI, базы данных, API. Риски: можно воспроизвести ошибки legacy.

3.3 Дополнительные методы сбора

Метод Описание
Моделирование процессов и данных BPMN, UML, ERD — помогает структурировать информацию
Повторное использование требований Стандартные элементы (регистрация, авторизация)
Вовлечение представителя заказчика в команду Agile-практика: экономит время на коммуникациях
Презентации, демо Помогает уточнить и выявить скрытые/избыточные требования
Обучение («учитель—ученик») Эксперт обучает аналитика бизнес-процессу

3.4 Ключевые источники требований по уровням

Уровень Стейкхолдеры (у кого) Где искать
Бизнес-требования Инициатор проекта, руководитель проекта, коммерческий директор, бизнес-аналитик Внутренняя документация компании, документация по предметной области, нормативная документация, продукты конкурентов
Пользовательские требования Бизнес-аналитик, системный аналитик, конечные и косвенные пользователи, менеджер проекта Анализ и декомпозиция BRQ, описание бизнес-процессов, артефакты, отраслевые стандарты
Функциональные требования Бизнес-аналитик, системный аналитик, архитектор, разработчики Анализ URQ, таски, прототипы, внешние системы и API

📋 Часть 4: 15 правил написания требований

4.1 Золотая структура требования

Хорошее требование должно содержать три компонента:

[Роль пользователя, которая получает выгоду]
    + [Желаемое состояние, которое роль хочет достичь]
        + [Метрика, позволяющая проверить требование (где применимо)]

Пример:

«Как менеджер по закупкам, я хочу получать уведомление при снижении цены на 10% на товары из моего списка отслеживания, чтобы своевременно перезаключать контракты».

4.2 15 правил — таблица

# Правило Суть ❌ Плохо ✅ Хорошо
Структура и атомарность
1 Одно требование за раз Атомарность. Без and, or, also, with «Система позволяет создавать и редактировать заказы» Разделить на F-01 (создание), F-02 (редактирование)
2 Без оговорок Без but, except, if necessary «Система отправляет отчёт, за исключением выходных» «Система отправляет отчёт в первый рабочий день после генерации»
3 Полное предложение Без жаргона и нерасшифрованных аббревиатур «Система поддерживает SSO через LDAP» «Система поддерживает единый вход (SSO) через протокол LDAP»
4 Subject + Predicate Есть субъект и предикат (действие/результат) «Обеспечить автоматизацию процесса» «Система автоматически рассчитывает итоговую стоимость»
Содержание
5 Не HOW, а WHAT Не описывайте реализацию «Система сохраняет в PostgreSQL через sp_calc» «Система хранит историю изменений заказов»
6 Нет сокращений Без etc., approx., и т.д. «Система импортирует XML, CSV и т.д.» «Система импортирует файлы XML, CSV, XLSX»
7 Нет размытых терминов Без user-friendly, robust, versatile «Интерфейс должен быть удобным» «Пользователь выполняет задачу X за ≤ 3 кликов»
8 Нет отсылок в никуда Без ссылок на недоступные документы «Как описано в ТЗ от 2019 г.» (которого нет) Воспроизведите суть или приложите документ
Реалистичность
9 Не фантазируйте Без wish list'ов «Система обрабатывает все ошибки без человека» «Система обрабатывает 5 типов ошибок (список) без человека»
10 Нет дублирования и противоречий Одно и то же — один раз F-01: «Макс. время — 2 с», F-42: «Мин. время — 3 с» Удалить противоречие
Форма и стиль
11 Не предположения Без might, may, could, ought «Система могла бы отправлять уведомления» «Система отправляет SMS при смене статуса»
12 Не пазл Не размазывайте по 15 документам «См. Приложение В, раздел 3.2, подпункт б» Включите в SRS или сделайте цитату
13 Не ссылайтесь на неопределённое Без «будет добавлено позже» «Роли описаны в разделе, который добавим позже» Либо опишите, либо удалите ссылку
14 Позитивные формулировки «Должна» вместо «Не должна» «Система не должна удалять без подтверждения» «Система запрашивает подтверждение перед удалением»
15 Shall / Will / Should Shall = требование, Will = факт, Should = цель «Система должна быть на Java» «Система будет работать на Java»

⚠️ Часть 5: Топ-10 ловушек — с примерами и решениями

# Ловушка Пример Решение
1 Двусмысленность «Система должна быстро обрабатывать запросы» → «Время обработки ≤ 200 мс для 95% запросов»
2 Смешение требований и дизайна «Система использует PostgreSQL» → «Система хранит данные; СУБД — за разработчиком»
3 Пропуск исключительных ситуаций Только happy path → «При ошибке сети система повторяет запрос 3 раза с интервалом 5 с»
4 Избыточность (Overspecification) Детальная инструкция реализации → «Требование задаёт границы, а не инструкцию»
5 Пропуск нефункциональных требований Всё функционально верно, но падает под нагрузкой → Включайте NFR с первого дня
6 Пассивный залог «Должна быть обеспечена возможность...» → «Пользователь может...»
7 Отсутствие приоритетов Все — Must have → MoSCoW: ≤ 30% Must have
8 Игнорирование стейкхолдеров Пользователей не спросили → Интервью + Workshop до написания
9 Отсутствие трассировки Требование «висит в воздухе» → Матрица трассировки: requirement → test case
10 Требования — «документ в стол» Написали и забыли на полгода → Управляйте изменениями, ревью каждую итерацию

🚫 Часть 6: Стоп-слова — таблица замен

Стоп-слово Тип проблемы Замена
Быстро / Мгновенно Неизмеримо «Время отклика ≤ 200 мс для 95% запросов»
Много / Мало / Достаточно Относительно «Не менее N / не более N»
Удобно / Интуитивно Субъективно «Пользователь выполняет задачу X за ≤ N кликов»
Надёжно / Стабильно Неизмеримо «Доступность ≥ 99.9% (downtime ≤ 43 мин/мес)»
Безопасно Обобщение «Соответствие OWASP Top-10; шифрование AES-256»
Гибко / Настраиваемо Неясно «Конкретный параметр конфигурации: поле X»
Современно / Стильно Субъективно «Соответствие макету дизайна v.3»
Поддерживать Неизмеримо «Реагировать на инциденты в течение N минут»
Дружественный / Красивый Субъективно Не используйте. Только usability-метрики.
User-friendly Субъективно «Пользователь выполняет задачу X за ≤ N шагов»
Robust / Versatile Неизмеримо Конкретные метрики надёжности/расширяемости

📋 Часть 7: Приоритизация требований

7.1 MoSCoW

Категория Доля Значение
Must have ≤ 30% Без них система не работает
Should have ~ 30% Важно, но можно и после MVP
Could have ~ 20% «Хорошо бы, но не критично»
Won't have сейчас ~ 20% Отложено на будущие версии

7.2 Kano Model

Тип требования Описание Пример
Must-be (Basic) Ожидаемо по умолчанию, неудовлетворение = провал Резервное копирование
One-dimensional Прямая зависимость: больше = лучше Скорость загрузки
Attractive (Delighter) Неожиданная ценность, восторг Анимация интерфейса
Indifferent Не влияет на удовлетворение Мелкие визуальные детали
Reverse Чем больше — тем хуже «Пожалуйста, оцените каждое действие»

7.3 RICE Framework

Компонент Описание Шкала
Reach Сколько пользователей затронет Число или %
Impact Насколько сильно повлияет на цель 0.25 (минимально) — 3 (максимально)
Confidence Насколько уверены в оценках 0.2 (догадка) — 1.0 (твёрдая уверенность)
Effort Сколько ресурсов потребует Человеко-дни

Формула: $$RICE = \frac{R \times I \times C}{E}$$


👤 Часть 8: User Personas

8.1 Что такое User Persona

User Persona — архетипический портрет пользователя. Не реальный человек, а собирательный образ на основе исследований (интервью, наблюдения, аналитики).

8.2 Шаблон User Persona

Поле Значение
Имя {Имя}
Роль {Должность / Роль в системе}
Возраст {Возрастной диапазон}
Опыт {Уровень технической грамотности}
Цели 1. {Что пользователь хочет достичь}
2. {...}
Боли (Pains) 1. {Что мешает / раздражает в текущем процессе}
2. {...}
Контекст использования {Где, когда, как часто, на каком устройстве}
Ключевые сценарии • {Use Case 1}
• {Use Case 2}

8.3 Пример

Имя:           Елена Петрова
Роль:          Менеджер закупок
Возраст:       32 года
Опыт:          Средний пользователь ПК, Excel — уверенно

Цели:
  1. Сократить время обработки заявки до 5 минут
  2. Исключить ошибки ручного ввода

Боли:
  1. Тратит 3 часа в день на сверку заявок в Excel
  2. Нет прозрачности — не знает, на какой стадии заявка

Контекст:
  Работает в офисе, ПК Windows 11, браузер Chrome.
  Использует систему ежедневно, 6–8 часов.

Ключевые сценарии:
  • Создать заявку на закупку
  • Отследить статус согласования
  • Сформировать отчёт по закупкам за период

🎯 Часть 9: Impact Mapping

9.1 Что такое Impact Mapping

Техника, связывающая бизнес-цели с пользовательским поведением и конкретными фичами. Создана Gojko Adzic (2012).

9.2 Структура Impact Map

flowchart TD WHY["WHY?
Goal
(Бизнес-цель)"] WHO["WHO?
Actors
(Чьё поведение меняем)"] HOW["HOW?
Impact
(Как изменится поведение)"] WHAT["WHAT?
Deliverables
(Фичи / требования)"] WHY --> WHO --> HOW --> WHAT

9.3 Пример Impact Map для цели «Сократить время обработки заявки на 50%»

flowchart TD GOAL["Сократить время обработки заявки на 50%"] GOAL --> A1["Менеджер закупок"] GOAL --> A2["Руководитель"] GOAL --> A3["Финансист"] A1 --> I1["Быстрее создаёт заявки"] A1 --> I2["Не тратит время на статусы"] A2 --> I3["Быстрее согласовывает"] A2 --> I4["Не запрашивает доп. информацию"] A3 --> I5["Не перепроверяет данные вручную"] I1 --> D1["Шаблоны типовых заявок"] I1 --> D2["Автозаполнение из каталога"] I1 --> D3["Загрузка из Excel"] I2 --> D4["Dashboard со статусами"] I3 --> D5["Мобильное уведомление + одобрение в 1 клик"] I3 --> D6["Автосогласование до лимита N тыс. ₽"] I4 --> D7["Чек-лист обязательных полей"] I5 --> D8["Автосверка с бюджетом"] I5 --> D9["Интеграция с 1С"]

📋 Часть 10: Acceptence Criteria и Definition of Done

10.1 Acceptance Criteria (AC)

Условия, при которых требование считается выполненным. Формат — Given-When-Then (Gherkin).

Шаблон:

Given [начальное состояние / контекст]
When  [действие пользователя / событие]
Then  [ожидаемый результат]

Пример:

Функциональное требование F-01: Создание заявки на закупку

AC-01.1: Успешное создание
  Given Менеджер закупок авторизован в системе
    And Ключевые поля каталога заполнены (наименование, количество, бюджет)
  When Менеджер нажимает «Отправить на согласование»
  Then Система создаёт заявку со статусом «На согласовании»
    And Система отправляет email руководителю
    And Номер заявки отображается пользователю

AC-01.2: Обязательные поля не заполнены
  Given Менеджер закупок авторизован
    And Поле «Наименование» пусто
  When Менеджер нажимает «Отправить на согласование»
  Then Система показывает сообщение: «Заполните обязательные поля»
    And Заявка не создаётся

10.2 Definition of Done (DoD)

Минимальный набор критериев, при котором задача/требование считается готовой. DoD — это контракт команды.

Пример DoD для требования:

  • Код написан и проходит code review
  • Unit-тесты написаны и проходят (> 80% coverage)
  • Интеграционные тесты написаны и проходят
  • Требование проверено (QA) по Acceptance Criteria
  • Документация обновлена (SRS, README, API spec)
  • Все AC проходят — автоматически или вручную
  • Нет новых критических багов
  • Требование принято Product Owner'ом

📋 Часть 11: Use Case Specification — полный шаблон

11.1 Структура полного Use Case (по Вигерсу/Коберну)

Элемент Описание Пример
ID Уникальный идентификатор UC-01
Название Глагол + существительное «Создать заявку на закупку»
Действующие лица Кто участвует Менеджер закупок
Триггер Событие, запускающее сценарий Пользователь нажал «Новая заявка»
Предусловия Что истинно до начала Пользователь аутентифицирован; корзина пуста
Постусловия Что истинно после успеха Заявка создана и видна в списке
Основной поток Пошаговый сценарий успеха 1...2...3...
Расширения Альтернативные потоки и ошибки 2a..., 3a...
Специальные требования NFR для этого сценария «Время отклика ≤ 1 с»
Бизнес-правила Ограничения предметной области «Заявка > 100 тыс. — двойное согласование»

11.2 Пример заполненного Use Case

UC-01: Создать заявку на закупку
─────────────────────────────────────────────────────
Действующие лица: Менеджер закупок (главный), Руководитель (вторичный)
Триггер:          Пользователь в меню выбрал «Новая заявка»
Предусловия:      Пользователь аутентифицирован, авторизован на создание заявок
Постусловия:      Заявка создана со статусом «На согласовании»,
                  Руководитель получил уведомление
─────────────────────────────────────────────────────
Основной поток:
  1. Система отображает форму создания заявки
  2. Пользователь заполняет поля: наименование, количество, бюджет, комментарий
  3. Пользователь нажимает «Отправить на согласование»
  4. Система проверяет заполнение обязательных полей
  5. Система сохраняет заявку со статусом «На согласовании»
  6. Система отправляет email Руководителю
  7. Система отображает подтверждение: «Заявка №123 создана»

Расширения:
  2a. Товар из каталога:
      2a1. Пользователь нажимает «Выбрать из каталога»
      2a2. Система открывает каталог с поиском
      2a3. Пользователь выбирает позицию — поля автозаполняются
  2b. Если наименование не заполнено → система отключает кнопку «Отправить»
  4a. Если не заполнен бюджет:
      4a1. Система подсвечивает поле красным
      4a2. Система выводит сообщение: «Укажите бюджет»
      4a3. Возврат на шаг 2
  5a. Если сумма > 500 000:
      5a1. Система дополнительно запрашивает комментарий о необходимости
      5a2. Система устанавливает флаг «Двойное согласование»

Специальные требования:
  • Время сохранения заявки ≤ 1 секунда
  • Форма должна быть доступна на мобильных устройствах

Бизнес-правила:
  • BR-01: Заявка на сумму > 100 000 — два согласующих
  • BR-02: Обязательные поля: наименование, количество, бюджет

📋 Часть 12: Управление требованиями (Lifecycle)

12.1 Полный жизненный цикл требования

flowchart LR E["Elicit (Сбор)
Интервью, Workshop,
Анализ документов"] A["Analyze (Анализ)
PEGS-классификация,
Прототип"] S["Specify (Документирование)
SRS, Use Case,
User Story"] V["Validate (Валидация + Верификация)
Review с заказчиком,
Тест-дизайн"] M["Manage (Управление изменениями)
Change Request,
Версионирование"] E --> A --> S --> V --> M

12.2 Процесс управления изменениями (Change Request Process)

flowchart TD I["1. ИНИЦИАЦИЯ
Осознание необходимости
изменения. Любой участник
проекта подаёт CR"] R["2. РЕГИСТРАЦИЯ
CR фиксируется в трекере:
ID, дата, автор, описание,
причина, приоритет"] IMP["3. АНАЛИЗ ВЛИЯНИЯ
Аналитик оценивает:
• Затронутые требования
• Влияние на сроки и бюджет
• Риски
• Альтернативы"] CCB["4. УТВЕРЖДЕНИЕ (CCB)
Change Control Board:
• Отклонить
• Утвердить
• Отложить"] REAL["5. РЕАЛИЗАЦИЯ
Обновление требований:
• Новая версия SRS
• Матрица трассировки
• Стейкхолдеры уведомлены"] VER["6. ВЕРИФИКАЦИЯ
Изменение проверено:
тест-кейсы обновлены,
QA прошёл"] I --> R --> IMP --> CCB --> REAL --> VER

12.3 Атрибуты требования — обязательные метаданные

Атрибут Описание Пример
ID Уникальный идентификатор F-01, NF-03, UC-01
Название Краткое описание сути «Создание заявки на закупку»
Описание Полная формулировка См. выше
Источник Кто или что породило требование Интервью с Ивановым 01.06.2026
PEGS-класс Отнесение к измерению S (System)
Приоритет MoSCoW Must have
Статус Текущее состояние Proposed → Approved → Implemented → Verified
Трассировка к цели Связь с G-ID G-02 (сократить время обработки на 50%)
Трассировка к тесту Связь с TC-ID TC-101, TC-102
Версия Версия документа/требования 1.0, 1.1, 2.0
Дата создания Когда добавлено 01.06.2026
Последнее изменение Когда обновлено 15.06.2026
Автор Кто написал Аналитик: Петров И.И.
Ответственный Кто отвечает за реализацию Разработчик: Сидоров А.А.

12.4 Матрица трассировки (Traceability Matrix)

ID треб. Источник PEGS Цель (G-ID) Тест-кейс Статус Версия
F-01 Интервью с Ивановым S G-02 TC-101, TC-102 Approved 1.0
F-02 Workshop 12.05 S G-01 TC-103 Approved 1.0
F-03 Анализ конкурентов S G-01 TC-104 Proposed 1.1
NF-01 Закон 152-ФЗ E G-03 TC-301 Approved 1.0
NF-02 Архитектурный ADR-005 S G-02 — (не тестируется) Approved 1.0

📋 Часть 13: ADR — Architecture Decision Records

13.1 Что такое ADR

Документ, фиксирующий архитектурное решение: почему выбран тот или иной подход, какие альтернативы рассматривались, какие последствия.

13.2 Шаблон ADR

ADR-{N}: {Краткое название решения}
────────────────────────────────────────
Статус: {Proposed | Accepted | Deprecated | Superseded}
Дата:   {ДД.ММ.ГГГГ}

Контекст:
  {Почему это решение необходимо?
   Какая проблема решается?
   Какие ограничения есть?}

Решение:
  {Что выбрали? Конкретная формулировка решения.}

Альтернативы:
  {Какие варианты рассматривались?}
  1. {Вариант А} — {почему не подошёл}
  2. {Вариант Б} — {почему не подошёл}

Последствия:
  {Плюсы и минусы решения.
   Что меняется в архитектуре?}

Linked ADRs:
  {Связанные решения: ADR-{N}, ADR-{M}}

13.3 Пример ADR

ADR-005: Выбор СУБД для хранения заказов
────────────────────────────────────────
Статус: Accepted
Дата:   01.06.2026

Контекст:
  Система должна хранить 5000+ заказов в день.
  Требования: ACID-транзакции, сложные отчёты, соединения с 1С.
  Команда: 3 бэкенд-разработчика — сильны в SQL.

Решение:
  PostgreSQL 16.
  Обоснование: ACID,成熟ая экосистема, JSONB для гибких атрибутов,
  опыт команды, бесплатно (MIT).

Альтернативы:
  1. MongoDB — не подошла: нет сложных JOIN для отчётов, команда слаба в NoSQL
  2. ClickHouse — не подошла: не ACID, не подходит для OLTP
  3. Oracle — не подошла: высокая стоимость, избыточна

Последствия:
  + Сильная поддержка ACID-транзакций
  + Хорошая документация и комьюнити
  − Нужно настроить репликацию для отказоустойчивости
  − Нет built-in шардирования (использовать Patroni)

Linked ADRs:
  ADR-003: Выбор языка программирования (Python)
  ADR-007: Паттерн репликации (Patroni + etcd)

📋 Часть 14: Шаблоны документов

14.1 Шаблон SRS (по ISO/IEC/IEEE 29148)

────────────────────────────────────────────────
СПЕЦИФИКАЦИЯ ТРЕБОВАНИЙ К ПРОГРАММНОМУ ОБЕСПЕЧЕНИЮ
(SRS — Software Requirements Specification)
Проект: [Название]
Версия: 1.0 | Дата: [Дата]
────────────────────────────────────────────────

1. ВВЕДЕНИЕ
   1.1 Назначение документа
   1.2 Область применения (Scope)
   1.3 Определения и глоссарий
   1.4 Ссылки (стандарты, документы)
   1.5 Обзор документа

2. ОБЩЕЕ ОПИСАНИЕ
   2.1 Контекст системы (диаграмма контекста)
   2.2 PEGS-классификация
   2.3 User Personas
   2.4 Impact Map
   2.5 Предположения и зависимости
   2.6 Ограничения (Constraints)

3. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ
   [F-01] [формулировка] [трассировка: G-XX] [приоритет: MoSCoW]
   [F-02] ...

4. НЕФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ
   4.1 Производительность (FURPS: Performance)
   4.2 Usability
   4.3 Надёжность (Reliability)
   4.4 Поддерживаемость (Supportability)
   4.5 Безопасность
   4.6 Ограничения (FURPS: +)

5. ТРЕБОВАНИЯ К ИНТЕРФЕЙСАМ
   5.1 Пользовательский интерфейс
   5.2 API / программные интерфейсы
   5.3 Аппаратные интерфейсы

6. МОДЕЛЬ ДАННЫХ
   6.1 Концептуальная модель (сущности и связи)
   6.2 Словарь данных (Data Dictionary)

7. USE CASES
   7.1 UC-01: [Название]
   7.2 UC-02: [Название]
   ...

8. ПРИОРИТИЗАЦИЯ
   8.1 MoSCoW
   8.2 Kano
   8.3 RICE (для спорных требований)

9. ТРАССИРУЕМОСТЬ
   [Матрица: требование → цель → тест-кейс]

10. КРИТЕРИИ ПРИЁМКИ
   10.1 Acceptance Criteria для каждого функционального требования
   10.2 Definition of Done
   10.3 Критерии для NFR

11. УПРАВЛЕНИЕ ИЗМЕНЕНИЯМИ
   11.1 Процесс Change Request
   11.2 Состав CCB (Change Control Board)

12. ADR (Architecture Decision Records)
   12.1 ADR-001: ...
   12.2 ADR-002: ...

ПРИЛОЖЕНИЯ
   A. User Stories (для Agile-команд)
   B. Протоколы интервью
   C. Глоссарий
   D. Матрица трассировки (полная)

14.2 Шаблон плана управления требованиями

Раздел Содержание
1. Роли и ответственность Кто пишет, кто ревьюит, кто утверждает, кто в CCB
2. Процесс сбора Какие техники, на каком этапе, график
3. Инструменты Jira, Confluence, Notion, Trello — что и как
4. Процесс изменений CR: инициация → анализ → утверждение → версионирование
5. Атрибуты требований ID, название, описание, приоритет, статус, трассировка, версия
6. Шкала приоритетов MoSCoW: Must (≤30%), Should (30%), Could (20%), Won't (20%)
7. Критерии качества 14 критериев Meyer + чек-лист
8. График ревью Еженедельно / по вехам / при CR

14.3 Шаблон матрицы трассировки

ID Источник PEGS Цель (G-ID) Требование Статус Версия Тест-кейс
F-01 Интервью с Ивановым S G-02 Описание... Approved 1.0 TC-101
F-02 Workshop 12.05 S G-01 ... Draft 1.1 TC-102
NF-01 152-ФЗ E G-03 ... Approved 1.0 TC-301

📋 Часть 15: Чек-листы

✅ Пред-утверждение требований (Quality Gate)

  • PEGS-классификация выполнена для каждого требования
  • FURPS+ категории проверены (нет пропущенных NFR)
  • Все 14 критериев качества проверены (A1–E2)
  • 15 правил написания соблюдены (атомарность, нет стоп-слов, нет предположений)
  • Стоп-слова заменены на измеримые формулировки
  • Исключительные ситуации описаны (6 видов полноты)
  • Требования трассируются к бизнес-целям или ограничениям
  • Приоритеты расставлены (MoSCoW: ≤ 30% Must)
  • Стейкхолдеры валидировали требования (письменно)
  • Нефункциональные требования присутствуют и измеримы
  • Требования отделены от дизайн-решений (абстрактность)
  • User Personas созданы (хотя бы 1–2 ключевых роли)
  • Acceptance Criteria написаны для каждого FR (Given-When-Then)
  • Матрица трассировки заполнена (требование → цель → тест)
  • Документ структурирован и читаем целевой аудиторией

✅ Чек-лист функционального требования

  • ID присвоен (уникальный, стабильный)
  • Формулировка: «Система должна [глагол] [объект] [условие]»
  • Активный залог (не «должна быть обеспечена возможность»)
  • Не содержит стоп-слов
  • Трассируется к бизнес-цели (G-ID)
  • Приоритет MoSCoW указан
  • Версионировано
  • Acceptance Criteria написаны (Given-When-Then)
  • Рецензировано минимум 1 разработчиком + 1 стейкхолдером

✅ Чек-лист нефункционального требования

  • Классифицировано по FURPS+
  • Измеримо численно (метрика + порог)
  • Проверяемо (можно тестировать или моделировать)
  • Реалистично (feasible)
  • Трассируется к бизнес-ограничению или стандарту
  • Не является дизайн-решением

✅ Чек-лист User Story

  • Формат: «Как [роль], я хочу [действие], чтобы [цель]»
  • INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable
  • Есть Acceptance Criteria (Given-When-Then)
  • Приоритет MoSCoW
  • Story Points / T-Shirt size оценены

✅ Еженедельный чек-лист аналитика

  • Проверил актуальность требований (ничего не устарело)
  • Проверил баги/задачи — не появились ли новые требования из багов
  • Согласовал все открытые вопросы с бизнесом
  • Обновил матрицу трассировки
  • Документировал принятые решения (ADR)
  • Обработал Change Requests (если были)
  • Описал новые исключительные сценарии (если появились)

🧭 Часть 16: Принципы работы с требованиями

16.1 10 золотых принципов

  1. Требование ≠ Дизайн. Описывайте ЧТО, а не КАК. Технические решения — разработчикам.
  2. Измеряемость любой ценой. Нет метрики — нет требования. «Быстро» не принимается.
  3. Один факт = одно требование. Атомарность. Никаких списков из 10 пунктов в одном ID.
  4. Каждое требование имеет источник. Если неизвестно, кто попросил — удалите.
  5. Трассируемость в обе стороны. От цели → к требованию → к тесту и обратно.
  6. Приоритизация обязательна. 100% Must have — это 0% реальности. MoSCoW + Kano + RICE.
  7. Исключения важнее нормы. Happy path — 20% кода. 80% — обработка ошибок.
  8. Требования живут. Версионируйте, управляйте изменениями, не хороните документы.
  9. Проверяемость — критерий качества. Если нельзя проверить тестом — требование бесполезно.
  10. Стейкхолдер — не враг. Интервью, workshop, прототип — вовлекайте на каждом шаге.

16.2 PEGS-принцип (Meyer, 2022)

«Каждое релевантное утверждение о проекте относится ровно к одному из 4 измерений: Project, Environment, Goals или System. Требования, не относящиеся ни к одному из них, не являются релевантными и должны быть отклонены.»

16.3 Принцип Specification over Implementation

«Требования должны описывать желаемое поведение системы, а не то, как это поведение достигается технически. Specification — это контракт. Implementation — решение. Не смешивайте.»

16.4 Принцип Elicitation over Gathering

«Термин "elicitation" (выявление) предпочтительнее "gathering" (сбор), потому что требования не лежат на поверхности — их нужно выявлять, в том числе неявные и подразумеваемые, которые существуют только в головах людей или скрыты в сложных системах.» (BABOK)


📚 Часть 17: Библиография и ссылки

Книги

# Книга Автор Год Чем полезна
1 Handbook of Requirements and Business Analysis Bertrand Meyer 2022 PEGS-модель, 14 критериев, Standard Plan. Основной источник.
2 Software Requirements (3rd ed.) Karl Wiegers, Joy Beatty 2013 10 техник сбора, шаблоны, чек-листы. Классика.
3 Writing Effective Use Cases Alistair Cockburn 2001 Use Case-стандарт, полный формат.
4 BABOK v3 IIBA 2015 30+ техник, 6 зон знаний, компетенции аналитика.
5 User Story Mapping Jeff Patton 2014 Agile-требования, карты историй.
6 Impact Mapping Gojko Adzic 2012 Связь целей и фич.
7 Specification by Example Gojko Adzic 2011 Требования через примеры.
8 Fifty Quick Ideas to Improve Your User Stories Gojko Adzic, David Evans 2014 User Stories — практические советы.
9 ATDD — разработка ПО через приёмочные тесты Markus Gärtner 2013 Требования через тесты.
10 Пользовательские истории. Гибкая разработка ПО Mike Cohn 2018 User Stories — полное руководство.
11 Чистая архитектура Robert Martin 2018 Архитектура для аналитика.
12 UML. Основы Martin Fowler 2018 Нотации для моделирования.
13 Пиши, сокращай Ильяхов, Сарычева 2017 Как писать понятно.
14 Требования для ПО: рекомендации по сбору и документированию Илья Корнипаев 2013 Практическое руководство.

Стандарты

# Стандарт Полное название Сфера
1 ISO/IEC/IEEE 29148:2018 Systems and Software Engineering — Requirements Engineering Основной стандарт
2 SWEBOK v4 Software Engineering Body of Knowledge (IEEE) Полный референс
3 ISO/IEC 25010 SQuaRE — Quality Models Модель качества
4 ГОСТ 34.601-90 Стадии создания АС Российский регламент
5 ГОСТ 19.201-78 ЕСПД. ТЗ. Требования к содержанию ЕСПД
6 ISO 9001:2015 Quality Management Systems Управление качеством
7 OWASP ASVS v4.0 Application Security Verification Standard Безопас
8 ISO/IEC 12207 Software Life Cycle Processes Жизненный цикл

Статьи и онлайн-ресурсы

# Ресурс Ссылка Фокус
1 15 Tips For Writing Better Requirements businessanalystlearnings.com (2013) 15 практических правил
2 Выявление и сбор требований — ultimate guide tproger.ru (Вадим, Noveo, 2022) PEGS, интервью, полный гайд
3 Context Diagram systems.education Контекстные диаграммы
4 Use Case — что это и зачем systems.education Use Case-техника
5 Requirements Discovery Checklist Pack Laura Brandenburg (Bridging the Gap) Чек-листы
6 Crafting Better Requirements Laura Brandenburg (Bridging the Gap) Курс по требованиям

🔑 Шпаргалка: 10 секунд — быстрый старт

Если вы — разработчик, пишущий требования впервые:

  1. Откройте шаблон SRS (Часть 14.1)
  2. Сформулируйте цель (G): «Зачем мы это делаем?»
  3. Заполните PEGS классификацию для каждого требования
  4. Пишите через «Система должна [глагол] [объект]» — никакого пассива
  5. Добавьте NFR: производительность, надёжность, безопасность
  6. Заполните Acceptance Criteria (Given-When-Then)
  7. Проверьте по чек-листу (Часть 15)

Если вы — аналитик, проводящий ревью:

  1. Беглый взгляд на текст — найдите «должна быть обеспечена возможность» → отклонить
  2. Найдите «быстро», «удобно», «надёжно» без метрик → запросить метрики
  3. Проверьте атомарность: есть ли «и/or/также» внутри требования → split
  4. Проверьте исключения: описан ли not-found? error? timeout?
  5. Есть ли NFR? Хотя бы производительность и доступность?
  6. Есть ли AC? Given-When-Then?
  7. Трассируется ли до бизнес-цели?

Если вам нужно объяснить менеджеру, зачем это всё:

«Хорошие требования — это контракт. Они исключают двусмысленность, снижают риск переделок и дают чёткие критерии приёмки. Ошибка на этапе требований обходится в 10–100 раз дороже, чем ошибка на этапе разработки. Каждый час, потраченный на качественные требования, экономит 5–10 часов на переделках.» (IBM / Standish Report)


Финальная нота:

Требования — это не бюрократия. Это единственный способ убедиться, что все участники проекта — бизнес, аналитики, разработчики, тестировщики — говорят на одном языке и понимают под одними и теми же словами одно и то же. Хорошее требование — атомарное, однозначное, измеримое, трассируемое и проверяемое. Всё остальное — пожелания.

Что дальше