Перейти к основному содержимому

Шаблоны спецификаций (ТЗ)

Основные принципы

  1. Ясность и однозначность
    – Требования формулируются так, чтобы не допускать разных интерпретаций;
    – Каждое требование должно быть проверяемым и измеримым (например, “время отклика ≤ 200 мс при нагрузке 100 RPS”).
  1. Contract-First
    – Сначала описывается контракт (API или сообщение), согласуется со всеми сторонами, затем реализуется;
    – Использовать OpenAPI/Swagger для REST, .proto для gRPC, AsyncAPI для событий.
  1. Структурированность и модульность
    – Разделять документ на логические уровни (общее, функциональное, нефункциональное, интерфейсы, данные);
    – Для UI – сначала описывать типовые компоненты, затем конкретные экраны.

  2. Версионирование и трассируемость
    – Все разделы и требования нумеруются;
    – Версии спецификации и история изменений фиксируются в шапке;
    – Матрица трассируемости связывает бизнес-требования → user stories → API/месседж-контракты.

  3. Минимально достаточная документация
    – Описывать ровно столько, сколько нужно для реализации и тестирования, без “воды”;
    – В Agile детализация происходит итеративно: высокоуровневые цели → уточнение по user story → автоматизация в CI/CD.

  4. DRY в документации
    – Избегать дублирования: глоссарий, общий раздел интерфейсов и типовых компонентов описывать единожды;
    – Ссылаться на повторно используемые схемы и определения.

  5. Гибкость и поддерживаемость
    – Спецификация должна легко обновляться при изменении дизайна, API или бизнес-политик;
    – Обратная связь из продакшена (мониторинг, логирование) помогает вовремя корректировать документ.

  6. Testability & Acceptance Criteria
    – Для каждого требования сразу прописывать критерии приемки или пример тест-кейсов;
    – Использовать INVEST-подход для user stories: Independent, Negotiable, Valuable, Estimable, Small, Testable.

  7. Единый язык (Ubiquitous Language)
    – Термины и определения фиксируются в глоссарии согласно ГОСТ 19.781-90;
    – Все роли (бизнес, аналитики, разработка, тестирование) используют одинаковую терминологию.

  8. Интеграция бизнес-процессов
    – При необходимости приводить BPMN-диаграммы AS-IS/TO-BE;
    – Для сложных правил выносить логику в DMN-таблицы (Decision Model and Notation).

  9. Совместная разработка и ревью
    – Контракты и спецификации проходят ревью команд (Dev, QA, Security, DevOps);
    – Event Storming и воркшопы помогают проверить полноту охвата событий и сценариев.

  10. Не забывать про нефункциональные требования
    – Производительность, масштабируемость, надёжность, безопасность, соответствие регламентам (PCI-DSS, GDPR);
    – Для UI – требования к доступности (WCAG), поддерживаемым платформам и устройствам.

  11. Примеры и визуализация
    – Обязательные примеры запросов/ответов, payload-ов;
    – Схемы последовательностей или диаграммы состояний для сложных сценариев.

Структура шаблонов

Общий список разделов спецификации Backend

  1. Введение и контекст

    • Цель и область применения сервиса
    • Бизнес-ценность и краткое описание функций
  2. Термины и определения (глоссарий)

    • Список доменных понятий и аббревиатур
  3. Архитектурный обзор

    • Схема компонентов и их взаимодействий
    • Интеграции с внешними системами
  4. Интерфейсы и контракты

    • REST/gRPC: общий список эндпоинтов / RPC-методов
    • Асинхронно: топики, очереди, события
  5. Функциональные требования

    • Перечень операций и сценариев использования
    • Подсценарии и варианты (edge cases)
  6. Нефункциональные требования

    • Производительность (SLA, QPS, время отклика)
    • Надёжность, отказоустойчивость, масштабируемость
    • Безопасность (аутентификация, авторизация, шифрование)
  7. Модель данных и схемы

    • Описание JSON/Protobuf/Avro/SQL-схем
    • Связи между сущностями
  8. Ошибки и обработка исключений

    • Коды ошибок, сообщения, примеры
    • Механизмы retry, DLQ для асинхронных каналов
  9. Версионирование и совместимость

    • Стратегия версионирования API / событий
    • Правила депрецирования
  10. Метрики и наблюдаемость

    • Логи, метрики, трассировка, алерты
  11. CI/CD и автогенерация документации

    • Пайплайн сборки спецификации
    • Инструменты генерации (Swagger UI, gRPC Stub, AsyncAPI Hub)
  12. История версий и изменения

    • Таблица изменений (дата, версия, суть правок)

