Чек-лист НФТ
Мой рабочий инструмент для сбора нефункциональных требований на новых проектах. Заполняется по каждому эндпоинту и воркеру — так ничего не теряется.
Пометки: (обязательно) — заполняется всегда; (опционально) — если ограничение критично.
Производительность
| Требование | Пример | Кто и когда заполняет | Проверяет |
|---|---|---|---|
| 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, core | CPU: 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 в единой транзакции | Аналитик, на этапе анализа и описания ТЗ | Тестировщик |
| Требования к пользовательскому интерфейсу Единообразие интерфейса на разных страницах, корпоративный стиль | Переключение между полями формы — клавишей табуляции | Аналитик, на этапе анализа | Тестировщик |