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

Чек-лист НФТ

Мой рабочий инструмент для сбора нефункциональных требований на новых проектах. Заполняется по каждому эндпоинту и воркеру — так ничего не теряется.

Пометки: (обязательно) — заполняется всегда; (опционально) — если ограничение критично.

Производительность

ТребованиеПримерКто и когда заполняетПроверяет
RPS план (обязательно)
Плановое среднее количество запросов в секунду (RPS) или в минуту (RPM). Отдельная строка для каждого эндпоинта и воркера
100 RPS план для методов, с которыми взаимодействует ЛК ИМАналитик, на этапе анализаТестировщик
RPS максимум (обязательно)
Максимальное значение RPS/RPM в пиковые периоды с указанием этих периодов
300 RPS максимум с ЧЧ.ММ по ЧЧ.ММ; RPS план × 3 в период пиковых продажАналитик, на этапе анализаТестировщик
RPS прирост (6 мес / 1 год / 3 года)
Прогнозируемое среднее значение прироста RPS/RPM за период
RPS прирост +100 ежегодноАналитик, на этапе анализаТестировщик
TTFB / скорость ответа (обязательно)
Скорость ответа (10 мс / 100 мс / 0,5 с / 1 с / 10 с / 60 с) с указанием вероятности (Time To First Byte)
TTFB — 100 мс в 95% случаевАналитик, на этапе анализаТестировщик

Надёжность

ТребованиеПримерКто и когда заполняетПроверяет
SLO за период (обязательно)
Показатель качества: допустимая величина отклонения от заданных метрик (Service Level Objectives). 100% — отклонения недопустимы
SLO 95% за период 1 день для метрик по RPS, TTFBАналитик, на этапе анализаТестировщик, Поддержка

Хранение и восстановление данных

ТребованиеПримерКто и когда заполняетПроверяет
Объём хранимых данных план, Гб100 ГбАрхитектор, после проектирования БДПоддержка
Объём хранимых данных прирост (6 мес / 1 год / 3 года), Гб+100 Гб в годАрхитектор, после проектирования БДПоддержка
Продолжительность хранения данных3 годаАналитик, на этапе анализаПоддержка
RPO / допустимая потеря данных (обязательно)
Recovery Point Objective, в единицах времени. Отдельно для БД и файлового хранилища
RPO: 1 часАналитик, на этапе анализаПоддержка
RTO / допустимое время восстановления (обязательно)
Recovery Time Objective. Отдельно для БД и файлового хранилища
RTO: 24 часаАналитик, на этапе анализаПоддержка
Типы хранимых файловpdf, jpgАналитик, на этапе анализаAPI
Количество хранимых файлов план500Аналитик, на этапе анализаПоддержка
Количество хранимых файлов прирост (месяц / 6 мес / 1 год / 3 года)+500 в месяцАналитик, на этапе анализаПоддержка
Объём хранимых файлов план, Гб0,2 ГбАналитик, на этапе анализаПоддержка
Объём хранимых файлов прирост, Гб+0,2 Гб в месяцАналитик, на этапе анализаПоддержка
Резервное копирование (обязательное требование)
Наборы резервных копий хранятся отдельно от ИС, желательно в разных помещениях или зданиях, и регулярно тестируются на пригодность к восстановлению
Аналитик, на этапе анализаПоддержка

Масштабируемость

ТребованиеПримерКто и когда заполняетПроверяет
Вертикальное масштабирование
Возможность переноса приложения на более мощные сервера
Обеспечить поддержку вертикального масштабированияАрхитектор, перед проектированием, исходя из прочих НФТПоддержка
Горизонтальное масштабирование
Возможность кластеризации, повышение отказоустойчивости
Обеспечить поддержку горизонтального масштабированияАрхитектор, перед проектированием, исходя из прочих НФТПоддержка

Технические ограничения

ТребованиеПримерКто и когда заполняетПроверяет
Тех. стек (обязательно).NetАрхитектор, перед проектированиемАрхитектор
Среда развертывания (обязательно)VM / K8sАрхитектор, перед проектированиемАрхитектор
Операционная система (опционально)Архитектор, перед проектированиемАрхитектор
Редакция ОС (опционально)Архитектор, перед проектированиемАрхитектор
Дополнительное ПО (опционально)Архитектор, перед проектированиемАрхитектор
Тип БД (обязательно)PostgreSQLАрхитектор, перед проектированиемАрхитектор
Тип кэш (опционально)Memcache / RedisАрхитектор, перед проектированиемАрхитектор
Требования к кодированию данных (опционально)base64Архитектор, перед проектированиемАрхитектор
Пропускная способность каналов связи
Какие сети используются: локальная, широкополосный интернет, мобильный интернет, спутниковая связь, оффлайн
Широкополосный и мобильный интернетАналитик, на этапе анализаТестировщик
CPU, coreCPU: 2 core / 50mАрхитектор, перед проектированиемТестировщик
RAM, ГбRAM: 4 Гб / 192MiАрхитектор, перед проектированиемТестировщик
HDD типSATA / SAS / SSDАрхитектор, перед проектированиемТестировщик
Поддерживаемые типы устройств (опционально)Android, iOSАналитик, на этапе анализаТестировщик
Поддерживаемые браузеры (опционально)ChromeАналитик, на этапе анализаТестировщик

Интерфейсы взаимодействия

ТребованиеПримерКто и когда заполняетПроверяет
Общее количество пользователей
Позволяет оценить требования к внутренним интерфейсам и администрированию
1000Аналитик, на этапе анализаПоддержка
Общее количество пользователей прирост (6 мес / 1 год / 3 года)+100 в месяцАналитик, на этапе анализаПоддержка
Требования к API
Требования к API продукта и к API внешних систем, с которыми осуществляется интеграция
Поддержка REST APIАрхитектор, перед проектированиемАрхитектор
Требование к наличию доступа извне
Обязательно при организации внешнего доступа; перечисляются эндпоинты
Внешний доступ к методам XX, YYАрхитектор, в процессе проектированияПоддержка
Устойчивость
Сохранение данных при сбоях в связанных компонентах или сети
Сохранение данных, введённых пользователем, при перезагрузке страницы; запись XXX, YYY в единой транзакцииАналитик, на этапе анализа и описания ТЗТестировщик
Требования к пользовательскому интерфейсу
Единообразие интерфейса на разных страницах, корпоративный стиль
Переключение между полями формы — клавишей табуляцииАналитик, на этапе анализаТестировщик