Общий список разделов спецификации Frontend

  1. Введение и цель

    • Описание продукта и пользователей
  2. Глоссарий

    • UI-термины и доменные понятия
  3. Типовые UI-компоненты

    • Хедер, навигация, формы, таблицы, уведомления
  4. Информационная архитектура

    • Карта экранов / навигационные потоки
  5. Описание экранов

    • Название и назначение каждого экрана
    • Элементы интерфейса (кнопки, поля, списки)
    • Валидация, маски ввода, сообщения об ошибках
    • Состояния (загрузка, пустое, ошибка, успех)
    • Примеры макетов / прототипов
  6. Нефункциональные требования

    • Поддерживаемые устройства и браузеры
    • Доступность (WCAG)
    • Производительность (Time to Interactive)
  7. Интеграция с Backend

    • Ссылки на API-ангуляцию / BFF эндпоинты
  8. Версионирование и история изменений

    • Обозначение версий UI и ключевые правки

Общий список разделов спецификации бизнес-требований (BRD / BRS)

  1. Резюме проекта

    • Цели, ожидаемые результаты, ценность для бизнеса
  2. Предыстория и обоснование

    • Текущие проблемы, причины запуска проекта
  3. Цели и задачи (SMART)

    • Конкретные, измеримые, достижимые, релевантные, ограниченные по времени
  4. Область охвата (Scope)

    • Что входит / что исключено
  5. Стейкхолдеры и роли

    • Внутренние и внешние участники, их интересы
  6. Бизнес-требования

    • Функциональные (Must/Should/Could)
    • Нефункциональные (сроки, регуляции, соответствие стандартам)
  7. Бизнес-процессы (AS-IS / TO-BE)

    • BPMN-диаграммы или текстовые описания
  8. Сценарии использования (Use Cases / User Journeys)

    • Краткие истории и шаги
  9. Ограничения и допущения

    • Бюджет, сроки, технологические и регуляторные рамки
  10. Риски и меры по их снижению

    • Качественная оценка, планы mitigation
  11. Критерии успеха и метрики

    • KPI, ROI, нефинансовые метрики
  12. Глоссарий

    • Бизнес-термины и определения
  13. Приложения

    • Исходные данные, протоколы интервью, ссылки на исследования
  14. История версий

    • Лог изменений, авторы, даты

Примеры шаблонов

Главные шаблоны

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

Что внутри:

  • Шаблоны для бэкенда в форматах:
    • AsciiDoc
    • MarkDown
    • Microsoft Word для импорта в Confluence
  • Шаблоны для фронтенда
  • Шаблоны спецификации требований от бизнеса

Дополнительные шаблоны и ссылки

Общее

  1. Как писать требования и документацию к проекту. Полный гайд с шаблоном документации и примерами заполнения — опыт Альфы
  2. Ликбез по техническому заданию
  3. Как оформить спецификацию, чтобы не запутаться самому и не выбесить коллег
  4. Для архитекторов и аналитиков: шаблон описания архитектуры приложения (34 страницы пользы)
  5. Как выжать максимум из Confluence: часть 1, часть 2
  6. Матрица трассировки требований: руководство для системного аналитика

Стандарты

  1. Стандарты и шаблоны для ТЗ на разработку ПО — обзор
  2. Разработка Технического задания по ГОСТ 34 легко и просто — полный гайд по ТЗ ГОСТ 34

Docs as Code

  1. Опыт аналитиков Альфы про доку в коде
  2. Docs as Code: как вести фронтовую документацию рядом с кодом, чтобы репозиторий не раздуло — опыт Альфы

Интеграции

  1. Как создать шаблон документации к микросервису — МТС
  2. Пример ТЗ для описания API
  3. Шаблоны документации API
  4. Как написать свою первую спецификацию на REST API
  5. Как мы описываем требования к REST API для бэкенда в Confluence — Magnit Tech
  6. REST API: заполненный шаблон постановки задачи
  7. Шаблон постановки задачи на REST API-метод для Confluence
  8. Полная постановка задачи на интеграцию — заполненный шаблон требований

Требования

  1. Шаблон спецификации требований
  2. Как мы создали шаблон функциональных требований к разработке ПО
  3. Шаблон пользовательских историй